มาใช้ Terraform สร้าง EC2 เพื่อชีวิตที่ง่ายๆกัน
เกริ่นก่อนจะมาเขียนบทความนี้เจอปัญหาการสร้าง Server EC2 เพราะต้องมีการไป Set Group ,Set Network ,และอีกหลายอย่างกว่าจะได้ EC2 มาเครื่องหนึ่งและต้องมาคอขวดเพราะคนอื่นก็สร้างไม่ได้ แต่จะง่ายกว่าไหมถ้ามี Script พร้อม Key ไว้สร้างเพียงไม่กี่ Click เพื่อให้ทีมได้เครื่อง EC2 มาง่ายๆเลย
Terraform คือเครื่องมือที่จัดการ Infrastructure และ Syntax ง่ายต่อความเข้าใจ และสามารถจัดการได้หลายเจ้าโดยที่แต่ละคนที่เข้ามาใหม่ไม่ต้องมีความรู้เรื่อง Cloud นั้นๆเลยก็ได้แต่บทความนี้จะเอามาจัดการกับ AWS Cloud
สิ่งที่ต้องเตรียม
-ติดตั้ง AWS ในเครื่องให้เรียบร้อย
-VS Code
ขั้นตอนการติดตั้งสำหรับ Macbook นะครับ
-brew tap hashicorp/tap
-brew install hashicorp/tap/terraform
-terraform — version
Terraform จะประกอบด้วย 3 ส่วนสำคัญ
-terraform init คล้ายๆเป็นการ init project การเขียน code ทั่วไปทำครั้งเดียวต่อ 1 script
-terraform plan เป็นการตรวจสอบ script และเช็คการสร้างว่าอะไรสำเร็จไม่สำเร็จ
-terraform apply เป็นการสร้างจริงเสียเงินจริงแล้วก็เปรียบเสมือนการ Deploy Code ประมาณนั้น
อันนี้คือ file.tf ที่เราจะเอามาสร้างในรอบนี้เป็นการสร้าง EC2 จนไปถึงการ Run Script ต่างๆการเตรียมพร้อมเครื่อง EC2 เราทั้งหมดมาอธิบายเป็นส่วนๆกัน
ami คือ id image ของเครื่อง Server ที่เราจะใช้แล้วจะหาจากไหนใช่ไหมครับ
instance_type คือ สเปคที่เราจะใช้ของ EC2 ผมเลือกเป็น t3.micro เอาไว้ Demo เฉยๆ
key_name คือ key .pem ของเราที่เราเอาไว้ใช้ ssh เข้าไปใน Server เรานั้นเองซึ่งสามารถสร้างที่ console aws หรือบน Local เราได้ข้างล่างเป็นการสร้างใน Local
vpc_security_group_ids คือ id ที่ได้จากการสร้าง aws_security_group อันนี้ไม่ต้องทำอะไรหรือไม่อยากให้มีหลาย Group ก็ไปเอาไอดีบน AWS มาใส่ก็ได้
associate_public_ip_address คือ จะให้ EC2 เรามีไอพีสำหรับออก Internet ไหม
tags.name คือ ผมจะให้ Instance นี้ชื่ออะไร
ซึ่งสิ่งที่ต้องทำคือการ Trigger กับ Connection เข้า EC2 เท่านั้นนอกเหนือจากนั้นคือการเตรียมสิ่งที่ต้องใช้บน Server ของเราซึ่งของแต่ละคนจะแตกต่างกันไป
ซึ่งของผมจะเป็นการ ติดตั้ง Docker,Docker-compose,Setup Log Cloudwatch,Custom Nginx,จัดการ SSL/TLS certificates สำหรับ reverse proxy
อธิบายหมดแล้วมาลองดูผลลัพธ์กันครับ
ตรวจว่า Script นี้ Run ผ่านไหมได้อะไรบ้างซึ่งมาจะแสดงมาเยอะมาก
จะถามว่าเรายอมรับไหมกับสิ่งที่มันจะสร้างให้ทั้งหมดพิมพ์ yes ไปแล้วรอเป็นอันจบแล้ว
จากนั้นจะทำการลบที่สร้างไปทั้งหมดด้วยคำสั่ง terraform destroy มันก็จะถามว่าจะลบจริงหรอเราก็ตอบ yes ไปเป็นอันจบ
จะเห็นว่าหลังจากเรา Config หมดทุกอย่างแล้วเราใช้เวลาสร้าง EC2 ตัวนึงไม่ถึง นาทีเลยจากปกติ 30 นาทีต้องมีทั้งสร้าง EC2 ทั้ง Config Server 100 EC2 ก็ Loop เอา ง่ายๆเลยใช่ไหมครับส่งท้ายปี 2023 ด้วยบทความนี้กัน ขอให้มีความสุขกับปีใหม่ครับ