[AWS] Chương 5: Elastic Compute Cloud (EC2)

ELASTIC COMPUTE CLOUD Thumbnail

1. Giới thiệu về EC2

Amazon EC2 là dịch vụ máy chủ ảo (Virtual Server) có thể thay đổi kích thước trên nền tảng đám mây của AWS.

Thay vì phải đầu tư lớn vào máy chủ vật lý (On-Premises Infrastructure) và trung tâm dữ liệu, bạn có thể thuê một “máy ảo” (Instance) chạy trên cơ sở hạ tầng an toàn của AWS.

  • Mục đích: Giúp các kỹ sư và doanh nghiệp dễ dàng triển khai ứng dụng trên môi trường đám mây, cho phép mở rộng hoặc thu hẹp hệ thống một cách nhanh chóng theo nhu cầu thực tế (tính toán quy mô web – web-scale computing).
  • Đặc điểm nổi bật:
    • Co giãn linh hoạt (Elasticity): Khả năng dễ dàng tăng/giảm dung lượng tính toán (CPU, RAM) ngay lập tức khi tải ứng dụng thay đổi.
    • Bảo mật: Tích hợp sâu với các dịch vụ bảo mật của AWS như IAMAmazon VPC, và Security Group để quản lý truy cập và lưu lượng mạng.
    • Kiểm soát toàn diện: Bạn có toàn quyền chọn hệ điều hành (OS), cài đặt ứng dụng, và truy cập máy chủ bằng SSH (Linux) hoặc RDP (Windows) như một máy chủ vật lý.
  • Giá trị cốt lõi (Game Changer):
    • Thanh toán theo mức sử dụng (Pay-as-you-go): Chỉ trả tiền cho tài nguyên bạn thực sự sử dụng (theo giờ hoặc giây), loại bỏ sự lãng phí từ việc mua dư công suất.

Lưu ý quan trọng: Trước khi có EC2, các doanh nghiệp thường phải chịu đầu tư trả trước lớn, khó thay đổi quy mô, và lãng phí do nhiều máy chủ mua sẵn không được dùng hết công suất. EC2 đã giải quyết triệt để những vấn đề này.

2. Các Tùy chọn Thanh toán (Purchasing Options)

Việc hiểu rõ các mô hình thanh toán của Amazon EC2 là yếu tố then chốt để xây dựng một hệ thống hiệu quả trên AWS. AWS cung cấp 6 mô hình giá chính, giúp người dùng linh hoạt lựa chọn dựa trên tính chất của khối lượng công việc (workload) và ngân sách dự kiến.

2.1. On-Demand Instances (Thanh toán theo nhu cầu)

Đây là mô hình linh hoạt nhất:

  • Hoạt động theo cơ chế dùng bao nhiêu trả bấy nhiêu.
  • Không cần thực hiện bất kỳ cam kết dài hạn nào hay thanh toán trước.
  • Chi phí được tính theo số giờ hoặc số giây thực tế mà thực thể (instance) chạy.
  • Phù hợp cho các ứng dụng có lưu lượng không ổn định, khó dự báo hoặc các dự án thử nghiệm ngắn hạn (Proof of Concept – POC). Vì tính linh hoạt cực cao, đây là mô hình có mức giá đơn vị cao nhất (mức cơ bản 100%).
  • Trường hợp sử dụng: Giai đoạn phát triển ứng dụng mới, chạy các tác vụ đột xuất hoặc khi bạn chưa xác định được cấu hình máy chủ phù hợp cho hệ thống.

2.2. Reserved Instances (RI) và Savings Plans

Nếu bạn đã xác định được một ngưỡng sử dụng tài nguyên ổn định trong thời gian dài, đây là lựa chọn giúp tiết kiệm chi phí đáng kể. Cả hai đều yêu cầu người dùng cam kết sử dụng trong thời hạn 1 năm hoặc 3 năm.

  • Reserved Instances (RI): Đây là mô hình truyền thống.
    • Ta sẽ cần đặt trước các cấu hình instance (instance type, region, tenancy, OS)
    • Standard RI: Mang lại mức giảm giá cao nhất (lên đến 72%) nhưng yêu cầu cấu hình cố định về loại máy chủ và vùng lưu trữ.
    • Convertible RI: Mức giảm giá thấp hơn một chút (lên đến 66%) nhưng cho phép bạn thay đổi cấu hình instance hoặc vùng lưu trữ trong thời hạn cam kết.
  • Savings Plans (Mô hình hiện đại):
    • Hiện đang dần thay thế RI nhờ tính linh hoạt vượt trội.
    • Nhận mức giảm giá tương đương RI là 72%
    • Thay vì cam kết một loại máy chủ cụ thể, bạn cam kết một mức chi tiêu cụ thể (ví dụ: 10 USD/giờ)
    • Cần phải đặt trước instance family và region, có thể th ay đổi instance sizeOStenancy
    • AWS sẽ tự động áp dụng mức giảm giá này cho bất kể loại máy chủ EC2 nào bạn đang dùng, thậm chí áp dụng được cho cả AWS Fargate và AWS Lambda.

2.3. Spot Instances (Tận dụng tài nguyên dư thừa)

Spot Instances cho phép bạn tận dụng những phần dung lượng máy chủ nhàn rỗi trong hạ tầng của AWS với mức giá cực kỳ rẻ, có thể giảm đến 90% so với giá On-Demand.

  • Cơ chế hoạt động: Bạn đấu thầu hoặc sử dụng mức giá Spot hiện tại. Tuy nhiên, rủi ro lớn nhất là AWS có quyền thu hồi tài nguyên này bất cứ lúc nào nếu có khách hàng On-Demand cần dùng. Khi thu hồi, AWS sẽ gửi một thông báo trước 2 phút (Spot Instance Termination Notice).
  • Trường hợp sử dụng: Chỉ nên dùng cho các tác vụ không cần duy trì trạng thái liên tục (Stateless), các công việc có thể tạm dừng và tiếp tục sau đó như xử lý dữ liệu hàng loạt (Batch Processing), luyện tập mô hình AI/ML, hoặc các môi trường kiểm thử không yêu cầu tính sẵn sàng 24/7.

2.4. Dedicated Hosts (Máy chủ vật lý riêng biệt)

Đây là mô hình cao cấp nhất, cung cấp cho bạn một máy chủ vật lý hoàn toàn dành riêng cho tài khoản của mình. Bạn không chỉ thuê tài nguyên tính toán mà thuê trọn vẹn “phần cứng” bên dưới.

  • Đặc điểm: Giúp bạn kiểm soát hoàn toàn việc đặt các Instance lên các máy chủ vật lý bên dưới. Mức chi phí này thường là cao nhất do tính chất độc quyền tài nguyên.
  • Hình thức purchase:
    • On-demand: Pay per second cho các Dedicated Host đang chạy
    • Reserved: 1-3 năm (no upfront, partial upfront, all upfront)
  • Giá đắt nhất
  • Trường hợp sử dụng: Dùng cho các doanh nghiệp có yêu cầu khắt khe về tính tuân thủ (Compliance), bảo mật hoặc khi bạn muốn tận dụng các bản quyền phần mềm có sẵn gắn liền với phần cứng (Bring Your Own License – BYOL).

2.5. Dedicated Instance

Dedicated Instance là các máy chủ ảo chạy trên phần cứng dành riêng cho một khách hàng duy nhất. Tuy nhiên, mức độ kiểm soát phần cứng của nó thấp hơn so với Dedicated Host.

  • Cô lập mức phần cứng: Đảm bảo Instance của bạn không chạy chung máy chủ vật lý với các khách hàng khác (Single-tenant).
  • Chia sẻ nội bộ: Các Instance này có thể chia sẻ phần cứng với các Instance khác trong cùng một tài khoản AWS của bạn.
  • Thiếu tính cố định: Bạn không có quyền kiểm soát vị trí đặt Instance (Placement). Khi bạn thực hiện hành động Stop/Start, Instance có thể được di chuyển sang một máy chủ vật lý khác (vẫn là máy chủ riêng biệt dành cho bạn, nhưng không phải máy chủ cũ).
  • Cơ chế tính phí: Bạn bị tính phí theo từng Instance đang chạy, cộng thêm một khoản phí cố định khoảng $2 mỗi vùng (Region) cho mỗi giờ mà ít nhất một Dedicated Instance đang hoạt động trong tài khoản đó.
  • So sánh: Rẻ hơn Dedicated Host vì bạn chỉ trả tiền cho dung lượng thực tế sử dụng thay vì trả cho toàn bộ máy chủ vật lý.
  • Khi bạn cần sự cô lập về mặt vật lý để đáp ứng các tiêu chuẩn bảo mật nhưng không cần kiểm soát sâu vào cấu hình Socket/Core hoặc không cần sử dụng giấy phép phần mềm đặc thù (BYOL).

2.6. EC2 Capacity Reservations (Giữ chỗ tài nguyên EC2)

EC2 Capacity Reservations cho phép bạn đảm bảo rằng tài nguyên tính toán (capacity) sẽ luôn sẵn sàng cho các thực thể EC2 của bạn trong một Availability Zone (AZ) cụ thể, tại bất kỳ thời điểm nào bạn cần.

  • Cam kết về vị trí: Bạn giữ chỗ tài nguyên On-Demand trong một Availability Zone (AZ) xác định và cho một loại Instance nhất định.
  • Luôn sẵn sàng: AWS đảm bảo bạn sẽ luôn có quyền truy cập vào tài nguyên đã đặt, loại bỏ rủi ro thiếu hụt tài nguyên (Capacity exhaustion) vào những giờ cao điểm.
  • Linh hoạt về thời gian: Không yêu cầu cam kết thời gian sử dụng (như 1 năm hay 3 năm). Bạn có thể tạo hoặc hủy bỏ lệnh giữ chỗ bất kỳ lúc nào.
  • Tính phí ngay lập tức: Bạn sẽ bắt đầu bị tính phí theo mức giá On-Demand ngay khi lệnh giữ chỗ được kích hoạt.
  • Chạy hay không vẫn tính tiền: Bạn bị tính phí cho dù bạn có thực sự chạy Instance trên phần tài nguyên đó hay không.
  • Không có chiết khấu mặc định: Bản thân Capacity Reservation không giúp giảm giá. Tuy nhiên, bạn có thể kết hợp với Regional Reserved Instances hoặc Savings Plans để được hưởng mức giá ưu đãi trên phần dung lượng đã giữ chỗ.
  • Khuyển dùng: Đảm bảo luôn có sẵn tài nguyên ở một AZ dự phòng để chuyển đổi hệ thống ngay lập tức khi có sự cố, các dịp như Black Friday, ra mắt sản phẩm mới hoặc các chiến dịch marketing lớn khi bạn dự báo lượng truy cập tăng đột biến.

2.7. Tổng kết

Mẹo ghi nhớ nhanh:

  • On-Demand: ngắn hạn, khó dự đoán, dùng lúc nào trả tiền lúc đó, giá đầy đủ, không cam kết trước
  • Reserved: đặt trước dài hạn (1–3 năm) để được giảm giá.
  • Savings Plans: cam kết mức chi tiêu theo giờ trong một khoảng thời gian, đổi lại được giá rẻ hơn và linh hoạt loại instance.
  • Spot Instances: đấu giá tài nguyên dư thừa, rất rẻ nhưng có thể bị thu hồi bất cứ lúc nào.
  • Dedicated Hosts: thuê riêng toàn bộ server vật lý (giống thuê nguyên tòa nhà), có toàn quyền đặt các instance lên đó.
  • Dedicated Instance: compliance, bản quyền đặc biệt, các instance sẽ nằm trên host dành riêng cho ta
  • Capacity Reservations: đặt trước tài nguyên để đảm bảo luôn có chỗ, trả tiền kể cả khi không dùng.

Nếu có câu hỏi về yêu cầu cấp bản quyền đặc biệt (special licensing requirements), hãy nghĩ ngay đến Dediacated Hosts

Amazon EC2 Dedicated Host là một máy chủ vật lý với EC2 instance capacity hoàn toàn dành riêng cho ta. Dedicated Hosts cho phép ta sử dụng các bản quyền phần mềm hiện theo per-sockets, per-core, per-VM. Bao gồm Windows Server, Microsoft SQL Server, SUSE Linux Enterprise Server.W

Tổng chi phí sử dụng Amazon EC2 không chỉ dừng lại ở phí máy chủ ảo. Nó phụ thuộc vào các yếu tố chính sau:

  1. Loại Instance (Instance Type): Cấu hình của máy ảo (CPU, RAM, GPU) và loại gia đình (ví dụ: Compute Optimized – C Family, Memory Optimized – R Family).
  2. Vùng (Region): Chi phí có thể khác nhau giữa các AWS Region.
  3. Mô hình Thanh toán: Như đã trình bày (On-Demand, RI/SP, Spot, Dedicated).
  4. Lưu trữ Đính kèm (Amazon EBS): Chi phí cho ổ đĩa Elastic Block Store được đính kèm vào Instance.
  5. Băng thông Mạng: Chi phí truyền dữ liệu ra khỏi AWS (Data Egress) thường là cao nhất. Truyền dữ liệu giữa các Instance trong cùng một Region thường là miễn phí hoặc có chi phí rất thấp.

Công cụ Tính toán Chi phí: Luôn sử dụng AWS Pricing Calculator (https://calculator.aws.com/) để có ước tính chi phí chi tiết và chính xác cho hệ thống của bạn trước khi triển khai.

3. Hướng dẫn Chi tiết Khởi tạo Máy chủ EC2

Khởi tạo một thực thể EC2 (Instance) không chỉ đơn thuần là bật một máy tính ảo, mà là quá trình thiết kế một hệ thống có tính toán về hiệu suất, bảo mật và khả năng kết nối.

3.1. Các Thành phần Cốt lõi của một EC2 Instance

Để một máy chủ ảo hoạt động, bạn cần cấu hình các thành phần cơ bản sau:

Thành phần Ý nghĩa và Vai trò
AMI (Amazon Machine Image) Bản mẫu chứa Hệ điều hành (OS) và các cấu hình phần mềm ban đầu.
Instance Type Định nghĩa sức mạnh phần cứng (vCPU, RAM, băng thông mạng).
Network (VPC/Subnet) Xác định “ngôi nhà” ảo và vị trí địa lý nơi máy chủ cư ngụ.
Security Group (SG) Lớp tường lửa bảo vệ máy chủ ở cấp độ thực thể.
Key Pair Chìa khóa số để đăng nhập an toàn vào máy chủ.
Storage (EBS) Ổ đĩa cứng ảo để lưu trữ dữ liệu và hệ điều hành.

3.2. Chi tiết các Bước Cấu hình Hệ thống

Tên và Thẻ (Name and Tags) Việc đặt tên không chỉ để cho đẹp mà còn phục vụ mục đích quản trị. Tags là các cặp Key/Value giúp bạn lọc tài nguyên, phân bổ chi phí giữa các phòng ban hoặc tự động hóa các tác vụ quản lý.

  • Ví dụ: Environment: ProductionProject: E-commerce.

Lựa chọn AMI và Kiến trúc CPU: AMI là nền tảng của máy chủ. Bạn có thể chọn các bản phân phối Linux (Amazon Linux, Ubuntu, CentOS) hoặc Windows Server.

  • Kiến trúc x86_64: Phổ biến nhất, tương thích với hầu hết mọi ứng dụng hiện nay.
  • Kiến trúc ARM64 (AWS Graviton): Chip do AWS tự phát triển, mang lại hiệu năng trên giá thành (Price/Performance) tốt hơn tới 40% cho các ứng dụng hiện đại.

Lựa chọn Instance Type (Dòng máy chủ): Tùy vào mục đích sử dụng, bạn sẽ chọn “gia đình” máy chủ phù hợp:

  • T-Family (Burstable): Như t3, t4g. Phù hợp cho Web nhỏ, môi trường thử nghiệm (Dev/Test) nơi tải công việc không liên tục.
  • M-Family (General Purpose): Cân bằng giữa CPU và RAM. Đây là lựa chọn “an toàn” cho hầu hết ứng dụng sản xuất.
  • C-Family (Compute Optimized): Ưu tiên sức mạnh xử lý (CPU). Dùng cho xử lý video, tính toán khoa học.
  • R-Family (Memory Optimized): Ưu tiên bộ nhớ (RAM). Dùng cho các cơ sở dữ liệu lớn hoặc hệ thống Caching như Redis.

Cơ chế Xác thực Key Pair: AWS không sử dụng mật khẩu truyền thống cho Linux để đảm bảo an toàn. Bạn sẽ nhận được một file Private Key (.pem hoặc .ppk).

  • Bảo mật: Bạn phải giữ file này cực kỳ cẩn thận. Nếu mất, bạn có thể mất quyền truy cập vào server.
  • Lưu ý: Trên Linux/Mac, bạn cần chạy lệnh chmod 400 keypair.pem để giới hạn quyền truy cập file key, nếu không SSH sẽ từ chối kết nối vì lý do bảo mật.

Mạng ảo (VPC và Subnet)

  • Public Subnet: Máy chủ có IP công cộng và có thể truy cập từ Internet. Thường dùng cho Web Server.
  • Private Subnet: Máy chủ nằm trong vùng kín, không có IP công cộng. Đây là nơi đặt Database để đảm bảo an toàn tối đa.
  • Elastic IP (EIP): Là địa chỉ IP tĩnh không thay đổi. Nếu bạn chỉ dùng IP công cộng mặc định, mỗi khi bạn tắt (Stop) và bật lại (Start) máy chủ, IP đó sẽ bị thay đổi.

Tường lửa Security Group (SG): SG là một Stateful Firewall. Điều này có nghĩa là nếu bạn mở cổng 80 cho phép khách truy cập vào web, thì tự động phản hồi từ web gửi ra cho khách cũng sẽ được cho phép mà không cần cấu hình thêm.

  • Nguyên tắc đặc quyền tối thiểu: Chỉ mở những cổng thực sự cần thiết. Ví dụ: Chỉ mở cổng 22 (SSH) cho địa chỉ IP tại văn phòng của bạn thay vì mở cho toàn bộ thế giới (0.0.0.0/0).

Hầu hết các thực thể EC2 sử dụng Amazon EBS làm ổ đĩa.

  • gp3 (General Purpose): Lựa chọn mặc định tốt nhất cho hầu hết mọi người với chi phí rẻ và hiệu năng ổn định.
  • io2 (Provisioned IOPS): Dành cho những hệ thống cần tốc độ đọc ghi cực nhanh và ổn định tuyệt đối.
  • Instance Store: Đây là ổ đĩa vật lý “tạm thời”. Tốc độ cực nhanh nhưng dữ liệu sẽ mất sạch nếu bạn Stop hoặc Terminate máy chủ. Chỉ dùng để làm bộ nhớ đệm (Cache) hoặc dữ liệu tạm.

3.3. Các Phương thức Truy cập sau khi Khởi tạo

Sau khi máy chủ ở trạng thái Running, bạn có thể truy cập bằng các cách sau:

Phương thức Đối tượng Ưu điểm / Lưu ý
SSH Linux Truyền thống, mạnh mẽ. Cần mở cổng 22 và có file Key Pair.
RDP Windows Giao diện đồ họa. Cần giải mã mật khẩu Administrator bằng Key Pair.
EC2 Instance Connect Linux Truy cập nhanh ngay trên trình duyệt web của AWS Console.
SSM Session Manager Tất cả Khuyên dùng: An toàn nhất. Không cần mở cổng 22/3389, không cần Public IP. Mọi thao tác được ghi log lại để kiểm toán.

Hãy chú ý vào cột “Status Check” trong bảng điều khiển:

  1. System Status Check: Nếu lỗi, thường là do phần cứng của AWS. Bạn chỉ cần Stop và Start lại để máy chủ chuyển sang một máy vật lý khác khỏe mạnh hơn.
  2. Instance Status Check: Nếu lỗi, thường là do cấu hình sai trong Hệ điều hành của bạn (ví dụ: sai cấu hình mạng, lỗi driver).

4. EC2 Instance Types

Trong AWS, không có một cấu hình máy chủ nào phù hợp cho tất cả mọi việc. Do đó, Amazon cung cấp hàng trăm loại Instance Types khác nhau, được tối ưu hóa cho từng mục đích cụ thể từ tính toán, bộ nhớ cho đến lưu trữ.

4.1. Quy ước đặt tên Instance Type

Để giúp người dùng dễ dàng nhận diện cấu hình, AWS sử dụng một quy ước đặt tên chuẩn hóa. Hãy lấy ví dụ với loại m5.2xlarge:

  • m (Instance Class): Chữ cái đầu tiên đại diện cho “gia đình” (family) của máy chủ. Mỗi chữ cái tương ứng với một mục tiêu tối ưu (ví dụ: m là General Purpose, c là Compute Optimized).
  • 5 (Generation): Con số tiếp theo chỉ thế hệ phần cứng. Số càng cao nghĩa là thế hệ càng mới, hiệu năng càng mạnh và thường có giá thành tối ưu hơn thế hệ cũ.
  • 2xlarge (Size): Phần sau dấu chấm chỉ kích thước của máy chủ trong cùng một gia đình. Kích thước này tỷ lệ thuận với số lượng vCPU và dung lượng RAM (ví dụ: 4xlarge sẽ mạnh gấp đôi 2xlarge).

4.2. Các nhóm Instance Type phổ biến

Việc chọn đúng nhóm máy chủ sẽ giúp bạn đạt được hiệu suất cao nhất với chi phí thấp nhất.

  1. General Purpose (Đa dụng): Đây là nhóm máy chủ “cân bằng” nhất, cung cấp sự hài hòa giữa tài nguyên tính toán (Compute), bộ nhớ (Memory) và mạng (Network).
    • Ký hiệu: Các dòng t (t2, t3, t4g) hoặc m (m5, m6i, m7g).
    • Trường hợp sử dụng: Web server, kho lưu trữ code (Repository), môi trường phát triển ứng dụng hoặc các cơ sở dữ liệu nhỏ.
  2. Compute Optimized (Tối ưu hóa tính toán): Nhóm này tập trung vào các bộ vi xử lý (Processor) hiệu năng cao, cho phép xử lý các tác vụ tính toán phức tạp trong thời gian ngắn.
    • Ký hiệu: Dòng c (c5, c6i, c7g).
    • Trường hợp sử dụng: * Xử lý dữ liệu hàng loạt (Batch processing).
      • Chuyển đổi định dạng video/hình ảnh (Media transcoding).
      • Máy chủ chơi game chuyên dụng (Dedicated gaming servers).
      • Mô hình hóa khoa học và Machine Learning.
  3. Memory Optimized (Tối ưu hóa bộ nhớ): Được thiết kế để xử lý các tập dữ liệu cực lớn trong bộ nhớ (RAM), giúp tăng tốc độ truy xuất dữ liệu so với việc đọc từ ổ cứng.
    • Ký hiệu: Dòng rx, hoặc z (ví dụ: r5, r6g).
    • Trường hợp sử dụng: * Cơ sở dữ liệu hiệu năng cao (MySQL, PostgreSQL).
      • Hệ thống Caching trong bộ nhớ (Redis, Memcached).
      • Xử lý dữ liệu thời gian thực (Real-time big data analytics).
  4. Storage Optimized (Tối ưu hóa lưu trữ): Nhóm này dành cho các khối lượng công việc đòi hỏi tốc độ đọc/ghi dữ liệu (I/O) cực cao trên ổ đĩa cục bộ.
    • Ký hiệu: Dòng id, hoặc h (ví dụ: i3, d2).
    • Trường hợp sử dụng: * Hệ thống dữ liệu phân tán (NoSQL như Cassandra, MongoDB).
      • Hệ thống tệp tin phân tán (HDFS).
      • Kho dữ liệu (Data warehousing).
  5. Accelerated Computing (Tính toán tăng tốc): Sử dụng các bộ tăng tốc phần cứng như GPU (Graphics Processing Units) hoặc FPGA để thực hiện các chức năng như xử lý đồ họa hoặc tính toán số học hiệu quả hơn CPU.
    • Ký hiệu: Dòng pg, hoặc f (ví dụ: g4dn, p3).
    • Trường hợp sử dụng: Đồ họa 3D, dựng phim, Deep Learning và đào tạo mô hình trí tuệ nhân tạo (AI).
  6. High-performance Computing (HPC): Đây là dòng máy chủ mới nhất và mạnh mẽ nhất, được thiết kế đặc biệt để giải quyết các bài toán khoa học và kỹ thuật ở quy mô cực lớn.
    • Ký hiệu: Dòng hpc (ví dụ: hpc6a).
    • Trường hợp sử dụng: Dự báo thời tiết, mô phỏng động lực học chất lưu, hoặc phân tích cấu trúc gene.

4.3. Mẹo ghi nhớ cho kỳ thi

AWS thường đưa ra các tình huống và yêu cầu bạn chọn loại Instance phù hợp. Hãy nhớ các từ khóa (Keywords):

  • “Balance” (Cân bằng) → Chọn General Purpose.
  • “Fast Processor” (Vi xử lý nhanh) → Chọn Compute Optimized.
  • “Large Datasets in Memory” (Dữ liệu lớn trong RAM) $\rightarrow$ Chọn Memory Optimized.
  • “High I/O / Throughput” (Đọc/ghi nhanh) → Chọn Storage Optimized.

5. Security Group: Lá Chắn Bảo Mật Cho Amazon EC2

Trong môi trường điện toán đám mây, việc kiểm soát ai có thể truy cập vào máy chủ và máy chủ có thể gửi dữ liệu đi đâu là yếu tố sống còn. Security Group (SG) chính là công cụ quan trọng nhất để bạn thực hiện điều này.

5.1. Cổng (Port) và Giao thức: Ngôn ngữ Giao tiếp của EC2

Mỗi máy chủ EC2 giao tiếp với thế giới thông qua các “cổng” kỹ thuật số. Hãy tưởng tượng máy chủ của bạn là một tòa nhà và mỗi cổng là một cánh cửa dành riêng cho một loại khách nhất định.

Khi tạo Security Groups, ta sẽ cần xác định các thông tin:

  • Type: Đây là các cấu hình mẫu mà AWS đã chuẩn bị sẵn cho các giao thức phổ biến.
    • Giải thích: Khi bạn chọn một “Type”, AWS sẽ tự động điền các giá trị mặc định cho Protocol và Port Range tương ứng.
    • Ví dụ: Nếu bạn chọn Type là HTTP, AWS sẽ tự hiểu bạn muốn mở cổng 80. Nếu chọn SSH, AWS sẽ hiểu là cổng 22.
  • Protocol: Quy định cách thức dữ liệu được đóng gói và gửi đi.
    • Giải thích: Các giao thức phổ biến nhất là TCPUDP, và ICMP (dùng để ping).
    • Ví dụ: Web thường dùng TCP. Các ứng dụng truyền phát video trực tuyến hoặc game online đôi khi dùng UDP để đạt tốc độ nhanh hơn.
  • Port Range: Xác định “cánh cửa” cụ thể nào trên máy chủ sẽ được mở ra để nhận dữ liệu.
    • Giải thích: Cổng là một con số từ 0 đến 65535. Bạn có thể mở một cổng duy nhất (ví dụ: 80) hoặc một dải cổng (ví dụ: 3000-3005).
    • Ví dụ: Để chạy ứng dụng Node.js, bạn thường mở cổng 3000. Để chạy dịch vụ web an toàn, bạn mở cổng 443.
  • Source: Xác định ai là người được phép đi qua “cánh cửa” đã mở ở trên.
    • Giải thích: Đây là phần quan trọng nhất để bảo mật. Bạn có thể giới hạn theo địa chỉ IP cụ thể, dải IP, hoặc thậm chí là một Security Group khác.
    • Ví dụ:
      • 0.0.0.0/0: Cho phép tất cả mọi người trên Internet (Anywhere).
      • 203.0.113.5/32: Chỉ cho phép duy nhất 1 địa chỉ IP này (thường là IP tĩnh của văn phòng bạn).
      • sg-12345678: Chỉ cho phép các máy chủ nào cũng thuộc nhóm bảo mật này mới được truy cập vào nhau.

Dưới đây là các loại “cửa” phổ biến nhất mà bạn sẽ làm việc cùng:

  • SSH (Cổng 22): Dành cho quản trị viên hệ thống Linux. Đây là con đường để bạn gõ lệnh điều khiển máy chủ từ xa.
  • RDP (Cổng 3389): Dành cho máy chủ Windows. Nó cho phép bạn nhìn thấy màn hình máy tính ảo và dùng chuột điều khiển như máy tính cá nhân.
  • HTTP (Cổng 80): Cánh cửa đón khách vào xem website nhưng dữ liệu không được mã hóa.
  • HTTPS (Cổng 443): Tiêu chuẩn vàng hiện nay. Dữ liệu đi qua cổng này được mã hóa an toàn bằng SSL/TLS.

Mẹo: Khi triển khai ứng dụng, nếu bạn đã bật máy chủ nhưng không thể truy cập website, 90% nguyên nhân là do bạn quên mở cổng 80 hoặc 443 trong Security Group.

5.2. Nguyên lý Hoạt động của Security Group

Security Group hoạt động như một lớp tường lửa ảo bao quanh từng Instance EC2. Nó kiểm soát lưu lượng dựa trên các quy tắc (rules) mà bạn thiết lập.

Các đặc điểm của Security Group:

  1. Hoạt động theo Trạng thái (Stateful): Đây là điểm thông minh nhất của SG. Nếu bạn mở cửa cho một vị khách đi vào (Inbound), hệ thống sẽ tự động ghi nhớ và cho phép vị khách đó đi ra (Outbound) mà bạn không cần phải làm thêm bất kỳ thao tác nào.
  2. Chế độ “Chặn mặc định”: Khi mới khởi tạo, SG sẽ chặn tất cả các kết nối đi vào. Bạn phải chủ động “mở cửa” thì dữ liệu mới có thể vào được. Ngược lại, nó cho phép tất cả dữ liệu đi ra ngoài mặc định.
  3. Chỉ có luật “Cho phép” (Allow Only): Trong SG, bạn chỉ có thể nói “Tôi cho phép ông A vào”. Bạn không thể tạo luật kiểu “Tôi cấm ông B”. Nếu bạn không liệt kê ông B vào danh sách cho phép, mặc nhiên ông B sẽ bị chặn.
  4. Tái sử dụng: Một SG có thể gắn cho nhiều instance khác nhau.
  5. Phạm vi: SG chỉ tồn tại trong scope của một Region. Ta không thể sử dụng một SG ở region A cho EC2 instance ở region B.
  6. Khuyến cáo: Ta nên quản lý SSH access bằng một SG riêng biệt

5.3. Cấu hình Bảo mật Theo Nguyên tắc “Quyền tối thiểu”

Để đảm bảo an toàn, bạn nên áp dụng nguyên tắc Least Privilege (Quyền tối thiểu): Chỉ mở đúng những gì cần, cho đúng người cần. Ví dụ về một Security Group:

Mục đích Loại (Type) Cổng Nguồn (Source) Giải thích
Quản trị Linux SSH 22 My IP Chỉ cho phép chính máy tính của bạn truy cập.
Web công cộng HTTP/HTTPS 80/443 Anywhere (0.0.0.0/0) Cho phép tất cả mọi người trên thế giới truy cập web.
Cơ sở dữ liệu MySQL/PostgreSQL 3306/5432 SG ID Chỉ cho phép các máy chủ Web (thuộc một SG khác) truy cập vào DB.

Hướng dẫn thao tác nhanh trên Console:

  1. Tại phần Network settings, chọn Edit.
  2. Nhấn Add security group rule.
  3. Chọn Type (ví dụ: HTTP).
  4. Tại phần Source type, nếu là web hãy chọn Anywhere, nếu là quản trị hãy chọn My IP.

Cảnh báo cực kỳ quan trọng: Đừng bao giờ mở cổng 22 (SSH) hoặc 3389 (RDP) cho Anywhere (0.0.0.0/0). Các hacker luôn dùng robot quét toàn cầu để tìm những máy chủ mở cổng này và thực hiện tấn công dò mật khẩu (Brute-force).

6. Bootstrap Script (User Data)

Khi bạn khởi tạo hàng chục hay hàng trăm máy chủ EC2, việc đăng nhập vào từng máy để cài đặt phần mềm thủ công là điều bất khả thi. Đây chính là lúc User Data (Bootstrap Script) phát huy sức mạnh.

6.1. Định nghĩa và Cơ chế Hoạt động

User Data là một tập hợp các câu lệnh (Shell Script cho Linux hoặc PowerShell cho Windows) mà AWS sẽ tự động thực thi duy nhất một lần ngay khi Instance được khởi động lần đầu tiên (First Boot).

Mục đích chính:

  • Cập nhật hệ thống: Tự động chạy các bản vá bảo mật mới nhất ngay khi máy chủ vừa “ra đời”.
  • Cài đặt phần mềm: Tự động cài đặt Web Server (Nginx, Apache), Database client, hoặc Docker.
  • Thiết lập môi trường: Tải mã nguồn ứng dụng từ GitHub hoặc các file cấu hình từ Amazon S3.
  • Cấu hình dịch vụ: Khởi chạy các dịch vụ hệ thống và thiết lập quyền hạn ban đầu.

6.2. Ví dụ Thực tế: Tự động biến EC2 thành Web Server

Thay vì phải SSH vào máy chủ và gõ từng lệnh, bạn chỉ cần dán đoạn script sau vào phần Advanced Details > User Data khi tạo Instance:

#!/bin/bash
# 1. Cập nhật các gói phần mềm hệ thống
yum update -y
# 2. Cài đặt máy chủ web Apache (httpd)
yum install -y httpd
# 3. Khởi động dịch vụ Apache ngay lập tức
systemctl start httpd
# 4. Thiết lập Apache tự động chạy mỗi khi máy chủ khởi động lại (Reboot)
systemctl enable httpd
# 5. Tạo một trang web đơn giản để kiểm tra
echo "<h1>Chào mừng bạn đến với máy chủ EC2 được cấu hình tự động!</h1>" > /var/www/html/index.html

6.3. Lợi ích và Những Lưu ý Quan trọng

Tại sao bạn nên sử dụng User Data?

  • Tự động hóa hoàn toàn (Automation): Giúp bạn tạo ra một máy chủ “sẵn sàng phục vụ” (Ready-to-use) chỉ trong vài phút mà không cần can thiệp thủ công.
  • Tính nhất quán: Đảm bảo 100 máy chủ của bạn đều có cấu hình giống hệt nhau, loại bỏ sai sót do yếu tố con người.
  • Nền tảng của IaC: Đây là bước đệm quan trọng để bạn tiến tới sử dụng các công cụ như Terraform hay CloudFormation.

Các lưu ý về Hiệu suất và Bảo mật:

  1. Thời gian khởi động: Nếu script của bạn quá nặng (ví dụ: tải hàng GB dữ liệu hoặc biên dịch phần mềm phức tạp), nó sẽ kéo dài thời gian từ trạng thái pending sang running. Người dùng sẽ phải chờ lâu hơn để thấy máy chủ sẵn sàng.
  2. Quyền thực thi: Script luôn chạy với quyền cao nhất (root trên Linux hoặc Administrator trên Windows), vì vậy hãy kiểm tra kỹ mã lệnh của bạn.
  3. Log kiểm tra: Nếu script không chạy như ý muốn, bạn có thể kiểm tra log tại đường dẫn /var/log/cloud-init-output.log (trên Linux) để tìm lỗi.

7. Instance Metadata

7.1. Giới thiệu về Instance Metadata

Instance Metadata là một tập hợp các dữ liệu về chính máy chủ EC2 của bạn. Hãy tưởng tượng khi một tập lệnh (script) đang chạy bên trong máy chủ, nó cần biết: “Tôi là ai?”, “Tôi đang ở Zone nào?”, hay “Địa chỉ IP công cộng của tôi là gì?”. Thay vì phải nhập thủ công, máy chủ có thể tự “hỏi” AWS để lấy thông tin này.

Tất cả các thông tin này được truy cập thông qua một địa chỉ IP nội bộ đặc biệt và cố định (Link-local address): http://169.254.169.254/. Địa chỉ này chỉ có thể truy cập từ bên trong chính thực thể EC2 đó.

7.2. Các Phiên bản của Dịch vụ Siêu dữ liệu (IMDS)

AWS cung cấp hai phương thức để truy cập metadata, với sự khác biệt lớn về tính bảo mật.

Phiên bản 1 (IMDSv1) – Cơ chế đơn giản: Đây là phương thức truyền thống, sử dụng các yêu cầu HTTP GET đơn giản.

  • Đặc điểm: Cực kỳ dễ dùng, không cần thiết lập phức tạp.
  • Rủi ro: Kém bảo mật. Nếu ứng dụng web của bạn có lỗ hổng SSRF (Server-Side Request Forgery), kẻ tấn công có thể lừa ứng dụng truy cập vào địa chỉ metadata này để đánh cắp các thông tin nhạy cảm (như IAM Role tạm thời).
  • Lệnh ví dụ: curl http://169.254.169.254/latest/meta-data/

Phiên bản 2 (IMDSv2) – Cơ chế bảo mật cao: Đây là phương thức hiện đại, sử dụng cơ chế Session-oriented (hướng phiên).

  • Đặc điểm: Bắt buộc phải có một mã thông báo (Token) để truy cập. Token này có thời hạn sử dụng ngắn.
  • Bảo mật: Chống lại hiệu quả các cuộc tấn công SSRF vì kẻ tấn công không thể dễ dàng tạo ra hoặc đánh cắp Token từ bên ngoài.
  • Quy trình 2 bước:
    1. Lấy Token: Gửi yêu cầu PUT để lấy mã xác thực.
    2. Lấy Metadata: Dùng Token đó đính kèm vào Header của lệnh GET.

So sánh và Lựa chọn Cấu hình

Tiêu chí IMDSv1 (Optional) IMDSv2 (Required)
Mức độ bảo mật Thấp (Dễ bị khai thác SSRF) Cao (Rất an toàn)
Độ phức tạp Rất thấp (1 lệnh đơn giản) Trung bình (Cần logic lấy Token)
Khuyến nghị từ AWS Chỉ dùng cho các hệ thống cũ Tiêu chuẩn cho mọi hệ thống mới

Lưu ý quan trọng khi khởi tạo:

  • Mặc định hiện nay: Khi bạn tạo Instance mới, AWS thường mặc định chọn IMDSv2 Only. Điều này có nghĩa là các đoạn Bootstrap Script cũ (chỉ dùng lệnh curl đơn giản) có thể sẽ bị lỗi không lấy được dữ liệu.
  • Sự đánh đổi: Việc chọn “IMDSv1 and IMDSv2 (token optional)” giúp bạn viết script nhanh hơn, nhưng nó mở ra một lỗ hổng bảo mật tiềm tàng.
  • Thực hành tốt nhất (Best Practice): Mặc dù việc chọn IMDSv1 and IMDSv2 (token optional) giúp cho việc chạy Bootstrap Scripts đơn giản hơn, AWS luôn khuyến nghị sử dụng IMDSv2 Only để tối đa hóa tính bảo mật cho instance của bạn.

8. Virtual Network Cards

Khi chạy một EC2 Instance, có ba loại thiết bị mạng ảo (virtual network card) chính bạn có thể gắn vào để quyết định cách instance giao tiếp trong hệ thống Amazon Virtual Private Cloud (VPC).

8.1. ENI (Elastic Network Interface) – Mạng Cơ Bản

ENI là loại “card mạng ảo” cơ bản, linh hoạt nhất, đóng vai trò như một thiết bị mạng logic bạn có thể tạo độc lập và gắn vào instance.

  • Tính năng cốt lõi:
    • Địa chỉ IPv4 Private (bắt buộc).
    • Địa chỉ IPv4 Public (nếu cần).
    • Nhiều địa chỉ IPv6.
    • Địa chỉ MAC.
    • Một hoặc nhiều Security Groups (Nhóm Bảo mật).
  • Trường hợp sử dụng (Use Cases):
    • Tạo một management network (mạng quản trị) riêng biệt, tách biệt khỏi mạng ứng dụng.
    • Tích hợp các Network Appliance (ví dụ: tường lửa, thiết bị giám sát mạng ảo) bên trong VPC.
    • Cấu hình EC2 dual-homed (Instance có nhiều ENI, kết nối vào các subnet khác nhau để phục vụ nhiều vai trò/workload).
    • Giải pháp chi phí thấp, độ sẵn sàng cao (High Availability) thông qua việc di chuyển ENI giữa các instance trong cùng subnet.
  • Ghi nhớ nhanh: Sử dụng ENI khi bạn cần networking cơ bản hoặc nhiều mạng tách biệt cho một EC2 Instance.

8.2. EN (Enhanced Networking) – Mạng Nâng Cao/Hiệu suất Cao

Enhanced Networking (EN) được thiết kế để cung cấp hiệu suất mạng rất cao (10 Gbps – 100 Gbps) và độ trễ thấp cho các instance.

Nó sử dụng công nghệ SR-IOV (Single Root I/O Virtualization) để:

  • Giảm tải CPU (ít overhead hơn) bằng cách xử lý mạng trực tiếp trên phần cứng.
  • Cung cấp băng thông cao và hỗ trợ nhiều packet/giây.
  • Đạt được độ trễ thấp hơn giữa các EC2 Instance.

Các Driver Chính để Bật EN

Driver Tốc độ hỗ trợ Sử dụng Lưu ý Quan trọng
ENA (Elastic Network Adapter) Lên tới 100 Gbps Các loại EC2 hiện đại (thế hệ mới). Khuyến nghị và phổ biến nhất hiện nay.
Intel 82599 VF (Virtual Function) Tối đa 10 Gbps Các EC2 thế hệ cũ (ví dụ: instance loại m3). Đang dần được thay thế bởi ENA.
  • Mẹo thi AWS: Khi được yêu cầu chọn giữa ENA và VF cho hiệu suất cao, hãy chọn ENA vì nó nhanh hơn và là tiêu chuẩn hiện đại của AWS.
  • Ghi nhớ nhanh: Dùng EN khi bạn cần throughput lớnlatency thấp và truyền tải dữ liệu khối lượng cao (ví dụ: cơ sở dữ liệu lớn, phân tích dữ liệu).

Cách Kiểm tra EN trên EC2 Instance:

  1. SSH vào Instance.
  2. Chạy lệnh ethtool -i <interface_name> (ví dụ: ethtool -i enX0).
  3. Kiểm tra trường driver:
    • Nếu là ENA → Đang dùng Enhanced Networking (hiện đại).
    • Nếu là ixgbevf → Đang dùng VF (thế hệ cũ).
    • Nếu là vif hoặc driver khác → Có thể chưa bật EN.

8.3. EFA (Elastic Fabric Adapter) – Mạng HPC & ML Chuyên Dụng

EFA là một network device chuyên dụng, được tối ưu hóa để tăng tốc độ cho các ứng dụng High Performance Computing (HPC) và Machine Learning (ML).

  • Ưu điểm độc đáo:
    • Độ trễ siêu thấp và ổn định hơn đáng kể so với giao thức TCP/IP truyền thống.
    • Hỗ trợ OS-Bypass: Cho phép ứng dụng bỏ qua kernel của hệ điều hành và giao tiếp trực tiếp với EFA. Điều này loại bỏ tầng giao tiếp của OS, giúp tốc độ cực nhanh.
    • Băng thông cực cao.
  • Trường hợp sử dụng (Use Cases):
    • Các ứng dụng HPC (ví dụ: mô phỏng khoa học, tài chính định lượng, tính toán vật lý, dự báo thời tiết).
    • Các mô hình AI/ML Training cần nhiều node giao tiếp với tốc độ cao, độ trễ thấp (inter-node communication).
  • Cảnh báo & Quy tắc:
    • Tính năng OS-Bypass hiện chỉ được hỗ trợ trên Linux, không hỗ trợ trên Windows.
  • Ghi nhớ nhanh: Khi đề thi AWS nhắc đến HPC hoặc Machine Learning cần latency siêu thấp và tính toán phân tán, hãy nghĩ ngay đến EFA.

8.4.Bảng Tổng Kết Lựa Chọn Thiết Bị Mạng

Thiết Bị Mục Đích Chính Băng Thông & Latency Trường Hợp Sử Dụng Điển Hình
ENI (Elastic Network Interface) Networking cơ bản & đa mạng Tiêu chuẩn Management networkdual-homed EC2, Network Appliance.
EN (ENA) (Enhanced Networking) Hiệu suất mạng cao Băng thông cao (lên tới 100 Gbps), Độ trễ thấp. Database lớn, truyền tải dữ liệu khối lượng cao cần throughput.
EFA (Elastic Fabric Adapter) HPC & Machine Learning Latency siêu thấp, Băng thông cực cao, Hỗ trợ OS-Bypass. AI TrainingMô phỏng khoa học (MPI/NCCL communication).

9. Placement Groups

Trong AWS, Placement Group không phải là một dịch vụ tính phí, mà là một chiến lược cấu hình. Nó quyết định cách các thực thể EC2 của bạn được đặt về mặt vật lý trên hạ tầng phần cứng của Amazon để đạt được mục tiêu cụ thể: hoặc là tốc độ truyền tải cực nhanh, hoặc là độ an toàn tối đa trước các sự cố phần cứng.

Tùy vào nhu cầu của ứng dụng, bạn sẽ chọn một trong ba chiến lược sau:

9.1. Cluster Placement Group (Cụm tập trung)

Các máy chủ được đặt “sát vách” nhau bên trong cùng một Availability Zone (AZ), trên cùng một phân đoạn mạng tốc độ cao.

  • Mục tiêu: Đạt độ trễ cực thấp (Low Latency) và thông lượng mạng cực cao (High Throughput).
  • Trường hợp sử dụng: Được khuyến nghị cho ứng dụng cần độ trễ thấp hoặc thông lượng mạng cao. Ví dụ: các tác vụ tính toán hiệu năng cao (HPC), xử lý dữ liệu lớn (Big Data) cần các máy chủ “nói chuyện” với nhau liên tục và nhanh chóng.
  • Lưu ý: Chỉ một số loại EC2 instance nhất định mới hỗ trợ chạy trong Cluster PG.

9.2. Spread Placement Group (Phân tán tuyệt đối)

Ngược lại với Cluster, chiến lược này ép buộc mỗi Instance phải nằm trên một host vật lý (hardware platform) riêng biệt, có nguồn điện và hạ tầng mạng độc lập.

  • Các host này buộc phải nằm ở các rack khác nhau (mức độ cô lập cao nhất)
  • Mục tiêu: Giảm thiểu rủi ro tối đa. Nếu một rack bị hỏng, chỉ duy nhất 1 Instance bị ảnh hưởng.
  • Giới hạn: Tối đa 7 Instances trên mỗi AZ (vì tài nguyên phần cứng vật lý tách biệt có hạn).
  • Trường hợp sử dụng: Thích hợp cho các ứng dụng có ít instance quan trọng nhưng yêu cầu tính sẵn sàng cao, ví dụ như cơ sở dữ liệu hoặc dịch vụ cốt lõi.
  • Ví dụ: Một EC2 chạy database (DB) và một EC2 khác chạy DB backup → nên đặt trong Spread PG để tránh cả hai cùng bị hỏng khi một phần cứng gặp sự cố.

Câu hỏi tình huống: Ta thường dùng Spread PG cho các EC2 instances chứa phần mềm/thông tin quan trọng.

9.3. Partition Placement Group (Phân vùng theo nhóm)

Đây là sự kết hợp thông minh:

  • AWS chia nhóm các máy chủ thành các Partition, mỗi Partition sẽ nằm trên một bộ Rack riêng
  • Các máy chủ trong cùng một Partition có thể chia sẻ phần cứng, nhưng giữa các Partition thì tuyệt đối không
  • Maximum 7 placement groups trên một AZ
  • Mục tiêu: Cô lập lỗi theo nhóm. Nếu Rack của Partition 1 lỗi, toàn bộ máy ở Partition 2 và 3 vẫn an toàn.
  • Trường hợp sử dụng: Thích hợp khi cần nhiều instance chạy trong cùng một hệ thống mạng nhưng vẫn muốn cách ly phần cứng. Ví dụ: các hệ thống phân tán lớn như HDFS, Cassandra, HBase hay Kafka.

Câu hỏi tình huống: Ta thường dùng Partition PG khi triển khai nhiều EC2 instances để đảm bảo chúng được phân tách trên nhiều partition, giảm ảnh hưởng nếu một phần cứng gặp sự cố.

9.4. So sánh Chi tiết: Spread vs. Partition

Cả Spread PG và Partition PG đều đảm bảo EC2 instances không chia sẻ cùng một phần cứng vật lý → giảm rủi ro khi có lỗi phần cứng. Rất nhiều người nhầm lẫn giữa hai loại này, hãy nhớ quy tắc đơn giản sau:

Đặc điểm Spread Placement Group Partition Placement Group
Quy mô Mỗi instance được đặt trên một host (hardware platform) riêng biệt. Các instance sẽ được nhóm vào các partition, mỗi partion được gán vào rack khác nhau (mỗi rack có mạng & nguồn điện riêng). Nhiều instance trong một partition có thể cùng chia sẻ rack.
Số lượng máy Hạn chế (Tối đa 7 máy mỗi AZ). Hỗ trợ hàng trăm, hàng ngàn máy chủ.
Use case Khi bạn có ít nhưng rất quan trọng instances (VD: database, backup). Khi bạn có nhiều instances chạy chung hệ thống phân tán (VD: HDFS, Cassandra, HBase).
Mục tiêu chính Đảm bảo mỗi instance được cô lập hoàn toàn. Đảm bảo mỗi nhóm (partition) được cô lập, còn các instance trong cùng một partition thì có thể chia sẻ phần cứng.

Tóm gọn:

  • Spread PG = “Mỗi máy quan trọng → 1 host riêng biệt” (ít instance, cô lập tuyệt đối).
  • Partition PG = “Nhiều máy → chia nhóm vào các rack khác nhau” (nhiều instance, cô lập theo nhóm).

9.5. Những Lưu ý Kỹ thuật Quan trọng

Để quản lý Placement Group hiệu quả, bạn cần nắm vững các quy tắc sau:

  1. Tính đồng nhất: Chỉ các dòng máy chủ tối ưu hóa (Compute, GPU, Memory, Storage) mới phát huy tối đa sức mạnh của Placement Group.
  2. Không thể hợp nhất: Bạn không thể gộp (merge) hai Placement Group lại với nhau.
  3. Di chuyển Instance: Bạn hoàn toàn có thể đưa một máy chủ đang chạy ngoài vào một Placement Group, hoặc chuyển từ Group này sang Group khác.
    • Điều kiện: Máy chủ phải ở trạng thái Stopped.
    • Công cụ: Việc di chuyển này không thực hiện được trên giao diện Console, bạn bắt buộc phải dùng AWS CLI hoặc SDK.
  4. Lỗi khởi động: Trong Cluster PG, nếu bạn cố bật thêm máy mà phần cứng tại cụm đó đã hết chỗ, bạn sẽ gặp lỗi Capacity Error. Cách xử lý là Stop tất cả máy trong cụm rồi Start lại đồng thời.

9.6. Hướng dẫn Thiết lập nhanh

  1. Truy cập EC2 Dashboard.
  2. Ở cột menu bên trái, tìm mục Network & Security > Placement Groups.
  3. Nhấn Create Group, đặt tên và chọn 1 trong 3 chiến lược (Strategy) phù hợp.
  4. Khi tạo Instance EC2 mới, ở phần Advanced Details, bạn chỉ cần chọn tên Group vừa tạo.

10. Spot Instances và Spot Fleets

Trong hệ sinh thái AWS, Spot Instances là giải pháp kinh tế nhất dành cho những người dùng có khối lượng công việc linh hoạt. Đây là cách AWS tận dụng lượng tài nguyên máy chủ nhàn rỗi để cung cấp cho người dùng với mức giá “siêu rẻ”.

10.1. Spot Instances là gì?

Hãy tưởng tượng AWS là một khách sạn khổng lồ. Khi khách sạn vắng khách, họ sẽ bán những phòng trống với giá cực kỳ ưu đãi thay vì để trống. Tuy nhiên, nếu có khách sẵn sàng trả giá cao hơn (giá On-Demand), bạn sẽ phải nhường phòng.

  • Ưu điểm: Giảm chi phí tới 90% so với giá thông thường.
  • Thách thức: Có thể bị thu hồi bất cứ lúc nào. AWS sẽ gửi một thông báo trước 2 phút (Spot Instance Interruption Notice) trước khi thực thể bị dừng hoặc xóa bỏ.

10.2. Chiến lược sử dụng: Nên và Không nên

Do đặc tính dễ bị gián đoạn, việc lựa chọn loại công việc (workload) để chạy trên Spot là cực kỳ quan trọng:

  • Nên dùng cho (Workload chịu lỗi – Fault-tolerant):
    • Stateless Applications: Các ứng dụng không lưu dữ liệu trực tiếp trên máy chủ (ví dụ: web server chạy sau Load Balancer).
    • Batch Processing: Xử lý dữ liệu hàng loạt, nếu lỗi có thể chạy lại từ đầu.
    • Phân tích dữ liệu lớn (Big Data): Sử dụng các cụm Apache Spark hoặc Hadoop.
    • CI/CD Pipeline: Môi trường xây dựng và kiểm thử phần mềm tự động.
  • KHÔNG nên dùng cho:
    • Cơ sở dữ liệu (Databases): Việc mất kết nối đột ngột có thể gây hỏng dữ liệu.
    • Ứng dụng quan trọng (Mission-critical): Các dịch vụ cốt lõi yêu cầu sẵn sàng 24/7 và không được phép gián đoạn.

10.3. Cơ chế Yêu cầu và Quản lý Spot

Để sử dụng Spot Instance một cách hiệu quả, bạn cần hiểu rõ quy trình từ lúc gửi yêu cầu thuê máy chủ cho đến khi AWS thu hồi tài nguyên.

Khi bạn quyết định sử dụng Spot Instance, quy trình thuê sẽ bao gồm các thông số kỹ thuật sau:

  • Giá Tối Đa (Maximum Price): Đây là mức giá cao nhất mà bạn sẵn sàng trả cho mỗi giờ chạy máy chủ. Mặc định, AWS thường để mức này bằng với giá On-Demand.
  • Giá Spot Hiện Tại (Current Spot Price): Đây là mức giá thực tế mà AWS đang áp dụng cho loại máy chủ đó tại một Vùng sẵn sàng (Availability Zone) cụ thể. Mức giá này biến động dựa trên cung và cầu của thị trường tài nguyên nhàn rỗi.
  • Target capacity: Số lượng instance mong muốn
  • Instance type requirement: Các thông số vCPU, memory,… mong muốn cho các instance
  • Allocation strategy: Chiến lược cấp phát, tối ưu về giá hoặc tối ưu về capacity.
  • Điều kiện khởi chạy: Instance của bạn chỉ được bật lên khi Giá Tối Đa của bạn ≥ Giá Spot Hiện Tại và AWS đang có sẵn tài nguyên dư thừa.
  • Loại yêu cầu (Request Type): Cách AWS xử lý các instance khi giá spot lớn hơn giá tối đa. Sẽ giải thích ở phía dưới.

Nếu bạn không muốn tạo request mà chỉ đơn giản muốn launch một Spot Instance, bạn có thể tìm đến tùy chọn Request Spot Instances trong Advanced details khi tạo EC2 instance.

Khi thị trường biến động và Giá Spot hiện tại cao hơn mức giá tối đa của bạn, hoặc khi AWS cần thu hồi tài nguyên để phục vụ khách hàng trả phí cố định (On-Demand), hệ thống sẽ kích hoạt quy trình gián đoạn.

Tùy vào Loại Yêu cầu (Request Type) bạn chọn ban đầu, máy chủ sẽ có hành vi khác nhau:

  1. Yêu cầu Một lần (One-time Request)
    • Cơ chế: Đây là loại yêu cầu có vòng đời ngắn hạn. Ngay khi Instance được cấp phát thành công, yêu cầu (request) này được coi là đã hoàn tất.
    • Khi bị gián đoạn: Nếu giá tăng cao hoặc thiếu tài nguyên, AWS sẽ gửi thông báo trước 2 phút, sau đó Terminate (Hủy bỏ) máy chủ của bạn.
    • Hệ quả: Sau khi máy bị hủy, AWS sẽ không thực hiện bất kỳ hành động nào khác. Bạn sẽ không có máy chủ nào chạy nữa trừ khi bạn tạo một yêu cầu mới thủ công.
  2. Yêu cầu Liên tục (Persistent Request)
    • Cơ chế: Yêu cầu này luôn ở trạng thái “mở” và duy trì trong hệ thống cho đến khi bạn chủ động hủy nó hoặc hết hạn hiệu lực của yêu cầu.
    • Khi bị gián đoạn: AWS vẫn sẽ gửi thông báo 2 phút và dừng máy chủ của bạn (thường là Stop hoặc Terminate tùy cấu hình).
    • Hệ quả: Yêu cầu vẫn nằm chờ trong hệ thống. Ngay khi Giá Spot thấp hơn Giá Tối Đa của bạn và có tài nguyên trống, AWS sẽ tự động khởi chạy lại một Instance mới cho bạn mà bạn không cần can thiệp.

10.4. Cách dừng hẳn một Spot Instance có cấu hình “Persistent”

Đây là điểm cực kỳ quan trọng để tránh phát sinh chi phí không mong muốn. Đối với loại yêu cầu Persistent, khi bạn thực hiện lệnh Terminate máy chủ trên Console, AWS sẽ hiểu lầm rằng máy chủ của bạn gặp sự cố và theo đúng luật của cấu hình Persistent, nó sẽ tự động bật một máy chủ mới để thay thế.

Để xóa bỏ hoàn toàn, bạn phải thực hiện theo đúng trình tự:

  1. Hủy yêu cầu Spot (Cancel Spot Request): Bước này để hệ thống ngừng theo dõi và ngừng nỗ lực khởi chạy máy mới.
  2. Chấm dứt Instance (Terminate Instance): Sau khi yêu cầu đã hủy, bạn tiến hành xóa máy chủ đang chạy hiện tại.

10.5. Spot Fleets và Launch Pools

Spot Fleet là một công cụ giúp bạn quản lý một nhóm (fleet) các instance, bao gồm Spot Instances và tùy chọn thêm On-Demand Instances, để đạt được dung lượng mục tiêu (target capacity) bạn định nghĩa.

  • Mục tiêu: Tự động hóa việc khởi chạy và duy trì số lượng instance cần thiết dựa trên yêu cầu và giá cả.
  • Điều kiện cấp phát: Phải có đủ tài nguyên (capacity)  Giá Spot hiện tại  Giá tối đa bạn đặt.
  • Khả năng tự phục hồi: Nếu một Spot Instance bị gián đoạn, Spot Fleet sẽ cố gắng cấp phát lại để duy trì dung lượng mục tiêu.

Launch Pool là tập hợp các cấu hình khác nhau (loại instance, AMI, Availability Zone) mà bạn định nghĩa bên trong một Spot Fleet. Spot Fleet sẽ chọn pool tối ưu dựa trên chiến lược triển khai của bạn.

10.6. Các Chiến lược Phân bổ (Allocation Strategies)

Khi sử dụng Spot Fleet, bạn có thể chọn chiến lược để tối ưu hóa chi phí hoặc độ ổn định:

  1. CapacityOptimized (Ưu tiên Dung lượng): Ưu tiên pool có nhiều tài nguyên trống nhất để giảm thiểu nguy cơ bị gián đoạn, ngay cả khi giá không thấp nhất.
  2. Diversified (Đa dạng hóa): Phân bổ Spot Instances đồng đều trên nhiều pool khác nhau để dàn trải rủi ro gián đoạn.
  3. LowestPrice (Giá thấp nhất): Luôn chọn pool có Giá Spot thấp nhất tại thời điểm đó (nguy cơ gián đoạn cao hơn).
  4. InstancePoolsToUseCount: Giới hạn số lượng pool được sử dụng để phân bổ.

11. VMware Cloud on AWS

VMware Cloud on AWS (VMC on AWS) là một giải pháp dịch vụ đám mây lai (Hybrid Cloud) được hợp tác phát triển bởi VMware và AWS. Dịch vụ này cho phép doanh nghiệp chạy các khối lượng công việc dựa trên VMware hiện có của họ trực tiếp trên hạ tầng toàn cầu của AWS mà không cần thay đổi cách thức vận hành.

Nói một cách đơn giản, nếu doanh nghiệp của bạn đang quen thuộc với việc quản lý máy chủ ảo bằng vSphere, vSAN, hay NSX tại trung tâm dữ liệu nội bộ (On-premises), VMC on AWS sẽ mang nguyên hệ sinh thái đó lên các máy chủ vật lý của Amazon.

11.1. Các Trường hợp Sử dụng Chiến lược (Use Cases)

Dịch vụ này đặc biệt hữu ích cho các doanh nghiệp đang thực hiện lộ trình chuyển đổi số nhưng vẫn muốn duy trì sự ổn định của hệ thống cũ:

  1. Mở rộng Đám mây Lai (Hybrid Cloud Extension): Kết nối trung tâm dữ liệu tại chỗ với AWS để tạo thành một môi trường duy nhất. Bạn có thể sử dụng giao diện VMware vCenter quen thuộc để quản lý máy chủ ở cả hai nơi.
  2. Di chuyển Đám mây (Cloud Migration): Thực hiện chiến lược “Lift-and-Shift”. Bạn chuyển toàn bộ máy ảo (VM) từ nội bộ lên AWS mà không cần cài đặt lại phần mềm hay thay đổi kiến trúc ứng dụng.
  3. Phục hồi sau Thảm họa (Disaster Recovery – DR): Thay vì tốn tiền xây dựng thêm một trung tâm dữ liệu vật lý thứ hai để dự phòng, bạn có thể dùng AWS làm nơi phục hồi dữ liệu với chi phí tối ưu hơn thông qua VMware Site Recovery.
  4. Hiện đại hóa Ứng dụng: Sau khi đã đưa máy ảo lên VMC on AWS, ứng dụng của bạn có thể kết nối trực tiếp với các dịch vụ hiện đại của AWS như Amazon S3 (Lưu trữ)Amazon RDS (Cơ sở dữ liệu), hay AI/ML qua mạng nội bộ tốc độ cao.

11.2. Kiến trúc và Cách thức Triển khai

VMC on AWS không phải là một phần mềm mô phỏng (nested virtualization), mà là sự kết hợp trực tiếp giữa phần mềm của VMware và phần cứng của AWS.

1. Cơ sở hạ tầng Chuyên dụng (Bare-Metal): Dịch vụ này chạy trên các máy chủ vật lý chuyên dụng (Bare-Metal) của AWS như loại i3.metal hoặc i4i.metal. Điều này đảm bảo:

  • Hiệu suất tối đa: Không có lớp ảo hóa trung gian gây chậm trễ.
  • Tài nguyên dồi dào: Mỗi máy chủ vật lý (Host) có cấu hình cực mạnh (Ví dụ: i3.metal có 36 cores, 512 GiB RAM, và 15.2 TB SSD). Mỗi Host này có thể gánh được hàng trăm máy ảo tùy thuộc vào độ nặng của công việc.

2. Mô hình Cụm (Cluster) và Quản lý

  • Số lượng Host: Một cụm (Cluster) tối thiểu cần 2 host để đảm bảo tính sẵn sàng cao và có thể mở rộng lên tới 16 host.
  • Trách nhiệm quản lý: Mặc dù hạ tầng nằm trong tài khoản AWS của bạn, nhưng VMware sẽ chịu trách nhiệm vận hành, vá lỗi và cập nhật cho toàn bộ phần mềm SDDC (Software-Defined Data Center). Điều này giúp đội ngũ IT của bạn rảnh tay để tập trung vào ứng dụng.

11.3. Điểm khác biệt mấu chốt

Nhiều người lầm tưởng đây là việc cài đặt VMware lên trên một máy ảo EC2 thông thường. Thực tế không phải vậy.

Lưu ý kỹ thuật: VMware SDDC chạy trực tiếp trên phần cứng vật lý của AWS. Điều này loại bỏ hoàn toàn các rào cản về tương thích và mang lại tốc độ xử lý tương đương với việc chạy tại trung tâm dữ liệu riêng của bạn, nhưng lại có thêm khả năng co giãn linh hoạt của điện toán đám mây.

12. AWS Outposts

AWS Outposts là một dịch vụ cho phép bạn chạy các dịch vụ, cơ sở hạ tầng và mô hình hoạt động của AWS ngay tại trung tâm dữ liệu, cơ sở sản xuất hoặc văn phòng chi nhánh của riêng bạn (on-premises).

Nó giải quyết các trường hợp mà bạn cần độ trễ thấp hoặc phải xử lý dữ liệu tại chỗ, nhưng vẫn muốn tận dụng các dịch vụ và công cụ quen thuộc của AWS.

12.1. Outposts là gì?

Outposts cung cấp phần cứng vật lý được quản lý hoàn toàn bởi AWS, đặt tại cơ sở của bạn. Phần cứng này cho phép bạn triển khai các tài nguyên AWS (như Amazon EC2 và Amazon EBS) cục bộ, trong khi vẫn kết nối với AWS Region chính để quản lý, điều khiển và các dịch vụ AWS khác.

Hình thức: Có nhiều kích cỡ, từ máy chủ 1U và 2U (Outposts Servers) đến tủ rack 42U (Outposts Racks), và có thể triển khai nhiều tủ rack.

12.2. Lợi ích chính của AWS Outposts

Lợi Ích Mô Tả Chi Tiết
Tính nhất quán (Consistency) Đồng nhất hóa trải nghiệm môi trường lai (Hybrid Environment). Bạn sử dụng cùng một AWS Management Console, các APISDK và công cụ AWS ngay cả khi tài nguyên chạy tại chỗ.
Đám mây Lai (Hybrid Cloud) Xây dựng một đám mây lai thực sự, nơi bạn có thể chạy các ứng dụng đòi hỏi độ trễ thấp tại chỗ và tích hợp liền mạch với các dịch vụ rộng lớn hơn của AWS Region.
Quản trị Toàn bộ Cơ sở Hạ tầng AWS chịu trách nhiệm quản lý và bảo trì phần cứng (cơ sở hạ tầng) của Outposts, bao gồm cập nhật firmware và vá lỗi. Điều này giúp giảm tải cho đội ngũ vận hành (System Admins) tại chỗ của bạn.
Độ trễ thấp Đảm bảo độ trễ cực thấp cho các ứng dụng cần xử lý dữ liệu tại chỗ, như các ứng dụng sản xuất, chăm sóc sức khỏe hoặc bán lẻ.

12.3. Các thành viên trong dòng sản phẩm AWS Outposts

Dòng sản phẩm Outposts được chia thành hai loại chính, phục vụ các nhu cầu không gian và công suất khác nhau:

  1. Outposts Rack (Tủ Rack)
    • Phần cứng: Bắt đầu với một tủ rack 42U và có thể mở rộng tới 96 tủ rack.
    • Dịch vụ: Cung cấp phạm vi dịch vụ AWS lớn hơn tại chỗ, bao gồm EC2EBSAmazon RDS (một số phiên bản), Amazon EKS (Kubernetes), và nhiều dịch vụ khác.
    • Kết quả: Mang đến toàn bộ hạ tầng, dịch vụ và API của AWS ngay tại trung tâm dữ liệu của bạn, lý tưởng cho việc di chuyển tải công việc lớn cần tính toán và lưu trữ đáng kể.
  2. Outposts Server (Máy Chủ)
    • Phần cứng: Các máy chủ riêng lẻ dưới dạng 1U hoặc 2U.
    • Dịch vụ: Chủ yếu cung cấp các dịch vụ tính toán (compute) và mạng (networking) cục bộ.
    • Trường hợp sử dụng: Thích hợp cho các yêu cầu không gian nhỏ hoặc những nơi có hạn chế về điện năng/làm mát, chẳng hạn như:
      • Cửa hàng bán lẻ.
      • Văn phòng chi nhánh.
      • Địa điểm của nhà cung cấp dịch vụ chăm sóc sức khỏe.
      • Sàn nhà máy (factory floors).

12.4. Quy trình triển khai Outposts

Việc triển khai được thực hiện thông qua giao diện điều khiển AWS, nhưng bao gồm cả sự can thiệp vật lý của AWS:

  1. Order (Đặt hàng):
    • Đăng nhập vào AWS Management Console.
    • Đặt cấu hình Outposts của bạn (chọn kích cỡ rack/server, cấu hình EC2, EBS, v.v.).
  2. Install (Cài đặt):
    • Nhân viên AWS (hoặc đối tác được ủy quyền) sẽ đến tại chỗ (on-site).
    • Thực hiện việc triển khai phần cứng, bao gồm nguồn điện, mạng lưới và thiết lập kết nối (kết nối đến AWS Region là bắt buộc).
  3. Launch (Khởi chạy):
    • Sử dụng AWS Management Console quen thuộc.
    • Bạn có thể Khởi chạy các EC2 instances và các tài nguyên khác ngay trong Outpost được đặt tại cơ sở của bạn.
  4. Build (Xây dựng):
    • Bắt đầu xây dựng và chạy các ứng dụng của bạn trên môi trường AWS on-site mới.

Mẹo Quan Trọng: Mặc dù Outposts chạy tại chỗ, nó vẫn cần kết nối mạng ổn định và độ trễ thấp với AWS Region chính để hoạt động, đặc biệt là cho các tác vụ điều khiển (control plane) và giám sát. Bạn cần đảm bảo mạng và cơ sở vật chất (điện, làm mát) của bạn đáp ứng yêu cầu của AWS.

💡 > Mở rộng AWS tới Data Center → Sử dụng dụng AWS Outposts > > – **Outposts rack**: Dành cho các công ty cần triển khai quy mô lớn, với khả năng chứa nhiều thiết bị và cung cấp nhiều dịch vụ AWS. > – **Outposts servers**: Dành cho các triển khai quy mô nhỏ, phù hợp cho các không gian hạn chế và nhu cầu tài nguyên ít hơn, nhưng vẫn muốn tận dụng các dịch vụ AWS on-premises.

13. EC2 Hibernation

EC2 Hibernate là tính năng cho phép bạn tạm dừng các thực thể (Instance) và lưu lại trạng thái hiện tại của chúng vào ổ đĩa. Khi bạn khởi động lại, Instance sẽ khôi phục chính xác trạng thái tại thời điểm nó tạm dừng, giúp tiết kiệm thời gian khởi động các ứng dụng phức tạp.

13.1. Cơ chế hoạt động của Hibernate

Khi bạn kích hoạt chế độ Hibernate:

  • Lưu RAM vào EBS: Dữ liệu đang có trên bộ nhớ tạm (RAM) sẽ được ghi vào ổ đĩa Amazon EBS (Root Volume).
  • Đóng băng trạng thái: Các tiến trình đang chạy sẽ không bị đóng hoàn toàn mà chỉ bị tạm dừng.
  • Tiết kiệm chi phí: Bạn sẽ ngừng bị tính phí cho tài nguyên Compute (EC2) và các bản quyền phần mềm (OS license). Bạn chỉ phải trả phí lưu trữ cho ổ đĩa EBS và dữ liệu RAM đã lưu trên đó.

13.2. Lợi ích so với Stop thông thường

  • Khởi động nhanh (Fast Boot): Thay vì phải nạp lại hệ điều hành và khởi chạy ứng dụng từ đầu (Cold boot), Hibernate cho phép ứng dụng “thức dậy” ngay lập tức.
  • Duy trì trạng thái: Rất hữu ích cho các ứng dụng mất nhiều thời gian để khởi tạo bộ nhớ đệm (Cache) hoặc các tính toán dở dang.
  • Giữ nguyên định danh: Instance ID, IP riêng (Private IP) và IP công cộng (Elastic IP) vẫn được giữ nguyên.

13.3. Điều kiện để sử dụng Hibernate

Để tính năng này hoạt động, bạn cần đảm bảo các tiêu chí kỹ thuật sau:

  • Root Volume: Phải là ổ đĩa EBS (không hỗ trợ Instance Store) và phải được Mã hóa (Encrypted) để đảm bảo an toàn cho dữ liệu RAM khi lưu xuống đĩa.
  • Dung lượng EBS: Ổ cứng phải đủ trống để chứa toàn bộ dữ liệu từ RAM.
  • Loại Instance: Hỗ trợ hầu hết các dòng phổ biến như C3, C4, C5, M3, M4, M5, R3, R4, R5 và T2, T3 (chạy trên các hệ điều hành Linux và Windows).
  • Giới hạn RAM: Thường áp dụng cho các Instance có dung lượng RAM nhỏ hơn 150 GB.

13.4. Lưu ý quan trọng

  • Thời gian giữ chỗ: Trạng thái Hibernate không thể kéo dài quá 60 ngày.
  • Instance Store: Mọi dữ liệu trên ổ đĩa tạm (Instance Store) sẽ bị mất khi Hibernate.
  • Thay đổi cấu hình: Bạn không thể thay đổi loại Instance (Instance Type) hoặc kích thước Instance trong khi nó đang ở trạng thái Hibernate.

Mẹo của Chuyên gia: Hãy sử dụng Hibernate cho các ứng dụng có “thời gian khởi động lâu” (Long-running initialization) để tối ưu hóa cả về thời gian phản hồi lẫn chi phí vận hành.

Top bài viết trong tháng

Lên đầu trang

FORM ỨNG TUYỂN

Click or drag a file to this area to upload.
File đính kèm định dạng .docs/.pdf/ và nhỏ hơn 5MB