Containers: ECS, EKS, และ Fargate
รันแอปแบบ container และเลือกตัวจัดการที่เหมาะ
Container (เช่น Docker) เหมือนกล่องอาหารสำเร็จรูปที่ห่อวัตถุดิบทุกอย่าง (โค้ด + ไลบรารี) ไว้พร้อม เอาไปเวฟเครื่องไหนรสชาติก็ออกมาเหมือนกัน. ส่วนแพลตฟอร์มบริหาร Fargate คือคุณยื่นกล่องอาหารนี้ให้ภัตตาคารจัดการอุ่นและเสิร์ฟให้ โดยที่คุณไม่ต้องไปกังวลเรื่องการบริหารครัว (ไม่มีเซิร์ฟเวอร์ EC2 ให้ต้องปวดหัวดูแล)
เมื่อโลกพัฒนาเข้าสู่ยุค Microservices การแพ็กแอปพลิเคชันเป็น Container เป็นที่นิยมมาก AWS มีบริการควบคุม (Orchestration) ให้เลือกหลักๆ 2 ตัว และมีตัวเลือกการประมวลผล (Compute Engine) แสนสะดวกอย่าง Fargate
- ECS (Elastic Container Service) — เครื่องมือจัดการ Container ที่ AWS พัฒนาขึ้นเอง ใช้งานง่ายมากและผูกทำงานกับบริการ AWS อื่นๆ ได้ราบรื่น
- EKS (Elastic Kubernetes Service) — บริการ Kubernetes แบบ Managed เหมาะสำหรับองค์กรที่ใช้ Kubernetes อยู่แล้ว หรือเน้นความเป็นมาตรฐานสากลที่สามารถย้าย (Portability) ไปค่ายคลาวด์อื่นได้
- AWS Fargate — เป็นโหมดประมวลผล Serverless สำหรับรัน Container (คุณใช้ Fargate จับคู่ทำงานร่วมกับ ECS หรือ EKS ก็ได้) ข้อดีคือไม่ต้องดูแลและอัปเดต EC2 เบื้องหลังเลย
1. Stateless (ไร้รัฐ / ไม่จำอดีต): เหมือนพนักงานร้านฟาสต์ฟู้ด สั่งใหม่ทุกครั้งเริ่มรับคำสั่งใหม่ (เซิร์ฟเวอร์แบบนี้ถ้าพังแล้วเปิดใหม่ สามารถสลับทำงานแทนกันได้ทันที เพราะไม่เก็บข้อมูลผู้ใช้ไว้ที่เครื่องตัวเอง มักเป็น Web Server ทั่วไป) 2. Stateful / StatefulSet (จำอดีต / มีตัวตนที่ชัดเจน): เหมือนช่างตัดผมประจำตัวที่จำทรงผมคุณได้ (เซิร์ฟเวอร์แบบนี้จะเก็บข้อมูลไว้ที่เครื่องตัวเอง เช่น Database สลับตัวกันมั่วๆ ไม่ได้) ใน Kubernetes เราจะใช้ StatefulSet จัดการของกลุ่มนี้ เพื่อรับประกันว่าคอนเทนเนอร์แต่ละตัวมีชื่อที่ตายตัว ลำดับชัดเจน และข้อมูลเดิมต้องไม่หายเวลาเปิดใหม่
สรุป Key Takeaways
- ECS = container orchestration ของ AWS, EKS = managed Kubernetes
- Fargate = รัน container แบบ serverless ไม่ต้องดูแล EC2
- อยากเลี่ยงการจัดการเซิร์ฟเวอร์ → Fargate
คำถามที่พบบ่อย
ECS กับ EKS เลือกยังไง
ECS = orchestrator ของ AWS เอง เรียบง่าย ผูกกับบริการ AWS แน่น เหมาะกับทีมที่อยู่ในโลก AWS ล้วน ส่วน EKS = Kubernetes มาตรฐานเปิด เหมาะเมื่อทีมมีทักษะ K8s อยู่แล้วหรือต้องการ portable ข้าม cloud — ข้อสอบชี้คำตอบด้วยคำว่า "Kubernetes" ในโจทย์ตรงๆ
Fargate คืออะไร ต่างจาก EC2 launch type ยังไง
Fargate = รัน container โดยไม่ต้องดูแลเครื่อง host เลย (serverless container) จ่ายตาม vCPU/RAM ที่ task ใช้ ส่วน EC2 launch type = เราจัดการ fleet เครื่องเอง คุมได้มากกว่า/ถูกกว่าเมื่อ utilization สูง — โจทย์ "ไม่อยากบริหาร server" = Fargate
ECR เกี่ยวข้องยังไงกับ ECS/EKS
ECR คือ registry เก็บ container image ของเรา (เหมือน Docker Hub ส่วนตัว) — ECS/EKS ดึง image จาก ECR มารัน ผูกสิทธิ์ผ่าน IAM และสแกนช่องโหว่ใน image ได้ในตัว
ลองทำ Quiz ท้ายบท
คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

