EC2 Basics — รู้จัก EC2
EC2 (Elastic Compute Cloud) คือบริการ Compute ที่ได้รับความนิยมที่สุดของ AWS — เป็น Infrastructure as a Service (IaaS) ให้เราเช่า Virtual Machine บน Cloud ตามต้องการ
EC2 ไม่ได้มีแค่ VM อย่างเดียว — แต่ครอบคลุม capability หลายอย่าง:
Renting Virtual Machines (EC2)
เช่า server บน Cloud — เลือก OS (Linux, Windows, macOS), spec ตามต้องการ และจ่ายตามที่ใช้จริง
Storing Data on Virtual Drives (EBS)
เก็บข้อมูลบน virtual disk ที่ผูกกับ EC2 — Elastic Block Store ทำหน้าที่เหมือน hard drive ของ VM
Distributing Load (ELB)
Elastic Load Balancer กระจาย traffic ไปยัง instance หลายตัว เพื่อ high availability และ fault tolerance
Scaling Services (ASG)
Auto Scaling Group เพิ่ม/ลด instance อัตโนมัติตาม load — รองรับการเติบโตและประหยัดค่าใช้จ่าย
Sizing & Configuration Options — เมื่อสร้าง EC2 instance เราเลือกได้:
- Operating System (OS): Linux, Windows, macOS
- CPU: จำนวน core และ compute power
- RAM: ขนาด memory
- Storage: เก็บที่ไหน — EBS & EFS (Network-attached) หรือ EC2 Instance Store (Hardware)
- Network Card: ความเร็ว network, public IP address
- Firewall Rules: Security Group สำหรับควบคุม traffic
- Bootstrap Script: EC2 User Data — รันคำสั่งครั้งแรกตอน launch
EC2 User Data
User Data คือ script ที่รันอัตโนมัติ ครั้งแรกที่ instance เริ่มต้น (bootstrap) ใช้ตั้งค่า server โดยอัตโนมัติโดยไม่ต้องล็อกอินเข้าไปทำเอง
- รันในฐานะ root user — มีสิทธิ์เต็ม
- รัน ครั้งเดียว เมื่อ instance เริ่มต้นครั้งแรกเท่านั้น
- รองรับ bash script (Linux) และ PowerShell (Windows)
- ใช้งานที่ไหน: EC2 Launch → Advanced Details → User Data
#!/bin/bash
# update ระบบ
yum update -y
# ติดตั้ง web server
yum install -y httpd
# เริ่มต้น service
systemctl start httpd
systemctl enable httpd
# สร้างหน้าเว็บง่ายๆ
echo "<h1>Hello from EC2</h1>" > /var/www/html/index.htmlInstance Types
AWS มี instance หลายประเภทให้เลือก แต่ละประเภทออกแบบมาสำหรับ workload ที่ต่างกัน — ชื่อ instance บอก family, generation, และ size
General Purpose (t, m)
สมดุลระหว่าง CPU, RAM, Network — เหมาะสำหรับงานทั่วไป เช่น Web server, code repository, small databases
Compute Optimized (c)
CPU สูง — เหมาะกับงานที่ต้องการประมวลผลมาก เช่น Batch processing, media transcoding, High-performance web servers, Gaming server, ML inference
Memory Optimized (r, x, z)
RAM สูงมาก — เหมาะกับ workload ที่ต้องการ in-memory processing เช่น In-memory database (Redis), Real-time big data analytics, High-performance databases
Storage Optimized (i, d, h)
I/O สูง — เหมาะกับงานที่อ่าน/เขียน storage เยอะมาก เช่น OLTP databases, Data warehousing, Distributed file systems
Accelerated Computing (p, g, inf, trn)
มี GPU / hardware accelerator — เหมาะกับ AI/ML และ graphic-intensive เช่น ML training, Deep learning, Graphics rendering, Video encoding
Security Groups — Firewall ของ EC2
Security Groups คือพื้นฐานของ network security บน AWS — เป็น virtual firewall ที่ควบคุม traffic เข้า/ออก EC2 instance
- ควบคุม Inbound traffic (ขาเข้า) — จาก internet มาที่ instance
- ควบคุม Outbound traffic (ขาออก) — จาก instance ออกไป internet
- Security Group มีแต่ Allow rules เท่านั้น (ไม่มี Deny rules)
- Reference ได้ทั้ง IP address (CIDR) หรือ Security Group อื่น
- 1 Security Group สามารถ attach กับหลาย instance ได้
- Locked ที่ Region + VPC — ข้าม region/VPC ไม่ได้
- ลอยอยู่ นอก EC2 — ถ้า traffic ถูก block จะไม่ถึง instance เลย
- Default: Inbound block ทั้งหมด, Outbound allow ทั้งหมด
Allow rules เท่านั้น
Security Group ไม่สามารถสร้าง deny rules ได้ — ใครไม่ถูก allow จะถูก block อัตโนมัติ
Reference SG อื่นได้
แทนที่จะใส่ IP สามารถบอกว่า 'อนุญาตจาก SG-X' — ทำให้ instance ที่อยู่ใน SG-X เข้าได้ทันที โดยไม่ต้องสนใจ IP
ผูกกับ Region + VPC
สร้าง SG ใน VPC A ใช้กับ instance ใน VPC B ไม่ได้ — ต้องสร้างใหม่
Multiple instances
1 SG สามารถ attach หลาย instance ได้ และ 1 instance สามารถมีหลาย SG ได้
Classic Ports — Port ที่ต้องจำ
Port number ที่ใช้บ่อยและออกข้อสอบบ่อย — ควรจำให้ขึ้นใจ
Port 22 — SSH
Secure Shell — ใช้ login เข้า Linux instance ผ่าน command line (ปลอดภัย เข้ารหัส)
Port 22 — SFTP
SSH File Transfer Protocol — โอนไฟล์อย่างปลอดภัยผ่าน SSH (ใช้ port เดียวกับ SSH)
Port 21 — FTP
File Transfer Protocol — โอนไฟล์แบบเก่า ไม่เข้ารหัส (ปัจจุบันแทนด้วย SFTP)
Port 80 — HTTP
HyperText Transfer Protocol — เว็บไซต์แบบไม่เข้ารหัส (insecure web)
Port 443 — HTTPS
HTTP Secure — เว็บไซต์เข้ารหัสด้วย TLS/SSL (secure web) — มาตรฐานปัจจุบัน
Port 3389 — RDP
Remote Desktop Protocol — ใช้ login เข้า Windows instance ผ่าน GUI
Purchase Options
On-Demand
จ่ายต่อ second (Linux) หรือต่อ hour ไม่ต้อง commit ล่วงหน้า ยืดหยุ่นสูงสุด เหมาะกับ workload ระยะสั้น, dev/test environment
Reserved Instances (RI) — ลดสูงสุด 72%
จอง 1 หรือ 3 ปี จ่ายแบบ All Upfront / Partial / No Upfront เหมาะกับ workload คงที่ เช่น database
Convertible Reserved Instances
เปลี่ยน instance type, family, OS, tenancy ได้ระหว่าง term — ส่วนลด ~66% (น้อยกว่า Standard RI แต่ยืดหยุ่นกว่า)
Savings Plans — ลดสูงสุด 72%
commit การใช้จ่ายขั้นต่ำ ($/hour) แทนการ commit instance type — Compute Savings Plan ใช้กับ EC2, Lambda, Fargate — EC2 Instance Savings Plan ผูกกับ instance family ใน region
Spot Instances — ลดสูงสุด 90%
ใช้ capacity ที่เหลือของ AWS ราคาถูกมาก แต่ AWS สามารถ interrupt ได้ทุกเมื่อ (แจ้งล่วงหน้า 2 นาที) เหมาะกับ batch job, data analysis, ML training, image processing
Dedicated Host
เช่า physical server ทั้งเครื่อง มองเห็น socket/core/host ID ควบคุม placement ได้ รองรับ BYOL (Bring Your Own License) เหมาะกับ license ผูก core/socket, compliance
Dedicated Instance
รันบน hardware ที่ไม่แชร์กับ account อื่น แต่ไม่มองเห็น physical server ไม่ควบคุม placement ไม่รองรับ BYOL เหมาะกับ compliance ที่ต้องการ hardware isolation
Capacity Reservations
Capacity Reservation คือการจอง capacity (ทรัพยากร) ไว้ใน AZ ที่ระบุ เพื่อให้มั่นใจว่าเมื่อต้องการ launch instance จะมี capacity พร้อมเสมอ — แต่ไม่ได้ลดราคา
- จอง instance type + AZ + OS ที่ต้องการไว้ล่วงหน้า
- ไม่มีข้อผูกมัดด้านเวลา — สร้าง/ยกเลิกเมื่อไรก็ได้ (ต่างจาก Reserved Instance)
- จ่ายในราคา On-Demand ตลอดเวลา ไม่ว่าจะรัน instance จริงหรือเปล่า
- ผูกกับ AZ เดียว เท่านั้น (ไม่ใช่ Regional)
- รวมกับ Savings Plans หรือ Regional Reserved Instance ได้เพื่อลดราคา
Summary — สรุปประเด็นสำคัญ
EC2 คือ Infrastructure as a Service สำหรับเช่า Virtual Machine บน AWS — เลือก OS, CPU, RAM, Storage, Network ได้ตามใจ และจ่ายเฉพาะที่ใช้ ต่อไปนี้คือประเด็นสำคัญทั้งหมดที่ต้องจำสำหรับการสอบ Cloud Practitioner
General Purpose (t / m)
Workload ทั่วไป สมดุลระหว่าง CPU, RAM และ Network เหมาะกับ web server ขนาดเล็ก-กลาง
Compute Optimized (c)
CPU แรง เหมาะกับ batch processing, gaming server และ scientific modeling
Memory Optimized (r / x / z)
RAM สูง เหมาะกับ in-memory database เช่น Redis และ real-time analytics
Storage Optimized (i / d / h)
Disk I/O สูง เหมาะกับ NoSQL, data warehouse และ distributed file system
Accelerated (p / g)
มี GPU สำหรับ ML training, deep learning และ graphics rendering
User Data
Bootstrap script รันครั้งเดียวตอน first boot ใช้ install software และตั้งค่า server อัตโนมัติ
Security Groups
Firewall ระดับ instance รองรับเฉพาะ Allow rules และ default ปิดทุกอย่าง
Capacity Reservation
จอง capacity ไว้ใน AZ เพื่อรับประกันว่ามี slot — ไม่ลดราคา จ่าย On-Demand เสมอ
- Classic Ports: 22 = SSH/SFTP, 21 = FTP, 80 = HTTP, 443 = HTTPS, 3389 = RDP
- Troubleshooting SG: Connection Timeout = ปัญหา Security Group ส่วน Connection Refused = ปัญหา application
- On-Demand: ยืดหยุ่นที่สุด ไม่มี commitment เหมาะกับ workload สั้นๆ ที่คาดเดาไม่ได้
- Reserved Instance: commit 1-3 ปี ลดสูงสุด 72% เหมาะกับ steady workload (Standard / Convertible)
- Savings Plans: commit $/hour แทน instance type — Compute SP ใช้กับ EC2, Lambda, Fargate ได้
- Spot Instance: ถูกที่สุด ลดสูงสุด 90% แต่ AWS interrupt ได้ใน 2 นาที เหมาะกับ batch / ML training
- Dedicated Host: เช่า physical server ทั้งเครื่อง รองรับ BYOL (license ผูก core/socket)
- Dedicated Instance: hardware ไม่แชร์กับ account อื่น แต่ไม่เห็น physical server และไม่รองรับ BYOL
- Shared Responsibility: AWS ดูแล hardware และ hypervisor ส่วน User ดูแล OS, Security Group, IAM, software และ data