ComputeSection 039 min read5 questions

EC2

Elastic Compute Cloud

EC2 คือบริการ Virtual Machine บน Cloud ของ AWS — เป็นบริการแบบ IaaS (Infrastructure as a Service) ให้เราเช่า server ตามต้องการ เลือก OS, CPU, RAM, Storage, Network ได้เอง และจ่ายตามที่ใช้จริง (pay as you go)

ในหน้านี้9 sections
  1. 01EC2 Basics — รู้จัก EC2
  2. 02EC2 User Data
  3. 03Instance Types
  4. 04Security Groups — Firewall ของ EC2
  5. 05Classic Ports — Port ที่ต้องจำ
  6. 06Purchase Options
  7. 07Capacity Reservations
  8. 08Shared Responsibility Model for EC2
  9. 09Summary — สรุปประเด็นสำคัญ
01

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
02

EC2 User Data

User Data คือ script ที่รันอัตโนมัติ ครั้งแรกที่ instance เริ่มต้น (bootstrap) ใช้ตั้งค่า server โดยอัตโนมัติโดยไม่ต้องล็อกอินเข้าไปทำเอง

  • รันในฐานะ root user — มีสิทธิ์เต็ม
  • รัน ครั้งเดียว เมื่อ instance เริ่มต้นครั้งแรกเท่านั้น
  • รองรับ bash script (Linux) และ PowerShell (Windows)
  • ใช้งานที่ไหน: EC2 Launch → Advanced Details → User Data
ตัวอย่าง User Data Script (Linux)
#!/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.html
03

Instance 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

04

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 ได้

05

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

06

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

07

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 ได้เพื่อลดราคา
08

Shared Responsibility Model for EC2

AWS และ User แบ่งกันรับผิดชอบ ด้าน security ของ EC2 — AWS รับผิดชอบ infrastructure ด้านล่าง (Security of the Cloud) ส่วน User รับผิดชอบทุกอย่างที่อยู่ใน instance (Security in the Cloud)

AWS: Physical Security

ความปลอดภัยของ data center, อาคาร, server room

AWS: Hardware & Infrastructure

Physical server, network hardware, storage hardware

AWS: Hypervisor & Isolation

ซอฟต์แวร์ที่แยก VM ออกจากกัน — AWS patch และ maintain ให้ พร้อมรับประกัน isolation ระหว่าง VM

AWS: Global Network Infrastructure

Fiber, backbone network, edge locations

User: Guest OS (patching & updates)

อัปเดต OS บน instance ต้องทำเอง — AWS ไม่แตะ OS ใน instance

User: Security Group Rules

ตั้งค่า inbound/outbound rules ให้ถูกต้อง — default ปิดทุกอย่าง

User: Software บน Instance

ทุก software ที่ install: web server, database, library — รับผิดชอบเอง

User: IAM Roles & Permissions

กำหนดว่า instance เข้าถึง AWS service อะไรได้บ้าง

User: Data & Encryption

ข้อมูลบน EBS, S3 ที่ instance ใช้ — encryption ต้องเปิดเอง

User: Network Configuration

VPC, Subnet, Route Table, NACL — ออกแบบและตั้งค่าเอง

09

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
ทดสอบ

คำถามทบทวน

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

ข้อ 1 / 5คะแนน 0

EC2 User Data script จะถูกรันเมื่อใด?