Amazon EC2 – Kiến thức nền
1. Amazon EC2 là gì
Phần tiêu đề “1. Amazon EC2 là gì”EC2 = Elastic Compute Cloud, và đây là một trong những dịch vụ nổi tiếng nhất của AWS. Về mô hình, nó là Infrastructure as a Service — AWS lo hạ tầng vật lý, bạn lo mọi thứ chạy bên trong máy.
EC2 thực chất là một “họ” bốn năng lực đi cùng nhau:
- Thuê máy ảo (EC2) — mượn một máy tính chạy trên hạ tầng AWS.
- Lưu dữ liệu trên ổ đĩa ảo (EBS) — xem EC2 – Instance Storage.
- Phân phối tải ra nhiều máy (ELB) — xem High Availability & Scalability.
- Scale dịch vụ bằng auto-scaling group (ASG) — cũng ở chương 6.
Lý do phải học EC2 trước tiên: hiểu EC2 là nền tảng để hiểu Cloud hoạt động thế nào. Rất nhiều dịch vụ “cao cấp” hơn của AWS thực chất chỉ là EC2 được đóng gói lại và quản lý hộ bạn.
2. Các tùy chọn cấu hình instance
Phần tiêu đề “2. Các tùy chọn cấu hình instance”Đặt một EC2 instance giống như đặt cấu hình một chiếc máy tính: bạn phải chọn từng thành phần. Các lựa chọn mà slide liệt kê:
- Operating System (OS): Linux, Windows hoặc Mac OS.
- Năng lực tính toán và số lõi (CPU).
- Bộ nhớ RAM (random-access memory).
- Dung lượng lưu trữ, và có hai kiểu khác nhau về bản chất:
- Gắn qua mạng (network-attached): EBS và EFS.
- Gắn trực tiếp vào phần cứng (hardware): EC2 Instance Store.
- Network card: tốc độ card mạng, và có địa chỉ Public IP hay không.
- Quy tắc tường lửa (firewall rules): chính là security group.
- Bootstrap script (cấu hình lúc khởi động lần đầu): chính là EC2 User Data.
Bảy dòng này là bộ xương của cả chương. Bốn mục sau đây mổ kỹ ba thứ quan trọng nhất trong danh sách: User Data, instance type và security group.
3. EC2 User Data
Phần tiêu đề “3. EC2 User Data”Bootstrapping nghĩa là chạy các câu lệnh ngay khi một cái máy khởi động. Với EC2, bạn làm việc đó bằng một EC2 User Data script — đoạn script bạn cung cấp lúc tạo instance.
Điều quan trọng nhất phải nhớ: script này chỉ chạy một lần, ở lần khởi động đầu tiên của instance. Nó không chạy lại ở các lần start sau.
EC2 User Data dùng để tự động hóa các việc khởi tạo:
- Cài các bản cập nhật (installing updates).
- Cài phần mềm (installing software).
- Tải các file dùng chung từ Internet.
- Bất cứ việc gì bạn nghĩ ra.
Một chi tiết về quyền hạn cũng hay ra đề: EC2 User Data Script chạy với quyền của user root — nghĩa là nó làm được mọi thay đổi trên hệ thống mà không cần sudo.
4. Các họ Instance Type
Phần tiêu đề “4. Các họ Instance Type”AWS có rất nhiều instance type khác nhau, mỗi loại được tối ưu cho một kiểu tải công việc. Tên instance tuân theo một quy ước rõ ràng, ví dụ m5.2xlarge:
- m — instance class (lớp instance).
- 5 — generation (thế hệ; AWS cải tiến chúng theo thời gian).
- 2xlarge — size trong lớp đó.
Bốn họ instance chính:
General Purpose
Phần tiêu đề “General Purpose”Phù hợp cho nhiều loại tải công việc khác nhau, ví dụ web server hoặc code repository. Điểm mạnh là sự cân bằng giữa ba yếu tố: Compute, Memory và Networking. Loại t2.micro mà các bài thực hành hay dùng chính là một General Purpose instance.
Compute Optimized
Phần tiêu đề “Compute Optimized”Dành cho các tác vụ nặng về tính toán, cần processor hiệu năng cao:
- Batch processing workloads (xử lý theo lô).
- Media transcoding (chuyển đổi định dạng media).
- High performance web servers.
- High performance computing (HPC).
- Scientific modeling & machine learning.
- Dedicated gaming servers.
Memory Optimized
Phần tiêu đề “Memory Optimized”Cho hiệu năng nhanh với các tải công việc xử lý tập dữ liệu lớn ngay trong bộ nhớ:
- Cơ sở dữ liệu quan hệ / phi quan hệ hiệu năng cao.
- Distributed web scale cache stores (hệ thống cache phân tán quy mô web).
- In-memory database tối ưu cho BI (business intelligence).
- Ứng dụng xử lý thời gian thực dữ liệu phi cấu trúc khối lượng lớn.
Storage Optimized
Phần tiêu đề “Storage Optimized”Dành cho các tác vụ nặng về lưu trữ, cần đọc/ghi tuần tự với tốc độ cao trên tập dữ liệu lớn nằm ở local storage:
- Hệ thống OLTP (online transaction processing) tần suất cao.
- Cơ sở dữ liệu quan hệ và NoSQL.
- Cache cho in-memory database (ví dụ Redis).
- Data warehousing applications.
- Distributed file systems.
Vài ví dụ cụ thể
Phần tiêu đề “Vài ví dụ cụ thể”| Instance | vCPU | Mem (GiB) | Storage | Network Performance | EBS Bandwidth (Mbps) |
|---|---|---|---|---|---|
| t2.micro | 1 | 1 | EBS-Only | Low to Moderate | — |
| t2.xlarge | 4 | 16 | EBS-Only | Moderate | — |
| c5d.4xlarge | 16 | 32 | 1 × 400 NVMe SSD | Up to 10 Gbps | 4750 |
| r5.16xlarge | 64 | 512 | EBS-Only | 20 Gbps | 13600 |
| m5.8xlarge | 32 | 128 | EBS-Only | 10 Gbps | 6800 |
Danh sách instance type thay đổi theo thời gian nên hãy tra trang AWS để có thông tin mới nhất; ngoài ra có một trang web cộng đồng rất tiện để so sánh là instances.vantage.sh.
5. Security Group
Phần tiêu đề “5. Security Group”Security Group là nền tảng của bảo mật mạng trên AWS. Nó kiểm soát traffic nào được vào và ra khỏi EC2 instance của bạn, và hoạt động như một “firewall” gắn trên instance.
Hai đặc điểm về bản chất mà bạn phải nắm ngay:
- Security group chỉ chứa rule cho phép (allow rules) — không có rule “deny”.
- Rule có thể tham chiếu theo IP, hoặc theo security group khác.
Security Group điều tiết bốn thứ:
- Quyền truy cập vào các port.
- Các dải IP được phép — IPv4 và IPv6.
- Kiểm soát network inbound (từ bên ngoài vào instance).
- Kiểm soát network outbound (từ instance ra bên ngoài).
Đọc sơ đồ của slide: một EC2 instance được gắn Security Group 1. Ở chiều inbound, rule lọc theo IP và port — máy tính của bạn (đã được cho phép port 22) thì vào được, còn một máy khác không được cho phép port 22 thì bị chặn. Ở chiều outbound, rule cho phép mọi IP, mọi port — nên instance ra Internet được bình thường.
Những điều cần nhớ
Phần tiêu đề “Những điều cần nhớ”- Một security group có thể gắn cho nhiều instance.
- Security group bị khóa vào một cặp Region + VPC — không dùng chung giữa hai Region hay hai VPC.
- Nó “sống” bên ngoài EC2 — nếu traffic bị chặn thì EC2 instance hoàn toàn không thấy traffic đó.
- Nên duy trì một security group riêng chỉ cho SSH.
- Mặc định toàn bộ traffic inbound bị chặn.
- Mặc định toàn bộ traffic outbound được cho phép.
Tham chiếu security group khác
Phần tiêu đề “Tham chiếu security group khác”Đây là tính năng khiến security group mạnh hơn một firewall theo IP thuần. Một rule inbound có thể ghi nguồn là một security group khác thay vì một dải IP.
Đọc sơ đồ của slide: Security Group 1 có rule inbound mở port 123, và nguồn được phép là Security Group 1 và Security Group 2. Kết quả: instance gắn Security Group 1 và instance gắn Security Group 2 đều kết nối được vào port 123; instance gắn Security Group 3 thì bị chặn — dù nó cũng nằm trong cùng hệ thống.
6. Các port kinh điển cần biết
Phần tiêu đề “6. Các port kinh điển cần biết”Cấu hình security group nào cũng cần biết ứng dụng dùng port gì. Sáu port trong slide là những cái phải học thuộc:
| Port | Giao thức / Mục đích |
|---|---|
| 21 | FTP (File Transfer Protocol) – upload file vào một file share |
| 22 | SSH (Secure Shell) – đăng nhập vào một Linux instance |
| 22 | SFTP (Secure File Transfer Protocol) – upload file, đi qua SSH |
| 80 | HTTP – truy cập website không được bảo mật |
| 443 | HTTPS – truy cập website được bảo mật |
| 3389 | RDP (Remote Desktop Protocol) – đăng nhập vào một Windows instance |
7. Kết nối vào EC2 instance
Phần tiêu đề “7. Kết nối vào EC2 instance”Sau khi có instance, bạn cần một cách “vào” bên trong nó. SSH là một trong những chức năng quan trọng nhất — nó cho bạn điều khiển một máy ở xa hoàn toàn bằng dòng lệnh, qua port 22.
Cách kết nối phụ thuộc hệ điều hành bạn đang dùng:
| Hệ điều hành của bạn | Công cụ |
|---|---|
| Mac | SSH |
| Linux | SSH |
| Windows < 10 | Putty |
| Windows ≥ 10 | SSH |
| Tất cả | EC2 Instance Connect |
Trên Mac/Linux, bạn có thể cấu hình OpenSSH ~/.ssh/config để việc SSH vào các instance trở nên thuận tiện hơn. Trên Windows cũ, bạn dùng công cụ miễn phí Putty và cấu hình các tham số cần thiết.
Nếu SSH không chạy, thứ tự xử lý được slide gợi ý là: xem lại hướng dẫn xem có bỏ sót bước nào, đọc troubleshooting guide, rồi thử EC2 Instance Connect. Chỉ cần một trong ba cách (SSH, Putty, EC2 Instance Connect) hoạt động là đủ.
EC2 Instance Connect
Phần tiêu đề “EC2 Instance Connect”EC2 Instance Connect cho bạn kết nối vào EC2 instance ngay trong trình duyệt, và không cần dùng tới file key đã tải về.
- Cách hoạt động: AWS upload một key tạm thời lên EC2 để xác thực cho phiên kết nối đó.
- Nó chỉ hoạt động sẵn (out-of-the-box) với Amazon Linux 2.
- Vẫn phải đảm bảo port 22 đang mở! — vì bên dưới nó vẫn là SSH.
8. Bảy phương án mua EC2
Phần tiêu đề “8. Bảy phương án mua EC2”Cùng một cấu hình máy, AWS cho bạn nhiều cách trả tiền khác nhau tùy theo bạn dùng bao lâu, ổn định hay không, và có chịu được gián đoạn hay không. Đây là chủ đề ra đề rất dày.
- On-Demand Instances — tải ngắn, giá dự đoán được, trả theo giây.
- Reserved (1 và 3 năm), gồm hai kiểu:
- Reserved Instances — tải dài hạn.
- Convertible Reserved Instances — tải dài hạn nhưng cần linh hoạt về instance.
- Savings Plans (1 và 3 năm) — cam kết một lượng usage, dùng cho tải dài hạn.
- Spot Instances — tải ngắn, rẻ, có thể bị mất instance (ít tin cậy hơn).
- Dedicated Hosts — thuê nguyên một máy chủ vật lý, kiểm soát được instance placement.
- Dedicated Instances — không có khách hàng nào khác dùng chung phần cứng với bạn.
- Capacity Reservations — giữ chỗ capacity ở một AZ cụ thể, trong khoảng thời gian bất kỳ.
9. Chi tiết từng phương án
Phần tiêu đề “9. Chi tiết từng phương án”EC2 On Demand
Phần tiêu đề “EC2 On Demand”Trả tiền cho đúng những gì bạn dùng: Linux hoặc Windows tính tiền theo giây, sau phút đầu tiên; mọi hệ điều hành khác tính theo giờ. On-Demand có chi phí cao nhất nhưng không phải trả trước và không có cam kết dài hạn. Được khuyến nghị cho tải công việc ngắn hạn, không bị gián đoạn, và bạn không thể dự đoán được ứng dụng sẽ hành xử thế nào.
EC2 Reserved Instances
Phần tiêu đề “EC2 Reserved Instances”Giảm giá tới 72% so với On-Demand. Cơ chế: bạn reserve một bộ thuộc tính instance cụ thể — Instance Type, Region, Tenancy, OS.
- Thời hạn: 1 năm (giảm giá) hoặc 3 năm (giảm giá nhiều hơn).
- Cách trả tiền: No Upfront (giảm ít nhất) → Partial Upfront → All Upfront (giảm nhiều nhất).
- Phạm vi (scope): Regional hoặc Zonal — bản Zonal giữ luôn capacity trong một AZ.
- Được khuyến nghị cho ứng dụng có mức dùng ổn định (steady-state) — cứ nghĩ tới database.
- Bạn mua và bán được trên Reserved Instance Marketplace.
Convertible Reserved Instance là biến thể linh hoạt hơn: bạn được đổi EC2 instance type, instance family, OS, scope và tenancy, đánh đổi là mức giảm giá thấp hơn — tới 66%.
EC2 Savings Plans
Phần tiêu đề “EC2 Savings Plans”Cũng giảm tới 72%, bằng với Reserved Instances, nhưng cơ chế cam kết khác hẳn: bạn cam kết một mức usage tính bằng tiền (ví dụ 10 USD/giờ trong 1 hoặc 3 năm) thay vì cam kết một loại instance.
- Phần dùng vượt quá Savings Plan sẽ bị tính theo giá On-Demand.
- Bị khóa vào một instance family và một Region cụ thể (ví dụ M5 tại us-east-1).
- Nhưng linh hoạt về: Instance Size (m5.xlarge, m5.2xlarge…), OS (Linux, Windows), Tenancy (Host, Dedicated, Default).
EC2 Spot Instances
Phần tiêu đề “EC2 Spot Instances”Giảm tới 90% so với On-Demand — loại instance tiết kiệm nhất trên AWS. Cái giá phải trả: đây là những instance bạn có thể “mất” bất cứ lúc nào, nếu mức giá tối đa (max price) bạn đặt thấp hơn spot price hiện tại.
Phù hợp với các tải công việc chịu được lỗi (resilient to failure):
- Batch jobs.
- Data analysis.
- Image processing.
- Mọi tải công việc phân tán.
- Tải công việc linh hoạt về thời điểm bắt đầu và kết thúc.
Và không phù hợp cho các công việc quan trọng (critical jobs) hoặc database.
EC2 Dedicated Hosts
Phần tiêu đề “EC2 Dedicated Hosts”Đây là một máy chủ vật lý mà toàn bộ capacity EC2 của nó dành riêng cho bạn. Nó giải quyết hai nhóm yêu cầu: compliance, và việc dùng lại các license phần mềm ràng buộc với server (license theo per-socket, per-core, per-VM).
- Cách mua: On-demand (trả theo giây khi host đang hoạt động) hoặc Reserved 1/3 năm (No Upfront, Partial Upfront, All Upfront).
- Đây là phương án đắt nhất.
- Hữu dụng cho phần mềm có mô hình license phức tạp (BYOL – Bring Your Own License), hoặc cho công ty có yêu cầu chặt về quy định / compliance.
EC2 Dedicated Instances
Phần tiêu đề “EC2 Dedicated Instances”Instance chạy trên phần cứng dành riêng cho bạn, nhưng lưu ý hai điểm khác biệt so với Dedicated Hosts:
- Nó có thể dùng chung phần cứng với các instance khác trong cùng account của bạn.
- Bạn không kiểm soát được instance placement — vị trí phần cứng chỉ có thể thay đổi sau khi Stop / Start instance.
EC2 Capacity Reservations
Phần tiêu đề “EC2 Capacity Reservations”Giữ chỗ capacity On-Demand tại một AZ cụ thể, trong khoảng thời gian bất kỳ. Lợi ích: bạn luôn có capacity EC2 khi cần.
- Không có cam kết thời gian (tạo/hủy bất cứ lúc nào), và không có giảm giá.
- Bị tính tiền theo giá On-Demand dù bạn có chạy instance hay không.
- Có thể kết hợp với Regional Reserved Instances và Savings Plans để được hưởng giảm giá.
- Phù hợp cho tải công việc ngắn hạn, không bị gián đoạn, và cần nằm ở một AZ cụ thể.
Chọn giữa các phương án
Phần tiêu đề “Chọn giữa các phương án”| Phương án | Bạn lấy capacity bằng cách nào |
|---|---|
| On-Demand | Bật lúc nào cũng được, giữ bao lâu cũng được, trả đủ giá cho thời gian đã dùng |
| Reserved | Cam kết 1 hoặc 3 năm cho một cấu hình instance cụ thể để đổi lấy đơn giá thấp hơn |
| Savings Plans | Cam kết một mức chi cố định theo giờ trong 1 hoặc 3 năm, dùng được cho mọi size, OS và tenancy trong cùng instance family |
| Spot Instances | Đặt một mức giá tối đa cho capacity dư — rẻ nhất, nhưng AWS lấy lại instance bất cứ lúc nào |
| Dedicated Hosts | Giữ nguyên một máy chủ vật lý cho account của bạn, và kiểm soát được instance nằm ở đâu |
| Capacity Reservations | Giữ chỗ capacity trong một AZ để luôn có khi cần, trả theo giá On-Demand dù chạy hay không |
10. So sánh giá
Phần tiêu đề “10. So sánh giá”Ví dụ trong slide, cho instance m4.large tại us-east-1:
| Price Type | Price (per hour) |
|---|---|
| On-Demand | $0.10 |
| Spot Instance (Spot Price) | $0.038 – $0.039 (giảm tới 61%) |
| Reserved Instance (1 năm) | $0.062 (No Upfront) – $0.058 (All Upfront) |
| Reserved Instance (3 năm) | $0.043 (No Upfront) – $0.037 (All Upfront) |
| EC2 Savings Plan (1 năm) | $0.062 (No Upfront) – $0.058 (All Upfront) |
| Reserved Convertible Instance (1 năm) | $0.071 (No Upfront) – $0.066 (All Upfront) |
| Dedicated Host | Giá On-Demand |
| Dedicated Host Reservation | Giảm tới 70% |
| Capacity Reservations | Giá On-Demand |
Đọc bảng này theo xu hướng thì rõ ràng: Spot rẻ nhất, Reserved 3 năm All Upfront rẻ gần bằng Spot nhưng đòi cam kết ba năm, Convertible RI đắt hơn RI thường vì được đổi instance, còn Capacity Reservation không rẻ hơn On-Demand một xu nào — nó bán cho bạn sự chắc chắn, không phải sự tiết kiệm.
11. Spot Instance Request và Spot Fleet
Phần tiêu đề “11. Spot Instance Request và Spot Fleet”Spot xứng đáng được nói riêng vì cơ chế vận hành của nó khác hẳn các phương án còn lại.
Spot Instance Requests
Phần tiêu đề “Spot Instance Requests”- Giảm giá tới 90% so với On-Demand.
- Bạn định nghĩa một max spot price và giữ được instance trong khi spot price hiện tại còn nhỏ hơn max price của bạn.
- Spot price theo giờ biến động theo cung và capacity.
- Nếu spot price hiện tại vượt max price của bạn, bạn có thể chọn stop hoặc terminate instance, với thời gian ân hạn 2 phút.
- Một chiến lược khác là Spot Block: “chặn” một spot instance trong một khung thời gian xác định (1 đến 6 giờ) mà không bị gián đoạn — dù trong các tình huống hiếm, instance vẫn có thể bị thu hồi.
- Dùng cho batch jobs, data analysis, hoặc tải công việc chịu được lỗi; không tốt cho critical jobs hoặc database.
Hủy Spot Instance đúng cách
Phần tiêu đề “Hủy Spot Instance đúng cách”Đây là một trình tự dễ làm sai trong thực tế và dễ ra đề:
- Bạn chỉ hủy được Spot Instance request đang ở trạng thái
open,activehoặcdisabled. - Hủy một Spot Request KHÔNG terminate các instance.
- Đúng thứ tự phải là: hủy Spot Request trước, rồi mới terminate các Spot Instance liên quan.
Spot Fleets
Phần tiêu đề “Spot Fleets”Spot Fleet = một tập các Spot Instances + (tùy chọn) các On-Demand Instances. Spot Fleet sẽ cố đạt tới target capacity trong giới hạn về giá mà bạn đặt ra.
- Bạn định nghĩa các launch pool khả dụng: instance type (ví dụ
m5.large), OS, Availability Zone. - Có thể khai báo nhiều launch pool để fleet tự chọn.
- Spot Fleet dừng khởi tạo instance khi đạt tới capacity hoặc tới max cost.
Bốn chiến lược phân bổ (allocation strategy) Spot Instances:
| Chiến lược | Cách chọn pool | Phù hợp với |
|---|---|---|
| lowestPrice | Pool có giá thấp nhất | Tối ưu chi phí, tải ngắn |
| diversified | Phân bổ đều trên tất cả các pool | Tốt cho tính sẵn sàng, tải dài |
| capacityOptimized | Pool có capacity tối ưu cho số instance cần | Khi ưu tiên lấy đủ capacity |
| priceCapacityOptimized (được khuyến nghị) | Chọn các pool có capacity khả dụng cao nhất, rồi trong đó chọn pool có giá thấp nhất | Lựa chọn tốt nhất cho phần lớn tải công việc |
Nói gọn: Spot Fleet cho phép bạn tự động yêu cầu Spot Instances với giá thấp nhất.
Tóm tắt nhanh
Phần tiêu đề “Tóm tắt nhanh”| Chủ đề | Cần nhớ |
|---|---|
| EC2 | Elastic Compute Cloud, mô hình IaaS; đi kèm EBS (ổ đĩa), ELB (phân phối tải), ASG (auto scaling) |
| Cấu hình instance | OS + CPU + RAM + storage (EBS/EFS qua mạng, Instance Store theo phần cứng) + network card + security group + User Data |
| EC2 User Data | Chỉ chạy một lần ở lần start đầu tiên, chạy với quyền root |
| Quy ước tên | m5.2xlarge = instance class + generation + size |
| Bốn họ instance | General Purpose (cân bằng), Compute Optimized (CPU), Memory Optimized (RAM), Storage Optimized (đĩa local, đọc/ghi tuần tự) |
| Security Group | Chỉ có allow rule, khóa theo Region + VPC, gắn được cho nhiều instance, mặc định chặn hết inbound / cho phép hết outbound, tham chiếu được security group khác làm nguồn |
| Chẩn đoán | time out → lỗi security group; connection refused → lỗi ứng dụng hoặc ứng dụng chưa chạy |
| Port | 21 FTP · 22 SSH/SFTP · 80 HTTP · 443 HTTPS · 3389 RDP |
| EC2 Instance Connect | Vào qua browser, không cần key file, AWS upload key tạm — nhưng port 22 vẫn phải mở, và chỉ chạy sẵn với Amazon Linux 2 |
| On-Demand | Đắt nhất nhưng không cam kết; Linux/Windows tính theo giây sau phút đầu, OS khác tính theo giờ |
| Reserved | Giảm tới 72%; reserve instance type / Region / tenancy / OS trong 1 hoặc 3 năm; Regional hoặc Zonal; bán lại được trên Marketplace; Convertible tới 66% |
| Savings Plans | Giảm tới 72%; cam kết mức chi theo giờ; khóa instance family + Region, linh hoạt về size, OS, tenancy |
| Spot | Giảm tới 90%; mất instance khi spot price vượt max price, có 2 phút ân hạn; không dùng cho critical job hay database |
| Dedicated Hosts | Nguyên một máy chủ vật lý, BYOL và compliance, đắt nhất, mua On-Demand hoặc Reserved 1/3 năm |
| Dedicated Instances | Phần cứng dành riêng nhưng dùng chung được với instance khác trong cùng account, không kiểm soát placement |
| Capacity Reservations | Giữ chỗ trong một AZ, không cam kết, không giảm giá, trả giá On-Demand dù chạy hay không |
| Spot Request | Hủy Spot Request trước, terminate instance sau; Spot Block 1–6 giờ không bị gián đoạn |
| Spot Fleet | Target capacity trong giới hạn giá, nhiều launch pool; bốn chiến lược lowestPrice, diversified, capacityOptimized, priceCapacityOptimized (được khuyến nghị) |