Trong bài này, mình sẽ hướng dẫn bạn cách tạo một máy ảo Amazon EC2 chạy hệ điều hành Amazon Linux, hoàn toàn miễn phí (nếu bạn đang dùng Free Tier). Đừng lo nếu bạn chưa biết gì về AWS, mình sẽ giải thích từng bước thật dễ hiểu.
Xem thêm:
Tổng quan về AWS Cloud | Region & AZ – Bài 1
Giới thiệu về IAM: Users, Groups, Policys – Bài 2
AWS Budget – Thiết lập ngân sách và cảnh báo chi phí – Bài 3
1. Hướng dẫn tạo EC2 Instance Amazon Linux
1.1. Tạo EC2 Instance trên AWS
Bước 1: Truy cập AWS EC2 Console:
- Đăng nhập vào tài khoản AWS.
- Tìm EC2 trong thanh tìm kiếm và nhấn vào dịch vụ này.
- Trong trang quản lý EC2, chọn Instances → Launch Instances.


Bước 2: Đặt Tên Cho Instance:
AWS cho phép bạn đặt tên và gắn thẻ (tags) cho instance của mình.
- Trong phần Name and Tags, nhập tên My First Instance.
- Nếu muốn gắn thêm thẻ (tag), bạn có thể thêm nhưng không bắt buộc.

1.2. Chọn hệ điều hành (Amazon Machine Image – AMI)
EC2 cho phép bạn chọn nhiều hệ điều hành khác nhau. Trong bài viết này, chúng ta sẽ sử dụng Amazon Linux 2 vì nó miễn phí, nhẹ, bảo mật tốt, và hỗ trợ sẵn các công cụ AWS
- Amazon Linux 2 AMI (Free tier eligible)
- Architecture: 64-bit (x86)

1.3. Chọn loại Instance (Instance Type)
AWS cung cấp nhiều loại instance với tài nguyên phần cứng khác nhau.
- Loại mặc định:
t2.micro(MIỄN PHÍ trong Free Tier) - Thông số:
- 1 vCPU
- 1 GB RAM
- Tối ưu cho ứng dụng nhẹ
Bạn có thể chọn các loại instance mạnh hơn nếu cần nhiều tài nguyên hơn.

1.4. Tạo và cấu hình key pair để SSH vào Instance
Key Pair là khóa bảo mật giúp bạn truy cập SSH vào máy chủ từ xa.
Nếu chưa có key pair, bạn cần tạo mới:
- Nhấn vào Create New Key Pair.
- Đặt tên là EC2_Tutorial.
- Chọn RSA làm thuật toán mã hóa.
- Chọn định dạng:
.pemcho Mac/Linux/Windows 10+.ppkcho Windows 7/8 (dùng với PuTTY)
- Tải xuống.
Lưu ý: Nếu mất file key, bạn sẽ không thể đăng nhập vào EC2 instance!


1.5. Thiết lập mạng và bảo mật (Networking setting)
EC2 cần có một Security Group để kiểm soát luồng dữ liệu vào/ra.
Cấu hình Security Group:
- Cho phép SSH (Port 22): Để truy cập từ xa.
- Cho phép HTTP (Port 80): Để chạy web server.
Các bước thực hiện:
- Trong phần Network settings, chọn Create new security group.
- Thêm Inbound rules như sau:
- SSH (22): Allow from Anywhere (0.0.0.0/0)
- HTTP (80): Allow from Anywhere (0.0.0.0/0)
- Giữ nguyên các thiết lập khác.

1.6. Cấu hình ổ đĩa lưu trữ (Storage Configuration)
Mặc định AWS cung cấp:
- 8GB ổ đĩa EBS gp2 (Free tier được hỗ trợ lên đến 30GB).
- Chế độ Delete on Termination (xóa ổ đĩa khi instance bị xóa).
Giữ nguyên thiết lập mặc định.

1.7. Cài đặt Web Server tự động bằng User Data
AWS hỗ trợ User Data, cho phép bạn tự động chạy các lệnh khi instance khởi động lần đầu.
Chúng ta sẽ cài đặt một web server Apache bằng cách thêm đoạn mã sau vào User Data:
#!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<h1>Hello World from $(hostname -I)</h1>" > /var/www/html/index.html
Ý nghĩa đoạn mã trên:
- Cập nhật hệ thống (
yum update -y) - Cài đặt Apache (
yum install -y httpd) - Khởi động dịch vụ web (
systemctl start httpd) - Kích hoạt Apache để chạy tự động (
systemctl enable httpd) - Tạo trang web Hello World
Cách thêm User Data:
Trong phần Advanced Details, tìm User Data. Dán đoạn mã trên vào ô nhập liệu:

1.8. Kiểm tra và khởi chạy EC2 Instance
Sau khi hoàn thành các bước trên, kiểm tra lại toàn bộ thiết lập.
- Xác nhận instance name, AMI, instance type, key pair, security group…
- Nhấn Launch Instance để khởi chạy.
Đợi vài giây và kiểm tra trạng thái “Running” trong danh sách instances.

Truy cập EC2 Instance và kiểm tra Web Server:
Bước 1: Xác định địa chỉ IP
- Vào EC2 console → Chọn instance vừa tạo.
- Sao chép Public IPv4 address (VD: 3.250.XX.XX).
Bước 2: Kiểm tra web server
- Mở trình duyệt và nhập: ip


1.9. Quản lý EC2 Instance
Dừng Instance khi không sử dụng
Vào EC2 Console → Chọn instance → Instance State → Stop Instance.
Khi dừng, AWS không tính phí CPU, nhưng ổ đĩa vẫn bị tính phí.
Xóa Instance hoàn toàn
Vào Instance State → Terminate Instance. Khi xóa, tất cả dữ liệu trên ổ đĩa sẽ bị mất.
2. Security Groups trên EC2 Instance
2.1. Security Groups trên AWS là gì?
Security Groups(SG) hoạt động như một firewall xung quanh EC2 instances. SG kiểm soát quyền truy cập dựa trên các địa chỉ IP hoặc các nhóm bảo mật khác (security groups). Khi tạo một Security Group, bạn có thể cấu hình các quy tắc để quyết định lưu lượng từ bên ngoài vào hoặc từ EC2 instance ra bên ngoài.
Ví dụ, khi bạn truy cập vào một EC2 instance từ máy tính qua Internet, bạn sẽ tạo một Security Group bao quanh EC2 instance đó. Quy tắc này sẽ cho phép hoặc chặn lưu lượng từ máy tính cđến EC2 instance, tùy thuộc vào cấu hình của bạn.

2.2. Cách hoạt động của Security Groups
Security Groups có nhiệm vụ kiểm soát lưu lượng vào và ra dựa trên các cổng và địa chỉ IP. Các quy tắc của Security Groups sẽ quy định:
- Loại giao thức (TCP, UDP, ICMP)
- Cổng giao tiếp (ví dụ: port 22 cho SSH, port 80 cho HTTP)
- Phạm vi IP được phép truy cập (IPv4 hoặc IPv6)
Ví dụ, nếu bạn muốn cho phép kết nối SSH từ máy tính của bạn, bạn sẽ cấu hình Security Group để cho phép lưu lượng vào qua cổng 22 từ địa chỉ IP của bạn. Nếu có ai khác cố gắng truy cập mà không phải từ IP của bạn, họ sẽ bị chặn.

2.3. Các quy tắc mặc định của Security Groups
- Inbound Traffic (Lưu lượng vào): Mặc định, tất cả lưu lượng vào đều bị chặn. Bạn phải cấu hình quy tắc cụ thể để cho phép lưu lượng từ những IP và cổng cụ thể.
- Outbound Traffic (Lưu lượng ra): Mặc định, tất cả lưu lượng ra ngoài đều được phép. Điều này có nghĩa là EC2 instance có thể truy cập Internet mà không gặp trở ngại.
Ngoài ra, Security Groups còn có một số đặc điểm:
- Một Security Group có thể được gán cho nhiều EC2 instances và một EC2 instance có thể có nhiều Security Groups cùng lúc.
- Security Groups được gắn liền với sự kết hợp giữa Region và VPC. Nếu bạn chuyển sang Region hoặc VPC khác, bạn phải tạo lại Security Group mới.
- Security Groups bao quanh bên ngoài EC2 instances. Nếu lưu lượng bị chặn, EC2 instance sẽ không nhận thấy bất kỳ lưu lượng nào vì Security Group đã chặn lưu lượng trước khi lưu lượng đến được EC2 instance.
3. EC2 Hibernate AWS – Tăng tốc khởi động Instance
Khi làm việc với EC2, bạn có thể dừng (stop) hoặc hủy (terminate) một instance. Khi stop instance, dữ liệu trên ổ EBS sẽ được giữ nguyên cho đến khi bạn khởi động lại. Nếu bạn terminate instance và đã cấu hình để ổ root volume bị xóa cùng với instance, ổ này sẽ bị xóa.
Khi khởi động lại instance, hệ điều hành sẽ khởi động và các script trong EC2 User Data sẽ được thực thi, sau đó các ứng dụng của bạn sẽ bắt đầu hoạt động. Quá trình này có thể mất thời gian.
Vậy làm sao để giữ nguyên trạng thái RAM của Instance?
3.1. EC2 Hibernate AWS là gì?
Tính năng EC2 Hibernate giúp giữ nguyên trạng thái bộ nhớ RAM của instance khi stopped. Điều này có nghĩa là khi bạn restart lại máy, thời gian khởi động sẽ nhanh hơn vì hệ điều hành không phải khởi động lại từ đầu; thay vào đó, nó chỉ được “đóng băng” và duy trì trạng thái ban đầu.
Dữ liệu trong RAM sẽ được ghi vào một file trên ổ EBS root. Để sử dụng tính năng này, yêu cầu ổ EBS root phải được mã hóa và có đủ dung lượng để chứa toàn bộ dữ liệu RAM.
EC2 Hibernate được dùng trong trường hợp nào:
Hibernate phù hợp khi bạn muốn duy trì các tiến trình lâu dài mà không muốn dừng. Bạn cũng có thể sử dụng khi bạn muốn tiết kiệm trạng thái RAM, khởi động nhanh mà không phải khởi động lại các dịch vụ tốn thời gian. Nó giúp giữ nguyên trạng thái các dịch vụ đang chạy ngay cả khi bạn hibernate instance.
3.2. Cách EC2 Hibernate hoạt động
- Đầu tiên, instance đang chạy và có dữ liệu trong RAM.
- Khi quá trình hibernate bắt đầu, instance sẽ chuyển sang trạng thái dừng và dữ liệu RAM sẽ được lưu vào ổ EBS.
- Sau đó, instance sẽ tắt và dữ liệu RAM biến mất (vì khi instance dừng, RAM sẽ bị giải phóng), nhưng ổ EBS vẫn giữ lại file chứa dữ liệu RAM.
- Khi instance khởi động lại, dữ liệu RAM sẽ được tải lại từ ổ EBS vào bộ nhớ của instance.

3.3. Một số lưu ý
- Hỗ trợ nhiều dòng instance khác nhau: C3, C4, C5, I3, M3, M4, R3, R4, T2, T3, …
- Dung lượng RAM của instance phải nhỏ hơn 150 GB.
- Không hỗ trợ cho các instance loại bare metal.
- Hỗ trợ trên nhiều hệ điều hành như: Amazon Linux 2, Linux AMI, Ubuntu, RHEL, CentOS & Windows…
- Yêu cầu ổ EBS root phải được mã hóa và có đủ dung lượng để chứa dữ liệu RAM.
- Có thể áp dụng cho các loại instance như on-demand, reserved, và spot.
- Thời gian hibernate tối đa hiện tại là 60 ngày.
Bài viết cùng chủ đề:
EC2 Placement Groups trong AWS – Bài 6
Cảm ơn bạn đã tham khảo AWS Certified Solutions Architect Associate trên ttnguyen.net