🔄 Vòng đời Instance (Lifecycle)
Pending → Running → Stopped
↓ (terminate)
Terminated ❌
📝 Quy trình tạo máy ảo
- 1. Launch: Pending (3-5s) → Running
- 2. Stop: Tắt máy tạm thời (giữ data, không tính phí compute)
- 3. Start: Pending (2-3s) → Running (IP có thể đổi)
- 4. Terminate: Xóa vĩnh viễn (mất Root Volume)
🔧 Change Instance Type
- Quy tắc: PHẢI Stop instance trước khi đổi type
- Lý do: AWS cần move sang hardware vật lý khác
- Quy trình: Stop → Change Type → Start
- Lưu ý: EBS data giữ nguyên, Instance Store mất hết
- Không thể: Đổi từ x86 sang ARM hoặc ngược lại
💻 Instance Types
- T-series: Burstable performance, giá rẻ, phù hợp web servers nhỏ
- M-series: General purpose, cân bằng CPU/RAM, đa mục đích
- R-series: Memory-optimized, RAM cao, phù hợp databases
- C-series: Compute-optimized, CPU mạnh, batch processing
🖥️ Operating Systems
- Amazon Linux: Tối ưu AWS, miễn phí license, tích hợp sâu
- Ubuntu: Miễn phí, phổ biến cho web/DevOps, community lớn
- Windows Server: Tính phí license thêm (~40% đắt hơn Linux)
💡 Các trạng thái Instance
- ● Running: Đang hoạt động, tính phí compute + storage
- ● Stopped: Đã tắt, chỉ tính phí storage (tiết kiệm ~90%)
- ● Pending: Đang khởi động (3-5s), chưa tính phí compute
- ● Terminated: Đã xóa vĩnh viễn, không phục hồi được
💾 Storage Rules
- Root Volume: Tự động tạo khi launch (8GB Linux, 30GB Windows), bị xóa khi terminate
- Data Volume: Tạo riêng rồi attach vào instance (phải cùng Availability Zone)
- Device names: Root = /dev/xvda, Data = xvdf, xvdg, xvdh... (theo thứ tự attach)
- Stop instance: Giữ lại tất cả EBS volumes (cả Root lẫn Data)
- Terminate: Root volume mất, Data volumes tự động detach (giữ lại nếu muốn)
⚠️ Lưu ý quan trọng
- Volume chỉ attach được vào instance cùng Availability Zone
- Stop = tắt tạm thời, Terminate = xóa vĩnh viễn (khác nhau hoàn toàn!)
- Instance stopped vẫn có thể start lại bất cứ lúc nào
- Public IP có thể thay đổi mỗi khi start/stop (dùng Elastic IP để fix)
- Windows instances đắt hơn Linux ~40% do phí license Microsoft
- Change instance type CHỈ được thực hiện khi instance ở trạng thái Stopped
- Không thể đổi giữa các architecture khác nhau (x86 ↔ ARM)