วันนี้ลงทุนลามาลองฟังดูครับ (หนีประชุมด้วย 555) โดยงานนี้จัดที่ทรู สเปซ เซ็นเตอร์พ้อยต์ ออฟ สยาม เซ็นเตอร์ มาลองฟังค่ายอื่นๆ นอกจาก Azure บ้างครับ จะมีอะไรบ้างลองดูกันครับ
Compute Service
- ส่วนงานประมวลบน AWS โดยมีหลาย Service ที่เกี่ยวข้องได้แก่
- Virtual Machine(IaaS): AWS EC2 VM จะเรียกว่า Instance
- Containerization (PaaS): AWS ECS / EKS (K8S)
- Serverless(PaaS): AWS Lambda / AWS Fargate (Serverless Containerization)
- AWS Graviton / AWS Inferentia / AWS Trainium งานที่ใช้ CPU พิเศษ
- ตัว EC2 มีหลายแบบให้เหมาะสมกับงานนะ โดยแบบหลักก็จะมี
- General Purpose - ใช้งานทั่วไป Dev Server / Web Server
- Compute Optimized - High performance web servers / batch processing
- Memory Optimized - DB Server / Data Analytics
- Accelerated Computing - พวกใช้ CPU พิเศษ เช่น งานด้วย Machine Learning
- Storage Optimized (High I/O) เน้นงานด้านใช้ I/O เช่น Data Analytic
- ก่อนเราจะสร้าง EC2 Instance มาต้องสนใจอะไรบ้าง
- Name tags - เอาไว้จัดกลุ่ม Workload ในองค์กร
- Application / Base Image
- Instance Type + Size รวมถึง Network Card สำหรับงานแต่ละชิ้น
- Key Pair - SSH
- Network + Security
- Storage GP3
- Placement and tenancy - จัดกลุ่ม
- Scripts and Metadata - เอาไว้ Initial VM ก่อน Start
- Note อื่นๆ:
- Amazon Machine Image (AMI) - Template สำหรับ Clone Image //Azure น่าจะ Share VM images in a compute gallery
- AWS Cloudformation Infra as a code //Azure น่าจะ Azure Resource Manager Template
- EC2 Purchase Option - มีหลายหมวดให้ใช้งาน ต้องรู้ load ของงาน จะได้เลือกถูก
- On-Demand ใช้เท่าไหร่จ่ายเท่านั้น Per Hour / Per Tx
- Reserved Instance เหมาเช่า ระยะยาว 1 / 3 ปี
- Standard RI ไม่เปลี่ยนอะไรเลยลดเยอะ
- Convertible RI ส่วนลดน้อยลง แต่มี Flexible มากขึ้น เช่น แก้ Machine Type / Region
- Saving Plan คล้าย Reserved Instance แต่ไปกำหนดที่ตัวเงินแทน ว่า ชม ละเท่าไหร่
- Spot Instance EC2 ราคาถูกว่า On-demand เอา resource เหลือจาก มาใช้ AWS จ่ายเป็นรายชั่วโมง แต่เสี่ยงว่า Resource จะถูก AWS ยึดคืน CPU/Memory (Interruption) ยิ่งถูก มีโอกาศ Interruption ได้สูง แข่งกันจ่ายแพงกว่าเพื่อลดความเสี่ยงนี่เอง 5555
- ตอน Interruption เราเลือกได้ว่าจะ Stop / Terminate + Recovery
- การลดความเสี่ยง Interruption ทำ diversification กระจาย region / az zone
- Note:
- จ่ายเงิน Full Upfront จ่ายเต็ม ลดเยอะ / Partial Upfront แบ่งจ่ายก่อน / No Upfront จ่ายรายเดือน
Auto Scaling
- Scale Type
- Vertical Scaling (Scale Up) เพิ่ม resource CPU, RAM
- Horizontal Scaling (Scale Out) เพิ่ม Instance //ใน Lab ทำอันนี้ จ่ายเงินตามจำนวนเครื่อง และให้ Auto Scaling Group มาจัดการ อ๋อ Spot Instance ตรงนี้
- การ Scale ต้องมี Utilization CPU / Mem ของ Instance และจุดพุ่งออกมา Provisioning ควรล้อกับ Utilization จะได้ไม่จ่ายเงินเสียไปตามรูปที่จ่ายทิ้งไป 76% เพราะเผื่ออนาคตไว้ 3-5 ปี ถ้าซื้อ HW ไว้
- Benefit
- Improve Fault Tolerance - กระจายไปหลายๆ AZ
- Increase Application Availability
- Lower Cost - Spot Instance + EC2
- Auto Scaling components
- Launch Templates - Workload เอาไป Deploy
- Auto Scaling Group - บอก Set ของ Workload ที่ทำได้ ในที่นี้จะเป็นตัว EC2
- Single Instance Type
- Multiple Instance Type
- Auto Scaling Policy - ตัว Trigger Scale In/Out
- Dynamic - CloudWatch + Threshold
- Schedule - ตั้งเวลาเอา เช่น 6.6 / 11.11
- Predictive - AI (ใช้ Machine AI HW ด้วย)
- CloudWatch - Monitor ของ AWS ตัวเก็บ Data เพื่อไปเอาใช้งานใน Auto Scaling Policy
- CloudWatch Alarms - Alert ตาม Metric ที่กำหนดไว้
- Elastic Load Balancing - เอาไว้กระจาย load เข้า Workload ต่างๆ
- Application Load Balancing (http / https) L7
- Network Load Balancing (TCP/UDP) L4
Workshop
หลังจากฟังทฤษฏีเสร็จมาลองทำ Workshop กับครับ โดยงานนี้ดีมาก มี Account ฟรีจากทาง AWS มาให้ใช้ 48 ชั่วโมงครับ โดยตัว Lab มี 2 Version
- กดผ่าน Web UI Auto Scaling on AWS (workshops.aws)
- กดผ่าน Command EC2 Auto Scaling with multiple instance types and purchase options :: EC2 Spot Workshops //อันนี้จะมีเรื่อง Multiple Spot Instance Type ด้วยครับ
ตอนทำ Workshop ผมเลือกตัว Command ครับ ภาพรวมจะเป็นตามนี้ครับ แต่ละ Component สร้างจาก Command ทำบนตัว AWS Cloud9 - เป็น EC2 ที่ทำหน้าที่เหมือน JumpHost เข้ามาแล้ว หน้าจอจะเหมือน VS Code เรามารัน Command เป็น EC2 แบบนึง ตอนทำก็เปิด Web UI มาคู่ๆกัน มาตรวจครับ
โดยเป็นการ Run ผ่าน Cloud9 ผมมองตัว Cloud9 เป็น JumpHost นะ เพราะ Account ที่ AWS ให้มาจะ AWS Console ไม่ได้นะ ติดสิทธิ์ หน้าตาเจ้า Cloud9 ตามรูป
จากนั้น Follow ตาม Workshop ไป และลองดู CloudWatch + Auto Scaling groups จะเป็นว่าจากที่ตัว ssm-stress.json ที่ยิงมาว่ามีการ Scale EC2 ยังไงบ้าง
และของว่างอร่อยมากครับ วิวดีด้วย ติดรถไฟฟ้าเลยครับ ^__^ โต๊ะทำงานรายเดือนแอบน่าสนใจ
Reference
- Cloudtalk Plus+: ปูพื้นฐาน AWS Auto Scaling EC2 & Spot instance
- Coworking Space เซ็นเตอร์พอยท์ ออฟ สยามสแควร์ ชั้น 4 - True Space (truespaceth.com)
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.