AWS DVA-C02
Esc
↑↓เลื่อน↵เปิดescปิด28 ผลลัพธ์
02

EC2 Fundamentals

EC2 compute basics for developers

Compute 11 นาที 21 คำถาม

01ภาพรวม EC2 (Elastic Compute Cloud)

EC2 (Elastic Compute Cloud) คือบริการ IaaS (Infrastructure as a Service) ที่ให้เราเช่า virtual servers (เรียกว่า instances) บน cloud ของ AWS เป็นหนึ่งในบริการพื้นฐานที่สำคัญที่สุดในข้อสอบ DVA-C02 เพราะบริการอื่นๆ จำนวนมากต่อยอดมาจาก EC2

  • Rent virtual machines — เช่า EC2 instances
  • Store data on virtual drives — เก็บข้อมูลบน EBS (Elastic Block Store) volumes
  • Distribute load — กระจาย load ด้วย ELB (Elastic Load Balancer)
  • Scaling — ปรับขนาดอัตโนมัติด้วย ASG (Auto Scaling Group)

การ config EC2 instance ประกอบด้วย: OS (AMI), CPU/RAM (instance type), storage (EBS/Instance Store), network (Security Group + IP), และ bootstrap script (User Data)

หมายเหตุ
EC2 เป็นบริการระดับ region และ instance จริงๆ จะรันใน Availability Zone (AZ) ใดอันหนึ่งเสมอ resource หลายอย่างของ EC2 (เช่น ENI, EBS volume) ผูกกับ AZ

02Instance Types & Families

AWS มี EC2 instance หลากหลายแบบ optimize ตามการใช้งาน การตั้งชื่อมีรูปแบบ เช่น m5.2xlarge โดย m = family, 5 = generation, 2xlarge = size

General Purpose (T, M)
สมดุลระหว่าง compute, memory, networking เหมาะกับ web servers, code repositories. T family เป็น burstable (สะสม CPU credits ได้). M family เป็น balanced ทั่วไป
Compute Optimized (C)
C family เน้น CPU สูง เหมาะกับ batch processing, media transcoding, HPC, dedicated gaming servers, scientific modeling
Memory Optimized (R, X, z)
R family เน้น RAM สูง เหมาะกับ in-memory databases, real-time big data analytics. X / z สำหรับ extreme memory เช่น SAP HANA
Storage Optimized (I, D, H)
เน้น high sequential read/write บน local storage เหมาะกับ OLTP databases, data warehousing, distributed file systems
Tips สำหรับการสอบ
จำตัวย่อง่ายๆ: C = Compute, R = RAM (memory), I = IOPS/storage, M = Main/balanced, T = Tiny burstable โจทย์มักถามว่า workload แบบ X ควรใช้ family ใด

03AMI (Amazon Machine Image)

AMI คือ template ที่กำหนด OS, software, configuration ที่จะใช้ launch instance ออกมา การใช้ custom AMI ที่ติดตั้ง software ไว้ล่วงหน้า (pre-baking) ช่วยให้ boot เร็วขึ้นและลดการรัน User Data ทุกครั้ง

  • Public AMI — AWS จัดเตรียมไว้ เช่น Amazon Linux 2
  • Custom AMI — คุณสร้างและ maintain เอง
  • AWS Marketplace AMI — ซื้อจาก vendor (อาจมี software license รวมมา)
กับดักข้อสอบ
AMI เป็น region-specific ถ้าจะใช้ใน region อื่นต้อง copy AMI ข้าม region ก่อน หลายคนเข้าใจผิดว่า AMI ใช้ได้ทุก region เลย — ผิด!

04EC2 User Data (Bootstrap Script)

EC2 User Data คือ script ที่รัน ครั้งเดียวตอน boot ครั้งแรก (first boot only) ด้วยสิทธิ์ root ใช้ทำ bootstrapping เช่น ติดตั้ง package, update software, download files, ตั้งค่าเริ่มต้น

bash
#!/bin/bash
# รันด้วยสิทธิ์ root ตอน first boot
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "Hello from $(hostname -f)" > /var/www/html/index.html
หมายเหตุ
User Data จำกัดขนาดไม่เกิน 16 KB หากต้องการ script ใหญ่กว่านี้ ให้ใช้ User Data ดาวน์โหลด script จริงจาก S3 มารันแทน
Tips สำหรับการสอบ
ถ้าโจทย์บอกว่า script รันเฉพาะ boot ครั้งแรก หรือพูดถึง install software อัตโนมัติตอน launch คำตอบคือ User Data เกือบทุกครั้ง ดู User Data ที่ encode เป็น base64 ผ่าน metadata ได้ที่ /latest/user-data/

05Security Groups (Firewall)

Security Groups ทำหน้าที่เป็น virtual firewall ระดับ instance/ENI ควบคุม traffic ขาเข้า (inbound) และขาออก (outbound) คุณสมบัติสำคัญคือเป็น stateful

  • Stateful — ถ้าอนุญาต inbound traffic แล้ว response ขาออกถูกอนุญาตอัตโนมัติ (ไม่ต้องเพิ่ม rule ตรงข้าม)
  • มีได้แค่ allow rules เท่านั้น (ไม่มี deny rule)
  • Default: block inbound ทั้งหมด, allow outbound ทั้งหมด
  • Reference Security Group อื่นได้ (อนุญาต traffic จาก instance ที่มี SG นั้น)
  • หนึ่ง instance ผูกได้หลาย SG และหนึ่ง SG ผูกได้หลาย instance
ลักษณะSecurity GroupNACL
ระดับInstance / ENISubnet
StateStatefulStateless
RulesAllow เท่านั้นAllow และ Deny
การประเมินรวมทุก rule (all)เรียงตามลำดับ rule number

Connection Timeout vs Connection Refused

อาการสาเหตุระดับปัญหา
Connection timeoutSecurity Group / NACL / firewall บล็อก หรือ route ไม่ถึงNetwork
Connection refusedไปถึง host แล้วแต่ไม่มี service ฟังที่ port / แอปไม่ runApplication
กับดักข้อสอบ
ถ้าโจทย์บอก connection timeout มักเป็นปัญหา Security Group. ถ้า connection refused มักเป็น แอปไม่ทำงาน/ไม่ได้ฟัง port นั้น — อย่าสับสนสองคำนี้ ข้อสอบชอบมาก!

06Key Pairs (SSH Access)

Key pairs ใช้สำหรับ SSH เข้า EC2 instance (Linux) AWS เก็บ public key ไว้บน instance ส่วน private key (.pem) เป็นของคุณ

กับดักข้อสอบ
Private key (.pem) download ได้ครั้งเดียวเท่านั้น ตอนสร้าง key pair — AWS ไม่เก็บไว้ ถ้าทำหายต้องใช้ทางอื่น (EC2 Instance Connect, SSM Session Manager, หรือ recover ผ่าน detach volume)
bash
# ตั้ง permission ของ private key (จำเป็นบน Linux/Mac)
chmod 0400 my-key.pem
# SSH เข้า instance ด้วย private key
ssh -i my-key.pem ec2-user@<public-ip>
Tips สำหรับการสอบ
ถ้าต้องการ SSH โดยไม่ต้องจัดการ key pair หรือเปิด port 22 ให้ใช้ SSM Session Manager (ไม่ต้องมี SSH key, ไม่ต้องเปิด inbound port, ใช้ IAM คุมสิทธิ์) — เป็นคำตอบยอดนิยมเรื่อง secure access

07Purchasing Options

EC2 มีหลายรูปแบบการจ่ายเงิน แต่ละแบบเหมาะกับ workload ต่างกัน เป็นหัวข้อที่ออกสอบบ่อยมาก

On-Demand
จ่ายตามที่ใช้ (per-second สำหรับ Linux/Windows) ไม่ผูกมัด ราคาสูงสุด เหมาะกับ workload สั้นๆ คาดเดาไม่ได้ ทดสอบ
Reserved Instances (RI)
Commit 1 หรือ 3 ปี ส่วนลดสูงสุด ~72%. Standard RI ส่วนลดมากแต่ยืดหยุ่นน้อย. Convertible RI เปลี่ยน instance attributes ได้แต่ส่วนลดน้อยกว่า. เหมาะกับ workload steady ระยะยาว เช่น database
Savings Plans
Commit เป็น $/hour เป็นเวลา 1 หรือ 3 ปี (สูงสุด ~66%). Compute Savings Plans ยืดหยุ่นสุด (เปลี่ยน family/region/OS/tenancy/Fargate/Lambda ได้). EC2 Instance Savings Plans ล็อก family แต่ยังเปลี่ยน size/OS/AZ ได้
Spot Instances
ราคาถูกที่สุด (ลดได้ถึง ~90%) แต่ AWS reclaim ได้ เมื่อ Spot price เกินที่กำหนด มี interruption notice ล่วงหน้า 2 นาที. เหมาะกับงานทน interruption: batch, data analysis, CI/CD. ใช้ร่วมกับ Spot Fleet เพื่อรวม Spot + On-Demand ตาม strategy
Dedicated Instances
รันบน hardware เฉพาะ tenant (ไม่แชร์กับ account อื่น) แต่ไม่ control/เห็น hardware ระดับ host
Dedicated Hosts
จองทั้ง physical server เห็น sockets/cores เหมาะกับ BYOL (Bring Your Own License) ที่คิดตาม physical และ compliance ที่ต้องเห็น hardware แพงที่สุด
OptionCommitmentส่วนลดUse case
On-Demandไม่มี0%Spiky/short-termunpredictable
Reserved (Standard)1-3 ปีสูงสุด ~72%Steady 24/7
Compute Savings Plan1-3 ปี ($/hr)สูงสุด ~66%ยืดหยุ่น family/region
Spotไม่มีสูงสุด ~90%ทน interruption ได้
Tips สำหรับการสอบ
คำสำคัญในโจทย์: 'tolerant to interruption / batch / lowest cost' = Spot. 'steady / 24-7 / predictable / long-term' = Reserved. 'flexible across family/region' = Compute Savings Plans. 'BYOL per-socket / compliance see hardware' = Dedicated Hosts

08Placement Groups

Placement Groups ควบคุมว่า AWS จะวาง EC2 instances ทางกายภาพอย่างไร มี 3 แบบ ออกสอบบ่อยมาก

Cluster
วาง instances ใกล้กันใน AZ เดียว ให้ low latency + high throughput (10 Gbps+) เหมาะกับ HPC, big data ที่ต้องเสร็จเร็ว. ข้อเสีย: ถ้า rack ล่ม instances ล่มพร้อมกัน (high risk)
Spread
กระจายแต่ละ instance บน hardware (rack) ต่างกัน ให้ HA สูงสุด จำกัด max 7 instances ต่อ AZ ต่อ group เหมาะกับ critical applications ที่ต้องแยก failure
Partition
แบ่ง instances เป็น partitions (สูงสุด 7 partitions ต่อ AZ) แต่ละ partition อยู่คนละ rack รองรับ instances จำนวนมาก เหมาะกับ distributed/big data systems เช่น HDFS, HBase, Cassandra, Kafka
แบบเป้าหมายข้อจำกัดUse case
ClusterPerformanceHigh failure riskHPC, low latency
SpreadMax HA7 instances/AZCritical apps
PartitionScale + isolation7 partitions/AZHDFS, Kafka, Cassandra
กับดักข้อสอบ
Spread จำกัดแค่ 7 instances ต่อ AZ — ถ้าโจทย์ต้องการ instances จำนวนมาก (เช่น 100+) พร้อม fault isolation คำตอบคือ Partition ไม่ใช่ Spread!

09Elastic IP & ENI

Elastic IP (EIP)

Public IP default ของ EC2 จะ เปลี่ยนทุกครั้งที่ stop/start. Elastic IP เป็น static public IPv4 ที่คุณเป็นเจ้าของ map ไป instance ได้คงที่ และ remap ไป instance อื่นได้เร็วเมื่อ failover

หมายเหตุ
AWS แนะนำให้หลีกเลี่ยงการพึ่ง Elastic IP มากเกินไป ควรใช้ DNS name (Route 53) หรือวาง instance หลัง Load Balancer แทนเพื่อความยืดหยุ่น. EIP ที่ไม่ได้ associate กับ running instance อาจมีค่าใช้จ่าย

ENI (Elastic Network Interface)

ENI คือ virtual network card ที่ instance ใช้สื่อสาร แต่ละ ENI มี primary private IP, secondary private IPs, Elastic IP, MAC address, และ Security Group ของตัวเองได้

  • ผูกกับ AZ เดียว — detach/attach ไป instance อื่นใน AZ เดียวกันได้ (ใช้ทำ failover)
  • ไม่สามารถย้ายข้าม AZ ได้
  • ใช้แยก management traffic ออกจาก application traffic
  • สร้างแยกอิสระจาก instance แล้วค่อย attach ได้
กับดักข้อสอบ
ENI ผูกกับ AZ เดียว ย้ายข้าม AZ ไม่ได้ ถ้าโจทย์ถามเรื่อง failover ข้าม AZ ด้วย ENI — ทำไม่ได้! ทำได้แค่ภายใน AZ เดียวกัน

10Instance Metadata Service (IMDS)

IMDS (Instance Metadata Service) ให้ instance ดึงข้อมูลของตัวเองได้ที่ link-local address 169.254.169.254 เช่น instance-id, private IP, IAM role credentials, user data โดยไม่ต้องใช้ IAM permission

  • /latest/meta-data/ — ดึง metadata เช่น hostname, instance-id, AZ
  • /latest/meta-data/iam/security-credentials/<role> — ดึง temporary credentials ของ IAM role
  • /latest/user-data/ — ดึง user data ที่ใส่ตอน launch
  • ดึง metadata ได้ แต่ดึง user-data จาก meta-data path ไม่ได้ (คนละ path)

IMDSv1 vs IMDSv2

ลักษณะIMDSv1IMDSv2
วิธีเรียกGET ตรงๆต้องขอ token ก่อน (PUT) แล้วแนบ token ใน GET
ความปลอดภัยเสี่ยง SSRFป้องกัน SSRF (token-based, session-oriented)
ProtocolHTTPHTTP (เหมือนกัน)
bash
# IMDSv2: ขอ token ก่อน (มีอายุ TTL)
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
  -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")

# แล้วแนบ token ใน request ถัดไป
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/iam/security-credentials/
Tips สำหรับการสอบ
บังคับใช้ IMDSv2 อย่างเดียวด้วย metadata option HttpTokens=required เพื่อกัน SSRF. ตั้ง HttpPutResponseHopLimit=1 เพื่อกัน container/pod ดึง credentials ของ host. โจทย์ security มักโยงไปที่ IMDSv2
กับดักข้อสอบ
IMDS ไม่ใช้ HTTPS และไม่ใช้ port พิเศษ — มันคือ HTTP ที่ 169.254.169.254 เสมอ. อย่าสับสนว่า v2 เปลี่ยนเป็น HTTPS — v2 แค่เพิ่ม token เท่านั้น

คำถามทบทวน

ทดสอบความเข้าใจหัวข้อ EC2 Fundamentals

21 ข้อ · เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย

ทำแล้ว 0/21คะแนน 0
  1. 1.คุณเขียน bootstrap script ที่ติดตั้ง Apache อัตโนมัติตอน launch EC2 instance ครั้งแรก ควรใส่ script นี้ไว้ที่ใด?

  2. 2.แอป EC2 พยายามต่อ database ที่ port 3306 แล้วได้ "connection timeout" สาเหตุที่เป็นไปได้มากที่สุดคือ?

  3. 3.Security Group มีคุณสมบัติเป็น stateful หมายความว่าอย่างไร?

  4. 4.workload เป็น batch processing ที่ทนต่อการ interrupt ได้และต้องการต้นทุนต่ำสุด ควรเลือก purchasing option ใด?

  5. 5.แอปต้องการ HPC ที่ network latency ต่ำมากระหว่าง instances และ high throughput ควรใช้ Placement Group แบบใด?

  6. 6.ต้องการแยก instances ออกจากกันให้มี hardware ต่างกันเพื่อลดความเสี่ยง failure พร้อมกัน (critical apps ที่ต้องการ HA สูงสุด) ใช้ Placement Group ใด?

  7. 7.คุณต้องการ IP ที่คงที่ (static public IPv4) สำหรับ EC2 instance ที่อาจถูก stop/start บ่อย ควรใช้อะไร?

  8. 8.แอปบน EC2 ต้องการดึง IAM role credentials เพื่อเรียก AWS API ควร query endpoint ใด?

  9. 9.ข้อใดอธิบายความแตกต่างหลักระหว่าง IMDSv1 และ IMDSv2 ได้ถูกต้อง?

  10. 10.ENI (Elastic Network Interface) มีคุณสมบัติข้อใดถูกต้อง?

  11. 11.องค์กรต้องการ commit การใช้งานเป็นเวลา 1 หรือ 3 ปี เพื่อรับส่วนลด แต่ต้องการความยืดหยุ่นในการเปลี่ยน instance family, size, OS, region ได้ ควรเลือกอะไร?

  12. 12.กรณีใดต้องใช้ Dedicated Hosts แทน Dedicated Instances?

  13. 13.AMI (Amazon Machine Image) มีลักษณะข้อใดถูกต้องที่สุด?

  14. 14.เมื่อ Spot Instance กำลังจะถูก reclaim โดย AWS instance จะได้รับการแจ้งล่วงหน้าเท่าใด?

  15. 15.คุณ launch EC2 instance แล้วลืม download private key (.pem) ตอนสร้าง key pair จะเกิดอะไรขึ้น?

  16. 16.ระบบ distributed เช่น HDFS หรือ Kafka ที่ต้องการรองรับ instances จำนวนมาก (100+) และให้ rack-level fault isolation ควรใช้ Placement Group ใด?

  17. 17.คุณต้องการบังคับให้ทุก instance ใหม่ใช้เฉพาะ IMDSv2 เพื่อความปลอดภัยจาก SSRF ควรตั้งค่าใด?

  18. 18.EC2 instance families: instance family ใดเหมาะกับงาน in-memory database หรือ workload ที่ต้องการ RAM สูง?

  19. 19.ความแตกต่างระหว่าง "connection refused" และ "connection timeout" ในบริบท EC2 troubleshooting คือ?

  20. 20.งาน steady-state ที่รัน 24/7 ตลอดทั้งปีด้วย instance type เดิมใน region เดิม ต้องการประหยัดสูงสุด ควรเลือก?

  21. 21.คุณต้องการ attach network interface ตัวที่สองให้ EC2 instance เพื่อแยก management traffic ออกจาก application traffic ควรใช้อะไร?