AWS CloudFormation #Chapter1

Krucamper
Krucamper
Sep 3, 2018 · 3 min read

สำหรับบทความนี้จะมาแนะนำการใช้งาน AWS Service ที่ชื่อว่า CloudFormation ซึ่งอยู่ในหมวด Management Tools โดยตัวอย่างนี้จะแนะนำการสร้าง Template สำหรับใช้งาน WordPress พร้อม ทำ Auto Scaling นะครับ

ภาพแสดงหน้า Services ของ AWS

CloudFormation คืออะไร

CloudFormation คือ Tools สำหรับช่วยให้เราสามารถสร้าง Services ต่างๆ ผ่าน Design Template โดยที่เราสามารถเขียน Template ขึ้นมาเอง หรือสามารถเลือกใช้จาก Template ที่ AWS ได้เตรียมไว้ให้ก็ได้

แล้วมันต่างจากวิธีการสร้างที่หน้า Console ปกติยังไง? ถ้าต้องการสร้าง Server ขึ้นมาสักเครื่องหนึ่ง โดยเครื่องนั้นสามารถทำการ Auto Scaling พร้อมทั้ง ส่งข้อความแจ้งเตือนตามเงื่อนไขที่เรากำหนด

ปกติเราก็ต้องมานั่งกดที่ EC2 เลือก Instance ที่ต้องการสร้าง พอสร้างเสร็จก็เข้าไป Config Auto Scaling … ซัดกันไปยาวๆ กว่าจะเสร็จ แล้วถ้าต้องสร้าง Server คล้ายๆ แบบเดิมๆ ล่ะ แค่คิดก็เพลียล่ะ

สุดท้ายก็เลยมาลงเอยกับ CloudFormation ส่วนวิธีการจะทำยังไงมั่งนั้นมาดูกัน


ขั้นตอนแรก เข้าไปที่ Services CloudFormation

ภาพแสดงหน้า GUI ของ CloudFormation

ขั้นตอนที่สอง คลิ๊กเข้าไปที่ Create new stack

ภาพแสดงหน้า GUI ของ CloudFormation ในส่วนของการสร้าง Stacks

ขั้นตอนที่สาม Copy json File ตามตัวอย่างด้านล่าง มาที่เครื่อง แล้วเลือก Upload a template to Amazon S3 หลังจากนั้น Browse file เข้าไป กด Next

https://gist.github.com/Krucamper/2aa7e855fae8e3cfd265a2bf188e7ea2.js

สำหรับบทความนี้จะยังไม่ได้อธิบายค่า paramter ต่างๆ นะครับ ขอยกยอดไปบทความหน้า

ขั้นตอนที่สี่ ทำการ Config ค่าตามที่ต้องการ หลังจากนั้นก็กด Next ไปเรื่อยๆ จนเจอคำว่า Create

ภาพแสดงหน้า CloudFormation Config Stacks
DBAllocatedStorage: ขนาดความจุของ Storage
DBName: ชื่อของ Database
DBPassword:
รหัสผ่าน Database
DBUser: ชื่อของ User สำหรับเข้าใช้งาน
ภาพแสดงหน้า CloudFormation Config Stacks (ต่อ)
KeyName: KeyPairs สำหรับเข้าใช้งานเครื่อง * จำเป็นต้องระบุ
OperatorEMail: อีเมล์สำหรับใช้แจ้งเตือน Notifcation
WebServerCapacity: จำนวนเริ่มต้นของ webserver

ขั้นตอนที่ห้า หลังจาก Create Stack เสร็จแล้ว ระบบจะพามาที่หน้า Dashboard ของ Stack

ภาพแสดง CloudFormation Dashboard ของ Stacks

รอประมาณ 15 นาที Status แสดงคำว่า CREATE_COMPLETE

ภาพแสดงสถานะของ CloudFormation Stacoks ถูกสร้างเสร็จเรียบร้อย

ขั้นตอนที่หก กดเข้ามาที่แถบ Outputs เพื่อเข้าสู่หน้าจัดการ WordPress

เนื่องจาก Template นี้เราได้เขียนกำหนดให้ แสดง WebsiteURL

ขั้นตอนที่เจ็ด ทำการ Config ค่า WordPress

หลังจาก Config ค่าเสร็จ กดเข้ามาดูที่หน้าหลักของเว็บไซต์

ขั้นตอนที่แปด เข้าไปที่ Services EC2 เมนู Instances

ภาพแสดงหน้า Services ของ AWS EC2

เพื่อตรวจสอบการทำงานของ Template จะพบ Instance ที่ถูกสร้างขึ้น

  • Instance Type : t2.micro (vCPUs 1 Core RAM 1 G)
  • Avaliablility Zone: ap-southeast-1b (Data Center อยู่ที่ ประเทศสิงคโปร์)
ภาพแสดงรายละเอียดของ Instances

เข้าไปที่เมนู Auto Scaling Groups

  • กำหนดเงื่อนไขการทำ Auto Scaling Up ถ้า CPU สูงกว่า 70 % ใน 5นาที
  • กำหนดเงื่อนไขการทำ Auto Scaling Down ถ้า CPU ต่ำกว่า 30 % ใน 5นาที
ภาพแสดงรายละเอียดของ Auto Scaling

ขั้นตอนที่เก้า เข้าไปที่ Services Application Integration เมนู Simple Notification Service

หลังจากที่เราสร้าง Stacks ที่ CloudFormation เสร็จ จะมีอีเมล์ส่งมาให้ทำการ Subscribe เพื่อคอย Monitor การทำงานของระบบ

ภาพแสดงหน้า Services ของ AWS Application Integration

หลังจากนั้นกดเข้าไปที่ เมนู Topic กดดูรายละเอียดของ Topic ที่เราทำการ Subscribe ระบบจะทำการส่งอีเมล์แจ้งเตือนตามเงื่อนไขที่เราได้กำหนด

ภาพแสดงหน้า รายละเอียดของ Topic ที่ทำการ Subscribe

สำหรับบทความนี้ก็จบประมาณนี้ล่ะกันครับ ขาดตกบกพร่องตรงไหนคอมเม้นเข้ามาติชมกันได้นะครับ ขอบคุณครับ

Krucamper

Written by

Krucamper

Scientist x Blockchain x Gamer

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade