---
schema_version: "1"
id: 910a3b0a57dd42d48415cb9aa134ae2267a8f840411e68a12410fef8e54d37a9
title: ภาคผนวก - กล่องเครื่องมือการปรับใช้ AWS
collection: tableau
version: current
locale: th-th
portal_url: https://docs.salesforce.com/tableau/current/th-th/guides/enterprise-deployment/edg_part_app-aws.md
canonical_url: https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part_app-aws.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 561fa8cf4e821ed9079a87310b052bf9ece438c010476e8e77a86de1ce4b4230
description: AWS deployment toolbox with the TabDeploy4EDG script and Terraform automation examples.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# ภาคผนวก - กล่องเครื่องมือการปรับใช้ AWS

**หมายเหตุ**: Tableau จะไม่อัปเดตคู่มือการปรับใช้ในองค์กรอีกต่อไป แม้ว่าเรายังคงแนะนําสถาปัตยกรรมอ้างอิงที่อธิบายไว้ในที่นี้ว่าเป็นโมเดลการปรับใช้ที่ถูกต้องสําหรับ Tableau Server ใน AWS แต่ขั้นตอนการกําหนดค่าเฉพาะอาจมีการเปลี่ยนแปลงตั้งแต่การอัปเดตครั้งล่าสุด ควรตรวจสอบขั้นตอนเหล่านี้กับเอกสาร[ความช่วยเหลือล่าสุดของ Tableau Server](https://help.tableau.com/current/server/th-th/get_started_server.htm) เสมอ เพื่อให้มั่นใจในความถูกต้อง

หัวข้อนี้ระบุถึงเครื่องมือและตัวเลือกการปรับใช้ทางเลือกสำหรับสถาปัตยกรรมอ้างอิงเมื่อปรับใช้ใน AWS กล่าวโดยเจาะจงคือหัวข้อนี้จะอธิบายวิธีทำให้การปรับใช้ AWS ตัวอย่างเป็นแบบอัตโนมัติ โดยอธิบายไว้ผ่านทาง EDG

## สคริปต์การติดตั้ง TabDeploy4EDG อัตโนมัติ

[สคริปต์ TabDeploy4EDG](https://help.tableau.com/samples/en-us/edg/tabdeploy4edg.txt) ทำให้การนำการปรับใช้ Tableau สี่โหนดไปใช้เป็นแบบอัตโนมัติ ซึ่งอธิบายไว้ใน [ตอนที่ 4: ติดตั้งและกำหนดค่า Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part4.htm) หากคุณปฏิบัติตามตัวอย่างการนำ AWS ไปใช้ตามที่อธิบายไว้ในคู่มือนี้ คุณอาจสามารถเรียกใช้ TabDeploy4EDG ได้

**ข้อกำหนด** หากต้องการเรียกใช้สคริปต์ คุณต้องเตรียมและกำหนดค่าสภาพแวดล้อม AWS ตามตัวอย่างการนำไปใช้ใน [ส่วนที่ 3 - การเตรียมการปรับใช้ทั่วทั้งองค์กร Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part3.htm):

- ระบบได้กำหนดค่า VPC ซับเน็ต และกลุ่มความปลอดภัยตามที่อธิบายไว้ ที่อยู่ IP ไม่จำเป็นต้องตรงกับข้อมูลเหล่านั้นที่แสดงไว้ในตัวอย่างการนำไปใช้
- อินสแตนซ์ EC2 สี่รายการที่เรียกใช้การสร้างอัปเดตล่าสุดของ AWS Linux 2
- PostgreSQL ได้รับการติดตั้งและกำหนดค่าตามที่อธิบายไว้ใน[ติดตั้ง กำหนดค่า และ tar PostgreSQL](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part4.htm#Install,)
- ไฟล์ข้อมูลสำรอง tar ขั้นตอนที่ 1 อยู่ในอินสแตนซ์ EC2 ที่ติดตั้ง PostgreSQL ตามที่อธิบายไว้ใน[ดำเนินการสำรองข้อมูล PostgreSQL Step 1 tar](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part4.htm#Take)
- อินสแตนซ์ EC2 ที่จะเรียกใช้โหนด 1 ของการปรับใช้ Tableau Server ถูกกำหนดค่าให้สื่อสารกับ PostgreSQL ตามที่อธิบายไว้ใน[ตอนที่ 4: ติดตั้งและกำหนดค่า Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part4.htm#Configur)
- คุณได้เข้าสู่ระบบอินสแตนซ์ EC2 แต่ละรายการพร้อมด้วยเซสชัน SSH จากโฮสต์ Bastion

สคริปต์ใช้เวลาประมาณ 1.5-2 ชั่วโมงในการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Tableau สี่เซิร์ฟเวอร์ สคริปต์จะกำหนดค่า Tableau ตามการตั้งค่าที่กำหนดไว้ของสถาปัตยกรรมอ้างอิง สคริปต์ทำการดำเนินการต่อไปนี้:

- กู้คืนข้อมูลสำรองขั้นตอนที่ 1 ของโฮสต์ PostgreSQL หากคุณระบุเส้นทางไปยังไฟล์ tar ของโฮสต์ PostgreSQL
- ลบการติดตั้ง Tableau ที่มีอยู่บนโหนดทั้งหมด
- เรียกใช้ `sudo yum update` บนโหนดทั้งหมด
- ดาวน์โหลดและคัดลอกแพ็กเกจ rpm ของ Tableau ไปยังแต่ละโหนด
- ดาวน์โหลดและติดตั้งการขึ้นต่อกันไปยังแต่ละโหนด
- สร้าง `/app/tableau_server` และติดตั้งแพ็กเกจบนโหนดทั้งหมด
- ติดตั้งโหนด 1 ด้วยที่เก็บข้อมูลประจำตัวในเครื่องและกำหนดค่าที่เก็บภายนอกด้วย PostgreSQL
- ทำการติดตั้ง Bootstrap และการกำหนดค่าเริ่มต้นของโหนด 2 - โหนด 4
- ลบไฟล์ Bootstrap และไฟล์การกำหนดค่าสำหรับ TabDeploy4EDG
- กำหนดค่าบริการทั่วทั้งคลัสเตอร์ Tableau ตามข้อมูลจำเพาะของสถาปัตยกรรมอ้างอิง
- ตรวจสอบการติดตั้งและส่งคืนสถานะสำหรับแต่ละโหนด

**ดาวน์โหลดและคัดลอกสคริปต์ไปยังโฮสต์ Bastion**

1. คัดลอกสคริปต์จาก[หน้าตัวอย่าง TabDeploy4EDG](https://help.tableau.com/samples/en-us/edg/tabdeploy4edg.txt) แล้ววางโค้ดลงในไฟล์ที่เรียกว่า `TabDeploy4EDG`
2. บันทึกไฟล์ไปยังโฮมไดเรกทอรีบนโฮสต์ EC2 ที่ทำหน้าที่เป็นโฮสต์ Bastion
3. เรียกใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนโหมดบนไฟล์เพื่อทำให้เรียกใช้งานได้:
    
     sudo chmod +x TabDeploy4EDG

**เรียกใช้ TabDeploy4EDG**

จำเป็นต้องเรียกใช้ TabDeploy4EDG จากโฮสต์ Bastion สคริปต์ถูกเขียนด้วยสมมติฐานที่ว่าคุณกำลังเรียกใช้ภายใต้บริบทของเอเจนต์ส่งต่อ SSH ตามที่อธิบายไว้ที่[ตัวอย่าง: เชื่อมต่อกับโฮสต์ Bastion ใน AWS](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part3.htm#Example:) หากคุณไม่ได้เรียกใช้ด้วยบริบทเอเจนต์ส่งต่อ SSH คุณจะได้รับข้อความแจ้งให้กรอกรหัสผ่านตลอดกระบวนการติดตั้ง

1. สร้าง แก้ไข และบันทึกไฟล์การลงทะเบียน (`registration.json`) โดยต้องเป็นไฟล์ json ที่จัดรูปแบบอย่างถูกต้อง คัดลอกและปรับแต่งเทมเพลตต่อไปนี้:
    
    {
    	"zip" : "97403",
    	"country" : "USA",
    	"city" : "Springfield",
    	"last\_name" : "Simpson",
    	"industry" : "Energy",
    	"eula" : "yes",
    	"title" : "Safety Inspection Engineer",
    	"phone" : "5558675309",
    	"company" : "Example",
    	"state" : "OR",
    	"department" : "Engineering",
    	"first\_name" : "Homer",
    	"email" : "homer@example.com"
    }
2. เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์การกำหนดค่าเทมเพลต:
    
    ./TabDeploy4EDG -g edg.config
3. เปิดไฟล์การกำหนดค่าเพื่อแก้ไข:
    
    sudo nano edg.config              
    
    โดยอย่างน้อยคุณต้องเพิ่มที่อยู่ IP ของแต่ละโฮสต์ EC2 เส้นทางไฟล์ไปยังไฟล์การลงทะเบียน และคีย์ใบอนุญาตที่ถูกต้อง
4. เมื่อคุณทำการแก้ไขไฟล์การกำหนดค่าเสร็จแล้ว ให้บันทึกแล้วปิดไฟล์
5. หากต้องการเรียกใช้ TabDeploy4EDG ให้เรียกใช้คำสั่งต่อไปนี้:
    
    ./TabDeploy4EDG -f edg.config

## ตัวอย่าง: ทำให้การปรับใช้โครงสร้างพื้นฐานของ AWS เป็นแบบอัตโนมัติด้วย Terraform

ส่วนนี้จะอธิบายวิธีกำหนดค่าและเรียกใช้ Terraform เพื่อปรับใช้สถาปัตยกรรมอ้างอิง EDG ใน AWS ตัวอย่างการกำหนดค่า Terraform ที่แสดงในที่นี้เป็นการปรับใช้ AWS VPC กับเครือข่ายย่อย กลุ่มความปลอดภัย และอินสแตนซ์ EC2 ที่อธิบายไว้ใน[ส่วนที่ 3 - การเตรียมการปรับใช้ทั่วทั้งองค์กร Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part3.htm)

คุณสามารถดูตัวอย่างเทมเพลต Terraform ได้ในเว็บไซต์ Tableau Samples ที่ [https://help.tableau.com/samples/en-us/edg/edg-terraform.zip](https://help.tableau.com/samples/en-us/edg/edg-terraform.zip) เทมเพลตเหล่านี้ต้องได้รับการกำหนดค่าและปรับแต่งสำหรับองค์กรของคุณ เนื้อหาการกำหนดค่าที่กล่าวไว้ในส่วนนี้จะอธิบายถึงการเปลี่ยนแปลงเทมเพลตที่จำเป็นขั้นต่ำที่คุณต้องปรับแต่งเพื่อนำไปปรับใช้

### เป้าหมาย

เทมเพลตและเนื้อหาของ Terraform ที่ให้ไว้นี้มีจุดประสงค์เพื่อเป็นตัวอย่างการทำงานที่จะช่วยให้คุณสามารถปรับใช้ EDG ได้อย่างรวดเร็วในสภาพแวดล้อมการทดสอบเพื่อการพัฒนา

เราได้พยายามอย่างสุดความสามารถที่จะทดสอบและจัดทำเอกสารสำหรับตัวอย่างการปรับใช้ Terraform นี้ อย่างไรก็ตาม การใช้ Terraform เพื่อปรับใช้และบำรุงรักษา EDG ในสภาพแวดล้อมการใช้งานจริงจะต้องอาศัยความเชี่ยวชาญจาก Terraform ซึ่งอยู่นอกเหนือขอบเขตของตัวอย่างนี้ Tableau ไม่รองรับตัวอย่างโซลูชัน Terraform ที่บันทึกไว้ในที่นี้

### สถานะสิ้นสุด

โปรดปฏิบัติตามขั้นตอนในส่วนนี้เพื่อตั้งค่า VPC ใน AWS ที่ทำงานเทียบเท่ากับ VPC ที่ระบุไว้ใน[ส่วนที่ 3 - การเตรียมการปรับใช้ทั่วทั้งองค์กร Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part3.htm)

![แผนภาพสถาปัตยกรรม AWS สำหรับ Tableau Server](/tableau/current/th-th/guides/enterprise-deployment/th-th/Img/edg-vpc-terraform.png)

ตัวอย่างเทมเพลต Terraform และเนื้อหาประกอบในส่วนนี้:

- สร้าง VPC ที่มีที่อยู่ IP แบบยืดหยุ่น, โซนความพร้อมใช้งาน 2 โซน และการจัดระเบียบเครือข่ายย่อยตามที่แสดงไว้ด้านบน (ที่อยู่ IP ต่างกัน)
- สร้างกลุ่มความปลอดภัย Bastion, Public, Private และ Data
- ตั้งค่ากฎขาเข้าและขาออกส่วนใหญ่ในกลุ่มความปลอดภัย คุณจะต้องแก้ไขกลุ่มความปลอดภัยหลังจากเรียกใช้ Terraform แล้ว
- สร้างโฮสต์ EC2 ต่อไปนี้ (แต่ละโฮสต์เรียกใช้ AWS Linux2): เบสชัน, พร็อกซี 1 พร็อกซี 2, โหนด Tableau 1, โหนด Tableau 2, โหนด Tableau 3, โหนด Tableau 4
- ระบบไม่ได้สร้างโฮสต์ EC2 สำหรับ PostgreSQL คุณต้องสร้าง EC2 ด้วยตนเองในกลุ่มความปลอดภัยของข้อมูล จากนั้นจึงติดตั้งและกำหนดค่า PostgreSQL ตามที่อธิบายไว้ใน[ติดตั้ง กำหนดค่า และ tar PostgreSQL](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part4.htm#Install,)

### ข้อกำหนด

- บัญชี AWS - คุณต้องมีสิทธิ์เข้าถึงบัญชี AWS ที่อนุญาตให้คุณสร้าง VPC ได้
- หากคุณใช้งาน Terraform จากคอมพิวเตอร์ Windows คุณจะต้องติดตั้ง AWS CLI ด้วย
- ที่อยู่ IP แบบยืดหยุ่นที่มีอยู่ในบัญชี AWS ของคุณ
- โดเมนที่ลงทะเบียนใน AWS Route 53 Terraform จะสร้างโซน DNS และใบรับรอง SSL ที่เกี่ยวข้องใน Route 53 ดังนั้น โปรไฟล์ที่เรียกใช้ Terraform จึงต้องมีสิทธิ์ที่เหมาะสมใน Route 53 ด้วย

### ก่อนที่คุณจะเริ่มต้น

- ตัวอย่างบรรทัดคำสั่งในขั้นตอนนี้มีไว้สำหรับ Terminal ที่มี Apple OS หากคุณเรียกใช้ Terraform บน Windows คุณอาจต้องปรับคำสั่งกับเส้นทางไฟล์ตามความเหมาะสม
- โปรเจ็กต์ Terraform ประกอบด้วยไฟล์การกำหนดค่าข้อความจำนวนมาก (นามสกุลไฟล์ .tf) คุณกำหนดค่า Terraform ได้โดยปรับแต่งไฟล์เหล่านี้ หากคุณไม่มีเครื่องมือแก้ไขข้อความที่มีประสิทธิภาพ ให้ติดตั้ง Atom หรือ Text++
- หากคุณกำลังแชร์โปรเจ็กต์ Terraform กับผู้อื่น เราขอแนะนำให้จัดเก็บโปรเจ็กต์ไว้ใน Git เพื่อจัดการการเปลี่ยนแปลง

### ขั้นตอนที่ 1 - เตรียมสภาพแวดล้อม

#### ดาวน์โหลดและติดตั้ง Terraform

[https://www.terraform.io/downloads](https://www.terraform.io/downloads)

#### B. สร้างคู่คีย์ส่วนตัวและสาธารณะ

นี่คือคีย์ที่คุณจะใช้เพื่อเข้าถึง AWS และสภาพแวดล้อม VPC ที่เป็นผลลัพธ์ เมื่อคุณเรียกใช้ Terraform คุณจะต้องใส่คีย์สาธารณะ

เปิด Terminal และเรียกใช้คำสั่งดังต่อไปนี้

1. Create a private key. For example, `my-key.pem`:
    
    openssl genrsa -out my-key.pem 1024
2. สร้างคีย์สาธารณะ รูปแบบคีย์นี้ไม่ได้ใช้สำหรับ Terraform คุณจะแปลงเป็นคีย์ ssh ในภายหลังในขั้นตอนนี้:
    
    openssl rsa -in my-key.pem -pubout > my-key.pub
3. ตั้งค่าสิทธิ์ในคีย์ส่วนตัว:
    
    sudo chmod 0600 my-key.pem
    
    วิธีการตั้งค่าสิทธิ์บน Windows:
    
    - ค้นหาไฟล์ใน Windows Explorer คลิกขวาที่ไฟล์แล้วเลือก Properties ไปที่แท็บ Security แล้วคลิก Advanced
    - เปลี่ยนเจ้าของเป็นคุณ ปิดใช้งานการสืบทอด และลบสิทธิ์ทั้งหมด ให้สิทธิ์ Full control แก่ตัวคุณเอง จากนั้นคลิก Save ทำเครื่องหมายไฟล์เป็นแบบอ่านอย่างเดียว
4. สร้างคีย์ ssh สาธารณะ นี่คือคีย์ที่คุณจะคัดลอกไปยัง Terraform ในภายหลังในขั้นตอนนี้
    
    ssh-keygen -y -f my-key.pem >my-key-ssh.pub

#### C. ดาวน์โหลดโปรเจ็กต์และเพิ่มไดเร็กทอรีสถานะ

1. ดาวน์โหลดและแตกไฟล์ซิป [EDG Terraform project](https://help.tableau.com/samples/en-us/edg/edg-terraform.zip) แล้วบันทึกลงในเครื่องคอมพิวเตอร์ของคุณ หลังจากที่คุณแตกซิปไฟล์ที่ดาวน์โหลดมาแล้ว คุณจะมีไดเร็กทอรีระดับบนสุด, edg-terraform และชุดไดเร็กทอรีย่อย
2. สร้างไดเร็กทอรีที่ชื่อว่า `state` โดยให้อยู่ระดับเดียวกับไดเรกทอรี `edg-terraform` ระดับบนสุด

### ขั้นตอนที่ 2: ปรับแต่งเทมเพลต Terraform

คุณต้องปรับแต่งเทมเพลต Terraform ให้เหมาะกับสภาพแวดล้อม AWS และ EDG ของคุณ ตัวอย่างนี้แสดงการปรับแต่งเทมเพลตขั้นต่ำที่องค์กรส่วนใหญ่จำเป็นต้องทำ โดยมีความเป็นไปได้ว่าสภาพแวดล้อมที่เฉพาะเจาะจงของคุณจะต้องมีการปรับแต่งอื่นๆ

ส่วนนี้จัดระเบียบตามชื่อเทมเพลต

อย่าลืมบันทึกการเปลี่ยนแปลงทั้งหมดก่อนดำเนินการต่อใน_ขั้นตอนที่ 3 - เรียกใช้ Terraform_

#### versions.tf

There are three instances of `versions.tf` files where the `required_version` field must match the version of terraform.exe you're using. Check the version of terraform (`terraform.exe -version`) and update each of the following instances:

- `edg-terraform\versions.tf`
- `edg-terraform\modules\proxy\versions.tf`
- `edg-terraform\modules\tableau_instance\versions.tf`

#### key-pair.tf

1. เปิดรหัสสาธารณะที่คุณสร้างขึ้นในขั้นตอน 1B และคัดลอกคีย์:
    
     less my-key-ssh.pub
    
    Windows: คัดลอกเนื้อหาของคีย์สาธารณะของคุณ
2. คัดลอกสตริงคีย์สาธารณะลงในอาร์กิวเมนต์ public\_key เช่น
    
    resource "aws\_key\_pair" "tableau" {
    key\_name = "my-key"
    public\_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQ (truncated example) dZVHambOCw=="

Ensure that the `key_name` value is unique in the datacenter or `terraform apply` will fail.

#### locals.tf

Update `user.owner` to your name or alias. The value you enter here will be used for the "Name" tag in AWS on the resources that Terraform creates.

#### providers.tf

1. เพิ่มแท็กตามความต้องการขององค์กรของคุณ ตัวอย่าง:
    
    default\_tags {
      tags = {
          
       "Application" = "tableau",
       "Creator" = "alias@example.com",
       "DeptCode" = "8675309",
       "Description" = "EDG",
       "Environment" = "test",
       "Group" = "itcloud@example.com"
      }
    }
2. If using `provider`, comment out the `assume_role` lines:
    
    /\* assume\_role {
    role\_arn     = "arn:aws:iam::310946706895:role/terraform-backend"
    session\_name = "terraform"
    }\*/

#### elb.tf

Under `'resource "aws_lb" "tableau" {'` choose a unique value to use for `name` and `tags.Name`.

If another AWS load balancer has the same name in the datacenter, then `terraform apply` will fail.

Add `idle_timeout`:

resource "aws\_lb" "tableau" {
name                       = "edg-again-alb"
load\_balancer\_type         = "application"
subnets                    = \[for subnet in aws\_subnet.public : subnet.id\]
security\_groups            = \[aws\_security\_group.public.id\]
drop\_invalid\_header\_fields = true
idle\_timeout               = 400
tags = {
Name = "edg-again-alb"
}
			}

#### variables.tf

อัปเดตชื่อโดเมนรูท ชื่อนี้ต้องตรงกับโดเมนที่คุณลงทะเบียนใน Route 53

variable "root\_domain\_name" {
 default = "example.com"
 }

โดยค่าเริ่มต้น ระบบจะระบุโดเมนย่อย `tableau` สำหรับชื่อโดเมน VPC DNS หากต้องการเปลี่ยนแปลง ให้อัปเดต `subdomain`:

variable "subdomain" {
 default = "tableau"
}

#### modules/tableau\_instance/ec2.tf

There are two ec2.tf files in the project. This customization is for the Tableau instance of the ec2.tf in the directory: `modules/tableau_instance/ec2.tf`.

- หากจำเป็น ให้เพิ่มแท็ก blob:
    
    tags = { 
     "Name" : var.ec2\_name,
     "user.owner" = "ALIAS",
     "Application" = "tableau",
     "Creator" = "ALIAS@example.com",
     "DeptCode" = "8675309",
     "Description" = "EDG",
     "Environment" = "test",
     "Group" = "itcloud@example.com"
     }
    }
- หากจำเป็น คุณสามารถเลือกอัปเดตที่เก็บข้อมูลของคุณเพื่อจัดการกับข้อกำหนดด้านข้อมูลได้:
    
    ปริมาณราก:
    
    root\_block\_device {
     volume\_size = 100
     volume\_type = "gp3"
    }
    
    ปริมาณแอปพลิเคชัน:
    
    resource "aws\_ebs\_volume" "tableau" {
     availability\_zone = data.aws\_subnet.tableau.availability\_zone
     size              = 500
     type              = "gp3"
    }

### ขั้นตอนที่ 3 - เรียกใช้ Terraform

#### A. เริ่มใช้งาน Terraform

ใน Terminal ให้เปลี่ยนป็นไดเรกทอรี `edg-terraform` และเรียกใช้คำสั่งต่อไปนี้

terraform init

หากการเริ่มใช้งานสำเร็จ ให้ไปยังขั้นตอนถัดไป หากการเริ่มใช้งานล้มเหลว ให้ทำตามคำแนะนำในเอาต์พุต Terraform

#### B. วางแผน Terraform

จากไดเร็กทอรีเดียวกัน ให้รันคำสั่ง plan:

terraform plan

คำสั่งนี้สามารถเรียกใช้ได้หลายครั้ง เรียกใช้คำสั่งนี้ได้หลายครั้งตามที่จำเป็นเพื่อแก้ไขข้อผิดพลาด เมื่อคำสั่งนี้ทำงานโดยปราศจากข้อผิดพลาดแล้ว ให้ไปยังขั้นตอนถัดไป

#### C. นำ Terraform ไปใช้งาน

จากไดเร็กทอรีเดียวกัน ให้รันคำสั่ง apply :

terraform apply

Terraform will prompt you to verify deployment, type `Yes`.

#### ทางเลือก: ทำลาย Terraform

คุณสามารถทำลาย VPC ทั้งหมดได้โดยใช้คำสั่ง destroy:

terraform destroy

คำสั่ง destroy จะทำลายเฉพาะสิ่งที่สร้างขึ้นเท่านั้น หากคุณทำการเปลี่ยนแปลงบางออบเจ็กต์ใน AWS ด้วยตนเอง (เช่น กลุ่มความปลอดภัย เครือข่ายย่อย ฯลฯ) เช่นนั้นแล้ว `destroy` จะล้มเหลว หากต้องการออกจากการดำเนินการทำลายที่ล้มเหลว/หยุดทำงาน ให้พิมพ์ `Control + C` จากนั้น คุณต้องล้างข้อมูล VPC ด้วยตนเองให้อยู่ในสถานะเดิมดังเช่นที่สร้าง Terraform ขึ้นในตอนแรก จากนั้นคุณจะสามารถเรียกใช้คำสั่ง `destroy` ได้

### ขั้นตอนที่ 4 - เชื่อมต่อ Bastion

การเชื่อมต่อบรรทัดคำสั่งทั้งหมดผ่านโฮสต์ Bastion บน TCP 22 (โปรโตคอล SSH)

1. ใน AWS ให้สร้างกฎขาเข้าในกลุ่มความปลอดภัยของ Bastion (**AWS** > **Security Groups** > **Bastion SG** > **แก้ไขกฎขาเข้า** ) และสร้างกฎเพื่ออนุญาตการเชื่อมต่อ SSH (TCP 22) จากที่อยู่ IP หรือมาสก์เครือข่ายย่อยที่คุณจะเรียกใช้คำสั่ง Terminal
    
    ทางเลือก: คุณอาจพบว่าการอนุญาตให้คัดลอกไฟล์ระหว่างอินสแตนซ์ EC2 ในกลุ่มส่วนตัวและสาธารณะระหว่างการปรับใช้นั้นอาจเป็นประโยชน์ สร้างกฎ SSH ขาเข้า:
    
    - ส่วนตัว: สร้างกฎขาเข้าเพื่ออนุญาต SSH จากสาธารณะ
    - สาธารณะ: สร้างกฎขาเข้าเพื่ออนุญาต SSH จากส่วนตัวและจากสาธารณะ
2. ใช้คีย์ pem ที่คุณสร้างขึ้นในขั้นตอน 1.B เพื่อเชื่อมต่อกับโฮสต์ Bastion :
    
    **บน Mac Terminal:**
    
    เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีที่เก็บคีย์ pem:
    
    ssh-add —apple-use-keychain <keyName>.pem
    
    If you get a warning about private key being accessible by others, then run this command: `chmod 600 <keyName.pem>` and then run the `ssh-add` command again.
    
    Connect to the bastion host with this command: `ssh -A ec2-user@IPaddress`
    
    For example: `ssh -A ec2-user@3.15.12.112`.
    
    **บน Windows โดยใช้ PuTTY และ Pageant:**
    
    1. สร้าง ppk จากคีย์ pem: ใช้ PuTTY Key Generator โหลดคีย์ pem ที่คุณสร้างขึ้นในขั้นตอน 1.B หลังจากนำเข้าคีย์แล้ว ให้คลิก**บันทึกคีย์ส่วนตัว** ซึ่งจะสร้างไฟล์ ppk ขึ้นมา
    2. ใน PuTTY - เปิดการกำหนดค่าและทำการเปลี่ยนแปลงต่อไปนี้
        
        - เซสชัน>ชื่อโฮสต์: เพิ่มที่อยู่ IP ของโฮสต์ Bastion
        - เซสชัน>พอร์ต: 22
        - การเชื่อมต่อ>ข้อมูล>ชื่อผู้ใช้ที่เข้าสู่ระบบอัตโนมัติ: ec2-user
        - การเชื่อมต่อ>SSH>การให้สิทธิ์>อนุญาตการส่งต่อเอเจนต์
        - Connection>SSH>การให้สิทธิ์> สำหรับคีย์ส่วนตัว ให้คลิก Browse แล้วเลือกไฟล์ .ppk ที่คุณเพิ่งสร้างขึ้น
    3. ติดตั้ง Pageant และโหลด ppk ลงในแอปพลิเคชัน
    
    ### ขั้นตอนที่ 5 - ติดตั้ง PostgreSQL
    
    เทมเพลต Terraform ไม่ได้ติดตั้ง PostgreSQL เพื่อใช้เป็นที่เก็บภายนอก อย่างไรก็ตาม มีการสร้างกลุ่มความปลอดภัยและเครือข่ายย่อยที่เกี่ยวข้องขึ้นมา หากคุณจะติดตั้งพื้นที่เก็บภายนอกบนอินสแตนซ์ EC2 ที่เรียกใช้ PostgreSQL คุณต้องปรับใช้อินสแตนซ์ EC2 ตามที่อธิบายไว้ใน[ส่วนที่ 3 - การเตรียมการปรับใช้ทั่วทั้งองค์กร Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part3.htm)
    
    จากนั้นจึงติดตั้ง กำหนดค่า และสำรองข้อมูล tar ของ PostgreSQL ตามที่อธิบายไว้ใน[ตอนที่ 4: ติดตั้งและกำหนดค่า Tableau Server](https://help.tableau.com/current/guides/enterprise-deployment/th-th/edg_part4.htm)
    
    ### ขั้นตอนที่ 6 - เรียกใช้ DeployTab4EDG (ทางเลือก)
    
    สคริปต์ TabDeploy4EDG จะทำการปรับใช้ Tableau แบบสี่โหนดที่อธิบายไว้ในส่วนที่ 4 โดยอัตโนมัติ โปรดดู[สคริปต์การติดตั้ง TabDeploy4EDG อัตโนมัติ](#EDGSetup)