Amazon EC2 (Elastic Compute Cloud)
Elastic Compute Cloud, Instance Types, Pricing Models
Tổng quan
Amazon EC2 là dịch vụ cung cấp compute capacity có thể mở rộng (scalable) trong AWS Cloud. EC2 cho phép bạn khởi tạo các virtual servers (gọi là instances) theo nhu cầu, không cần đầu tư phần cứng vật lý trước.
Lợi ích chính
- Scale up/down linh hoạt: Thêm/giảm capacity theo workload thực tế
- Pay-as-you-go: Chỉ trả tiền cho những gì sử dụng (tính theo giây, tối thiểu 60 giây)
- Triển khai nhanh: Khởi tạo instance trong vài phút
- Đa dạng cấu hình: Nhiều instance types với các tổ hợp CPU, memory, storage, network khác nhau
Nguồn: What is Amazon EC2?
Các thành phần chính
1. EC2 Instance
- Virtual server chạy trong AWS Cloud
- Mỗi instance có cấu hình phần cứng được xác định bởi instance type
2. Amazon Machine Image (AMI)
- Template chứa OS và phần mềm cần thiết để khởi tạo instance
- Có thể sử dụng AMI có sẵn của AWS, AWS Marketplace, hoặc tự tạo custom AMI
3. Instance Types
Các loại instance được phân loại theo mục đích sử dụng:
| Category | Mô tả | Use Cases |
|---|---|---|
| General Purpose (M, T series) | Cân bằng compute, memory, network | Web servers, small databases |
| Compute Optimized (C series) | CPU mạnh | Batch processing, gaming servers |
| Memory Optimized (R, X series) | RAM lớn | In-memory databases, real-time analytics |
| Storage Optimized (I, D series) | High IOPS | Data warehousing, distributed file systems |
| Accelerated Computing (P, G series) | GPU/hardware accelerators | Machine learning, graphics rendering |
Nguồn: Amazon EC2 Instance Types
4. Storage Options
| Loại | Đặc điểm | Persistence |
|---|---|---|
| Amazon EBS | Block storage, có thể attach/detach | Persistent (tồn tại sau khi terminate nếu cấu hình) |
| Instance Store | Storage vật lý gắn với host | Ephemeral (mất khi stop/terminate) |
5. Key Pairs
- Cặp public/private key để đăng nhập instance an toàn
- AWS giữ public key, bạn giữ private key
6. Security Groups
- Virtual firewall kiểm soát traffic vào/ra instance
- Quy định protocol, port, source/destination IP được phép
| Đặc điểm | Chi tiết |
|---|---|
| Rules | ✅ Chỉ có ALLOW - không có DENY rules |
| Default | Block tất cả (implicit deny) |
| Stateful | ✅ Response tự động được allow |
| Level | Instance (ENI) |
| Chi phí | ✅ Miễn phí |
💡 Exam tip: Nếu cần DENY specific IPs → dùng NACL, không phải Security Group!
Xem chi tiết tại Security Groups.
Pricing Models
Amazon EC2 cung cấp 7 mô hình pricing chính để tối ưu chi phí theo từng use case:
| Mô hình | Discount | Cam kết | Phù hợp với |
|---|---|---|---|
| On-Demand | 0% | Không | Workload ngắn hạn, testing |
| Reserved Instances | Lên đến 72% | 1-3 năm | Workload ổn định, biết trước cấu hình |
| Savings Plans | Lên đến 72% | 1-3 năm ($/giờ) | Workload ổn định, linh hoạt instance |
| Spot Instances | Lên đến 90% | Không | Fault-tolerant, batch processing |
| Dedicated Hosts | Varies | Tùy chọn | Compliance, BYOL |
| Dedicated Instances | +2$/giờ | Không | Hardware isolation |
| Capacity Reservations | 0% | Không | Đảm bảo capacity |
1. On-Demand Instances
Mô hình cơ bản nhất - trả tiền theo thời gian sử dụng, không cần cam kết trước.
Use Cases:
- 🧪 Development/Testing - environments cần spin up/down nhanh
- 📊 Unpredictable workloads - traffic không dự đoán được
- 🆕 Short-term applications - chạy một vài tuần/tháng
- 🔬 Proof of concept - thử nghiệm trước khi commit dài hạn
Ví dụ giá (us-east-1):
| Instance Type | vCPU | RAM | On-Demand/giờ |
|---|---|---|---|
| t3.micro | 2 | 1 GB | $0.0104 |
| t3.medium | 2 | 4 GB | $0.0416 |
| m5.large | 2 | 8 GB | $0.096 |
| c5.xlarge | 4 | 8 GB | $0.17 |
Nguồn: On-Demand Pricing
2. Reserved Instances (RI)
Cam kết sử dụng 1 hoặc 3 năm để nhận mức giảm giá đáng kể so với On-Demand.
2.1 Payment Options (Upfront Payment)
Upfront Payment = Trả trước - Bạn trả một khoản tiền ngay khi mua Reserved Instance, thay vì trả hàng tháng.
[!TIP] Quy tắc nhớ: Trả trước càng nhiều → Discount càng cao
All Upfront > Partial Upfront > No Upfront
| Payment Option | Upfront | Monthly | Discount |
|---|---|---|---|
| All Upfront | 100% | $0 | Cao nhất |
| Partial Upfront | ~50% | ~50% | Trung bình |
| No Upfront | $0 | 100% | Thấp nhất |
Ví dụ so sánh (m5.large, 1 năm, us-east-1):
| Option | Upfront | Monthly | Total/năm | So với On-Demand |
|---|---|---|---|---|
| On-Demand | $0 | $69.12 | $829.44 | - |
| No Upfront RI | $0 | $52.56 | $630.72 | Giảm 24% |
| Partial Upfront RI | $308 | $25.55 | $614.60 | Giảm 26% |
| All Upfront RI | $596 | $0 | $596.00 | Giảm 28% |
2.2 Scope: Regional vs Zonal
[!TIP] Regional RI là MẶC ĐỊNH khi mua trên AWS Console. AWS khuyến khích dùng Regional RI vì linh hoạt hơn.
| Scope | Mô tả | Flexibility | Capacity Reservation |
|---|---|---|---|
| Regional (Default) | Áp dụng cho toàn Region | Tự động apply cho instances trong Region | ❌ Không |
| Zonal | Chỉ định cụ thể AZ | Chỉ apply cho AZ đó | ✅ Có (đảm bảo capacity) |
Capacity Reservation là gì?
| Không có Capacity Reservation | Có Capacity Reservation |
|---|---|
| Launch EC2 → Có thể bị lỗi "InsufficientCapacity" nếu AZ hết máy | Launch EC2 → LUÔN thành công vì AWS giữ máy sẵn cho bạn |
| Giống mua voucher giảm giá nhưng không đặt ghế | Giống đặt trước ghế máy bay |
Điều kiện để được RI discount (quan trọng cho exam!):
| RI Type | Điều kiện matching |
|---|---|
| Regional RI | Cùng Region + Instance Type + Platform |
| Zonal RI | Cùng AZ + Instance Type + Platform |
Ví dụ: RI Sharing trong Consolidated Billing (AWS Organizations)
Khi nào dùng loại nào?
| Scenario | Nên dùng |
|---|---|
| Workload có thể chạy ở bất kỳ AZ | Regional RI ✅ |
| Cần linh hoạt scale size (large ↔ xlarge) | Regional RI ✅ |
| Database production - cần đảm bảo LUÔN có máy | Zonal RI |
| Disaster Recovery - cần guarantee capacity | Zonal RI |
| Mission-critical không chấp nhận "InsufficientCapacity" | Zonal RI |
2.3 Instance Size Flexibility (Chỉ Regional RI)
Reserved Instance có thể apply cho các size khác nhau trong cùng instance family dựa trên Normalization Factor:
| Instance Size | Normalization Factor |
|---|---|
| nano | 0.25 |
| micro | 0.5 |
| small | 1 |
| medium | 2 |
| large | 4 |
| xlarge | 8 |
| 2xlarge | 16 |
| 4xlarge | 32 |
Ví dụ: 1 RI cho m5.xlarge (factor = 8) có thể cover:
- 1 × m5.xlarge (8)
- 2 × m5.large (4 + 4 = 8)
- 4 × m5.medium (2 + 2 + 2 + 2 = 8)
- 8 × m5.small (1 × 8 = 8)
2.4 Reserved Instance Marketplace
Có thể mua/bán Reserved Instances chưa sử dụng hết trên marketplace:
Use Cases cho Reserved Instances:
- 🏢 Production workloads - chạy 24/7, ổn định
- 🗄️ Database servers - RDS, self-managed databases
- 🌐 Web servers - baseline capacity
- 📈 Workloads có thể dự đoán - biết trước nhu cầu
Nguồn: Reserved Instances
3. Savings Plans
Mô hình linh hoạt hơn Reserved Instances - cam kết một mức chi tiêu ($/giờ) thay vì cam kết instance type cụ thể.
3.1 So sánh Savings Plans
| Loại | Commitment | Flexibility | Discount |
|---|---|---|---|
| Compute Savings Plans | $/giờ | EC2 + Fargate + Lambda, bất kỳ Region/family | ~66% |
| EC2 Instance Savings Plans | $/giờ + Region + Family | Size, OS, Tenancy trong family | ~72% |
3.2 Cách hoạt động
3.3 Savings Plans vs Reserved Instances
| Tiêu chí | Savings Plans | Reserved Instances |
|---|---|---|
| Commitment | $/giờ | Instance type cụ thể |
| Flexibility | Cao (đổi instance type dễ dàng) | Thấp (Standard) / Trung bình (Convertible) |
| Scope | EC2 + Fargate + Lambda | Chỉ EC2 |
| Quản lý | Đơn giản hơn | Phức tạp hơn |
| Discount | Tương đương | Tương đương |
| Marketplace | ❌ Không bán được | ✅ Có (Standard RI) |
[!TIP] AWS khuyến nghị sử dụng Savings Plans thay cho Reserved Instances vì linh hoạt hơn mà vẫn có mức discount tương đương.
Use Cases:
- 🔄 Workloads thay đổi - có thể đổi instance type mà không mất discount
- ☁️ Multi-service - chạy cả EC2, Fargate, Lambda
- 🌍 Multi-region - với Compute Savings Plans
Nguồn: Savings Plans
4. Spot Instances
Sử dụng EC2 capacity thừa của AWS với mức giá giảm lên đến 90% so với On-Demand. Tuy nhiên, AWS có thể thu hồi (interrupt) bất kỳ lúc nào với 2 phút cảnh báo.
4.1 Spot Pricing
- Giá biến động theo supply và demand
- Không cần bidding - bạn trả giá Spot hiện tại (AWS đã bỏ bidding từ 2017)
- Có thể set max price - nếu Spot price vượt max, instance bị terminate
- Spot Price History - xem biến động giá trong 90 ngày qua
4.2 Spot Instance Interruption
Khi AWS cần capacity, Spot Instance sẽ nhận 2-minute warning qua:
- EC2 metadata - check
http://169.254.169.254/latest/meta-data/spot/termination-time - CloudWatch Events / EventBridge - trigger automation
Interruption behavior options:
| Option | Mô tả | Use Case |
|---|---|---|
| Terminate | Instance bị terminate, EBS bị xóa (nếu DeleteOnTermination=true) | Stateless workloads |
| Stop | Instance stop, EBS giữ lại (chỉ EBS-backed) | Resume sau |
| Hibernate | RAM saved to EBS, resume nhanh (chỉ supported instances) | Stateful applications |
Tần suất bị interrupt (Interruption Frequency):
[!NOTE] Thực tế: Spot Instances không thường xuyên bị interrupt. AWS thống kê chỉ khoảng < 5% instances bị interrupt trong một tháng, tùy thuộc vào instance type và region.
Cách giảm nguy cơ bị interrupt:
- ✅ Chọn instance ít phổ biến (ví dụ: m5a thay vì m5, hoặc newer generation)
- ✅ Dùng Spot Fleet với nhiều instance types + AZs (diversify)
- ✅ Chọn capacityOptimized allocation strategy (AWS tự chọn pool ít interrupt)
- ✅ Check Spot Instance Advisor trong Console để xem tỷ lệ interrupt
💡 Thực tế: Nhiều công ty lớn (Netflix, Lyft, Yelp) dùng Spot cho phần lớn workload và tiết kiệm hàng triệu USD. Họ thiết kế application fault-tolerant nên không sợ bị interrupt.
4.3 Spot Strategies
4.4 Spot Allocation Strategies
| Strategy | Mô tả | Best For |
|---|---|---|
| lowestPrice | Chọn pool có giá thấp nhất | Cost optimization |
| capacityOptimized | Chọn pool có capacity cao nhất (ít bị interrupt) | Workloads cần stability |
| diversified | Phân bổ đều qua các pools | Long-running workloads |
| priceCapacityOptimized | Cân bằng giữa giá và capacity | Recommended |
Use Cases phù hợp với Spot:
- 🔄 Batch processing - có thể retry nếu bị interrupt
- 🧪 CI/CD pipelines - build/test jobs
- 🎮 Gaming servers - non-critical game servers
- 📊 Big data analytics - Spark, Hadoop clusters
- 🤖 Machine Learning - training jobs (với checkpointing)
- 🖼️ Image/Video processing - rendering, transcoding
Use Cases KHÔNG phù hợp:
- ❌ Databases - cần uptime cao
- ❌ Critical production workloads - không thể bị interrupt
- ❌ Stateful applications - không thể mất state
Nguồn: Spot Instances
5. Dedicated Hosts
Physical server EC2 hoàn toàn dành riêng cho bạn. Bạn có thể control placement của instances trên physical server đó.
5.1 Đặc điểm
| Feature | Mô tả |
|---|---|
| Physical isolation | Hardware không chia sẻ với account khác |
| Socket/Core visibility | Biết chính xác số sockets, cores |
| Instance placement | Control instances chạy trên host nào |
| BYOL support | Sử dụng existing licenses (Windows Server, SQL Server, SUSE, etc.) |
| Compliance | Đáp ứng các yêu cầu regulatory |
5.2 Instance Placement Control là gì?
Placement nghĩa là bạn có thể chọn chính xác physical server nào để launch EC2 instances lên đó.
Tại sao cần Placement Control?
| Lý do | Giải thích |
|---|---|
| BYOL Licensing | License theo socket/core → cần biết chính xác instance chạy trên server nào để report cho vendor |
| Affinity | Đảm bảo instances liên quan luôn chạy trên cùng 1 host (giảm latency) |
| Compliance/Audit | Cần biết chính xác hardware nào đang chạy data của bạn |
| Performance | Control instances không bị "noisy neighbor" effect |
Ví dụ BYOL với Windows Server:
5.3 Pricing Options
| Option | Mô tả | Discount |
|---|---|---|
| On-Demand | Trả per-hour, không cam kết | 0% |
| Reservation | Cam kết 1-3 năm | Lên đến 70% |
| Savings Plans | Có thể áp dụng | Lên đến 72% |
5.4 Use Cases
- 📜 Bring Your Own License (BYOL) - sử dụng licenses theo socket/core
- 🔒 Compliance requirements - PCI DSS, HIPAA yêu cầu dedicated hardware
- 📊 Licensing visibility - cần report chính xác số cores/sockets
- 🏛️ Government/Financial - quy định về data isolation
Nguồn: Dedicated Hosts
6. Dedicated Instances
Instances chạy trên hardware dành riêng cho account của bạn, nhưng có thể chia sẻ hardware với instances khác trong cùng account.
6.1 Pricing
- Dedicated Instance fee: $2/giờ/region (trả 1 lần cho toàn region, không phải per-instance)
- Instance price: Giá On-Demand của instance type
Ví dụ:
-
1 m5.large dedicated instance trong 1 giờ ở us-east-1:
- Dedicated fee: $2.00
- Instance price: $0.096
- Total: $2.096/giờ
-
10 m5.large dedicated instances trong 1 giờ:
- Dedicated fee: $2.00 (chỉ trả 1 lần)
- Instance price: $0.096 × 10 = $0.96
- Total: $2.96/giờ
6.2 Use Cases
- 🔒 Hardware isolation - không muốn share với account khác
- 📜 Compliance - nhưng không cần BYOL
Nguồn: Dedicated Instances
7. On-Demand Capacity Reservations
Đặt trước capacity trong một AZ cụ thể để đảm bảo luôn có instances sẵn sàng khi cần.
7.1 Đặc điểm
| Feature | Mô tả |
|---|---|
| No commitment | Tạo/hủy bất kỳ lúc nào |
| Immediate availability | Reservation active ngay lập tức |
| AZ-specific | Phải chọn AZ cụ thể |
| Billing | Trả On-Demand price cho reserved capacity (dù có sử dụng hay không) |
7.2 Pricing
- Capacity Reservation fee: $0 (không phí riêng)
- Bạn trả: On-Demand price cho capacity đã reserve
- Với RI/Savings Plans: Discount được apply nếu matching
7.3 Use Cases
- 🚨 Disaster recovery - đảm bảo capacity cho failover
- 📅 Planned events - product launches, sales events
- 🏢 Critical workloads - không thể chấp nhận InsufficientCapacity
- 📜 Compliance - yêu cầu capacity guarantee
8. Free Tier
AWS cung cấp Free Tier cho người dùng mới:
| Resource | Free Amount | Duration |
|---|---|---|
| EC2 t2.micro/t3.micro | 750 giờ/tháng | 12 tháng đầu |
| EBS General Purpose (SSD) | 30 GB/tháng | 12 tháng đầu |
| EBS Snapshots | 1 GB/tháng | 12 tháng đầu |
| Elastic IP | 1 EIP attached | Miễn phí khi attached |
[!WARNING] Free Tier chỉ áp dụng trong 12 tháng đầu tiên kể từ khi tạo AWS account. Sau đó sẽ tính phí On-Demand.
Chi tiết: AWS Free Tier
9. Per-Second Billing (Tính phí theo giây)
[!IMPORTANT] Từ tháng 10/2017, EC2 và EBS chuyển từ per-hour sang per-second billing.
| Service | Billing | Minimum |
|---|---|---|
| Linux EC2 (On-Demand, Reserved, Spot) | Per-second ⏱️ | 1 phút (60 giây) |
| Windows EC2 | Per-hour ⏰ | 1 giờ |
| RHEL/SUSE EC2 | Per-hour ⏰ | 1 giờ |
| EBS Volumes (provisioned storage) | Per-second | 1 phút |
| EBS Provisioned IOPS (io1/io2) | Per-second | - |
| EBS Snapshots | Per-hour | - |
Lợi ích per-second billing:
- ✅ CI/CD pipelines - build xong terminate ngay
- ✅ Dev/Test environments - spin up/down nhanh
- ✅ Batch processing - jobs chạy vài phút
- ✅ Auto Scaling - scale nhanh không lo phí thừa
Tổng hợp: Chọn Pricing Model nào?
| Scenario | Recommended Option |
|---|---|
| Dev/Test, unpredictable workload | On-Demand |
| Production 24/7, ổn định | Savings Plans hoặc Reserved Instances |
| Batch processing, ML training | Spot Instances |
| Baseline + burst | On-Demand/RI + Spot (Mixed) |
| BYOL (Windows Server, SQL Server) | Dedicated Hosts |
| Compliance cần isolated hardware | Dedicated Hosts hoặc Dedicated Instances |
| Critical workload, cần guarantee capacity | Capacity Reservations + RI/SP |
Nguồn: Amazon EC2 Pricing
Placement Groups
Placement Groups cho phép kiểm soát cách EC2 instances được đặt trên physical hardware để tối ưu performance hoặc high availability.
3 Loại Placement Groups
| Loại | Mô tả | Max Instances | Use Cases |
|---|---|---|---|
| Cluster | Instances đặt cùng rack, cùng AZ | Không giới hạn | HPC, Big Data, ML training |
| Spread | Mỗi instance trên hardware riêng biệt | 7 per AZ | Critical apps, isolated failures |
| Partition | Chia thành partitions, mỗi partition trên rack riêng | 7 partitions per AZ | Hadoop, Cassandra, Kafka |
1. Cluster Placement Group
- Tất cả instances nằm trên cùng rack trong cùng AZ
- Low latency (< 10 microseconds) và high throughput (10-25 Gbps)
- ⚠️ Risk: Nếu rack fail → tất cả fail
Use Cases:
- HPC (High Performance Computing)
- Big Data jobs cần network nhanh
- ML/AI distributed training
2. Spread Placement Group
- Mỗi instance trên hardware riêng biệt (khác rack)
- Max 7 instances per AZ (cứ nhân với số AZ)
- Giảm risk correlated failures
Use Cases:
- Critical applications
- Database replicas
- High availability yêu cầu isolate failures
3. Partition Placement Group
- Chia instances thành partitions (max 7 per AZ)
- Mỗi partition nằm trên rack riêng
- Instances trong cùng partition chia sẻ rack
Use Cases:
- Hadoop (HDFS), Cassandra, Kafka - distributed big data
- Cần partition-awareness để đặt replicas khác partition
Rack là gì?
Rack = tủ/khung kim loại trong data center chứa nhiều servers xếp chồng lên nhau:
⚠️ Single point of failure: Nếu rack mất điện/switch hỏng → tất cả servers trong rack bị ảnh hưởng
Cách cấu hình Placement Groups
Bước 1: Tạo Placement Group
Bước 2: Gán vào EC2 Instance
Bước 3: Dùng với Launch Template (cho ASG)
⚠️ Instance đang chạy không thể add vào Placement Group → phải stop trước hoặc tạo mới
Lưu ý quan trọng
| Yếu tố | Chi tiết |
|---|---|
| Tạo khi nào | Chỉ có thể add instances khi create/modify |
| Instance types | Nên dùng cùng instance type trong Cluster |
| Capacity errors | Cluster có thể gặp InsufficientCapacity - launch tất cả cùng lúc để tránh |
| Launch Template | Hỗ trợ Placement Groups (Launch Configuration không hỗ trợ) |
Nguồn: Placement Groups
Cách truy cập EC2
Quản lý EC2 (Management)
- AWS Management Console - Giao diện web
- AWS CLI - Command line interface
- AWS SDKs - Tích hợp vào code (Python/Boto3, JavaScript, Java, etc.)
- CloudFormation - Infrastructure as Code
- AWS Tools for PowerShell
Connect to Instance (SSH/Shell vào EC2)
Có 3 cách để connect vào EC2 instance:
1. SSH Client (Truyền thống)
2. EC2 Instance Connect (SSH có AWS quản lý key)
3. Session Manager (KHÔNG dùng SSH - Recommended!)
So sánh 3 phương thức
| SSH Client | EC2 Instance Connect | Session Manager | |
|---|---|---|---|
| Bản chất | SSH thủ công | SSH (AWS quản lý key) | SSM (không dùng SSH) |
| Port 22? | ✅ Phải mở | ✅ Phải mở | ❌ Không cần |
| SSH Key? | ✅ Cần .pem file | ❌ AWS tự tạo | ❌ Không cần |
| Public IP? | ✅ Cần | ✅ Cần | ❌ Không cần |
| IAM Role? | ❌ Không cần | ❌ Không cần | ✅ Cần |
| SSM Agent? | ❌ Không cần | ❌ Không cần | ✅ Cần |
| Logging | Không có | Không có | ✅ Full session logging |
| Private subnet? | ❌ Khó (cần bastion) | ❌ Khó | ✅ Hoạt động tốt |
| Security | Phụ thuộc key mgmt | Khá tốt | ✅ Tốt nhất |
[!TIP] Session Manager là cách recommended vì:
- Không cần mở port → Attack surface = 0
- Không cần quản lý SSH keys
- Full audit logging với CloudTrail/CloudWatch
- Hoạt động tốt cho private subnet
Các dịch vụ liên quan
1. EC2 Auto Scaling
Tự động điều chỉnh số lượng EC2 instances dựa trên demand.
Lưu ý quan trọng: Auto Scaling chỉ thêm/bớt instances - không tự routing traffic. Cần kết hợp với ELB để phân phối requests:
| Component | Nhiệm vụ |
|---|---|
| Auto Scaling | Thêm/bớt instances dựa trên metrics |
| ELB | Routing requests đến các instances healthy |
Cách hoạt động:
- Định nghĩa Auto Scaling Group (ASG) với min/max/desired capacity
- Sử dụng scaling policies để trigger scale out/in dựa trên CloudWatch metrics (CPU, memory, network I/O)
- Tự động thay thế instances bị unhealthy
Tính năng chính:
| Feature | Mô tả |
|---|---|
| Dynamic Scaling | Scale dựa trên metrics real-time |
| Predictive Scaling | Dự đoán traffic và scale trước |
| Scheduled Scaling | Scale theo lịch định sẵn |
| Health Checks | EC2 health checks hoặc ELB health checks |
Mixed Instances Policy:
- Kết hợp On-Demand + Spot Instances trong cùng ASG
- Đặt base capacity với On-Demand, scale thêm với Spot để tiết kiệm chi phí
Instance Identification:
- Instances không có tên cố định - được identify bằng Instance ID (
i-0abc123def) - Có thể config Name tag trong Launch Template (tất cả instances cùng tag, phân biệt bằng ID)
- IP thay đổi mỗi lần launch → dùng ELB DNS làm entry point, không dựa vào IP
Chi phí (Pricing):
| Thành phần | Chi phí |
|---|---|
| Auto Scaling service | Miễn phí |
| EC2 instances | Trả theo instances đang chạy |
| ELB | Theo giờ + data processed |
| CloudWatch | Metrics cơ bản miễn phí |
Chiến lược tiết kiệm: Base capacity với On-Demand/Reserved, scale thêm với Spot (giảm đến 90%).
2. Elastic Load Balancing (ELB)
Phân phối traffic đến nhiều EC2 instances, containers, hoặc IP addresses.
Các loại Load Balancer:
| Loại | Layer | Use Cases |
|---|---|---|
| Application Load Balancer (ALB) | Layer 7 (HTTP/HTTPS) | Web applications, microservices, path-based routing |
| Network Load Balancer (NLB) | Layer 4 (TCP/UDP) | Ultra-low latency, millions of requests/second |
| Gateway Load Balancer (GWLB) | Layer 3 | Deploy và scale virtual appliances (firewalls, IDS/IPS) |
| Classic Load Balancer | Layer 4/7 | Legacy, không khuyến khích cho ứng dụng mới |
Tích hợp với Auto Scaling:
- Instances trong ASG tự động được register/deregister với load balancer
- ELB health checks có thể trigger ASG thay thế unhealthy instances
- Traffic được phân phối đều bằng least outstanding requests algorithm
Nguồn: Use ELB with Auto Scaling
3. Amazon CloudWatch
Dịch vụ monitoring và observability cho AWS resources.
Metrics cho EC2:
- CPU Utilization, Network In/Out, Disk Read/Write
- Status Checks: Instance status và system status
- Custom metrics (memory, disk space) qua CloudWatch Agent
Metrics cho Auto Scaling:
GroupDesiredCapacity,GroupInServiceInstancesGroupPendingInstances,GroupTerminatingInstances- Predictive scaling metrics
Tính năng:
| Feature | Mô tả |
|---|---|
| CloudWatch Alarms | Trigger actions khi metric vượt ngưỡng |
| CloudWatch Logs | Collect và store log files |
| CloudWatch Dashboards | Visualize metrics |
| CloudWatch Events/EventBridge | React to state changes |
4. AWS Systems Manager
Quản lý EC2 instances và on-premises servers at scale.
Tính năng chính:
| Feature | Mô tả |
|---|---|
| Session Manager | SSH/RDP không cần mở ports, không cần bastion host |
| Run Command | Chạy scripts trên nhiều instances cùng lúc |
| Patch Manager | Tự động patch OS và applications |
| Parameter Store | Lưu trữ configuration data, secrets |
| State Manager | Maintain consistent configuration |
| Inventory | Collect metadata từ instances |
Yêu cầu:
- SSM Agent phải được cài đặt trên instance (có sẵn trên Amazon Linux, Ubuntu, Windows AMIs)
- Instance cần IAM role với policy
AmazonSSMManagedInstanceCore
5. EC2 Image Builder
Tự động tạo, test, và distribute custom AMIs hoặc container images.
Pipeline workflow:
- Base Image → Chọn source AMI (Amazon Linux, Windows, Ubuntu, etc.)
- Components → Thêm software, configurations, security hardening
- Test → Chạy automated tests để validate image
- Distribute → Copy AMI đến các regions, share với accounts khác
Lợi ích:
- Automated patching: Tự động rebuild images khi có security updates
- Compliance: Áp dụng CIS Benchmarks, STIG hardening
- Version control: Track changes qua semantic versioning
- Integration: Tích hợp với Systems Manager Parameter Store
Pricing: Chỉ trả tiền cho underlying resources (EC2, EBS, S3) - không có phí riêng cho Image Builder.
Nguồn: EC2 Image Builder Features
6. Amazon EBS (Elastic Block Store)
Block-level storage volumes cho EC2 instances.
Volume Types:
| Type | Use Case | Max IOPS | Max Throughput |
|---|---|---|---|
| gp3 (General Purpose SSD) | Most workloads | 16,000 | 1,000 MB/s |
| gp2 (General Purpose SSD) | Boot volumes, dev/test | 16,000 | 250 MB/s |
| io2/io2 Block Express | Critical databases | 256,000 | 4,000 MB/s |
| st1 (Throughput HDD) | Big data, log processing | 500 | 500 MB/s |
| sc1 (Cold HDD) | Infrequent access | 250 | 250 MB/s |
Tính năng:
- Snapshots: Backup incremental, lưu trên S3
- Encryption: Encrypt at rest và in transit
- Multi-Attach: Attach io1/io2 volume đến nhiều instances (cùng AZ)
- Elastic Volumes: Thay đổi size, type, IOPS mà không downtime
7. Amazon VPC (Virtual Private Cloud)
Network isolation cho EC2 instances.
| Component | Mô tả |
|---|---|
| Subnets | Public (có Internet Gateway) hoặc Private |
| Route Tables | Điều hướng traffic |
| Internet Gateway | Cho phép access Internet |
| NAT Gateway | Private instances access Internet (outbound only) |
| VPC Endpoints | Truy cập AWS services mà không qua Internet |
8. AWS Backup
Centralized backup cho EC2 instances và EBS volumes.
- Backup Plans: Định nghĩa schedule, retention, lifecycle
- Cross-region/Cross-account: Copy backups đến regions/accounts khác
- Point-in-time recovery: Restore đến thời điểm cụ thể
EC2 Hibernate
Hibernate là gì?
Hibernate = Lưu toàn bộ RAM vào EBS root volume, sau đó resume lại như chưa từng tắt.
Cách hoạt động
Yêu cầu (Requirements)
| Yêu cầu | Chi tiết |
|---|---|
| Instance types | Hỗ trợ: C, I, M, R, T families (không phải tất cả) |
| RAM size | Tối đa 150 GB |
| Root volume | Phải là EBS (không phải Instance Store) |
| EBS Encryption | Root volume phải được mã hóa |
| EBS size | Root volume phải đủ lớn để chứa RAM dump |
| Thời gian hibernate | Tối đa 60 ngày |
| OS support | Amazon Linux 2, Ubuntu, Windows |
Use Cases
| Use Case | Giải thích |
|---|---|
| Long-running processes | Tạm dừng mà không mất state (ML training, simulations) |
| Fast boot | Resume nhanh hơn cold start (vài giây vs vài phút) |
| Save costs | Hibernate khi không dùng, không trả tiền compute |
| Pre-warmed instances | Cache, connection pools sẵn sàng khi resume |
Lưu ý quan trọng
💡 Exam tip: Hibernate = Lưu RAM vào EBS → Resume nhanh, giữ nguyên state!
Best Practices
- Chọn đúng instance type - Sử dụng AWS Compute Optimizer để nhận recommendations
- Sử dụng Auto Scaling - Tự động điều chỉnh capacity theo demand
- Tận dụng Spot Instances - Cho workloads có thể bị interrupt
- Right-sizing - Thường xuyên review và điều chỉnh instance size
- Security Groups - Chỉ mở những ports cần thiết (principle of least privilege)
- Multi-AZ deployment - Triển khai instances trên nhiều Availability Zones để đảm bảo high availability