DEV Community

Cover image for Create 10 AWS EC2 with Terraform แบบเร็วๆ
terngr
terngr

Posted on

Create 10 AWS EC2 with Terraform แบบเร็วๆ

จะมีงานหนึ่งที่ผู้ดูแล Infrastructure จะต้องทำบ่อยๆ ก็คือการสร้าง Virtual Machines ตามที่เพื่อนร่วมงาน, แผนกอื่น, คู่ค้า, ลูกค้า ฯลฯ ต้องการ

สวัสดีครับ วันนี้เราสามารถเร่งเวลาของงานที่ทำบ่อยๆ ได้ด้วย Terraform
โดยเริ่มจาก Ubuntu 22.04 เครื่องปล่าจนถึงได้ 10 AWS EC2

ติดตั้ง Terraform

Prerequisites
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common

Download the Singing Key
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg

Verify the Singing Key
798A EC65 4E5C 1542 8C8E 42EE AA16 FCBC A621 E701
gpg --no-default-keyring --keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg --fingerprint

เพิ่ม Repositories
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

Update
sudo apt update

Install
sudo apt install terraform

ตรวจเช็คว่า Terraform พร้อมใช้งานแล้ว
terraform -help

สร้าง EC2

สร้าง Directory
mkdir iac-aws
cd iac-aws

สร้างไฟล์ main.tf
ใส่ aws access_key และ aws secret_key ของเราครับ

provider "aws" {
  access_key = ""
  secret_key = ""
  region     = "ap-southeast-1"
}

resource "aws_instance" "iac-aws" {
  ami           = "ami-0af2f764c580cc1f9"
  instance_type = "t2.micro"
  tags = {
    Name    = "aws-vm"
  }
}
Enter fullscreen mode Exit fullscreen mode

ทำการ init
terraform init
Image description

เตรียม Plan การสร้าง
terraform plan
Image description

สร้างเครื่องจริง
พิมพ์ yes เพื่อยืนยัน
terraform apply
Image description

ถ้าต้องการ 10 เครื่อง ให้เพิ่ม count

resource "aws_instance" "iac-aws" {
  count = 10
...
Enter fullscreen mode Exit fullscreen mode

ให้แต่ละเครื่องมีเลขกำกับ

...
  tags = {
    Name    = "aws-vm-${count.index}"
  }
...
Enter fullscreen mode Exit fullscreen mode

เตรียม plan และ apply อีกครั้ง
terraform plan
terraform apply
Image description

เมื่อใช้งานเสร็จ สามารถสั่งลบได้ทีละ 10 เครื่องเช่นกันครับ โดยไม่กังวลว่าจะลบผิด
terraform destroy

หากต้องการ VM เพิ่ม ขอแยกเป็น 2 เคสครับ

  • เพิ่มจาก 10 เป็น 11 VMs ให้แก้ไข count=11 จากนั้นรันคำสั่ง terraform plan; terraform apply จะได้ VM เพิ่ม 1 เครื่องโดยไม่กระทบ 10 VMs ที่มีอยู่
  • หากต้องการสร้าง VM ชุดใหม่ โดยแยกจากชุดแรก ให้สร้าง Directory และ main.tf ใหม่

ในตอนหน้า พบกับ Cloud Providers เจ้าอื่นๆ และจะต่อยอดไปที่การทำ Multi-Cloud ครับ

Reference: https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli

Top comments (0)