EC2 (Elastic Compute Cloud) là dịch vụ máy chủ ảo nền tảng nhất của AWS — gần như mọi bài lab AWS đều bắt đầu từ việc tạo một EC2 instance. Trong bài Lab 1 thuộc nhóm EC2 Fundamentals này, chúng ta sẽ tạo EC2 Instance trên AWS hoàn chỉnh từ đầu đến cuối: tạo Security Group, launch instance Ubuntu kèm key pair, cài sẵn web server Apache bằng User Data, kết nối vào máy chủ bằng 2 cách (SSH và EC2 Instance Connect), sau đó tạo IAM Role quyền S3 Full Access gắn vào instance và kiểm tra bằng lệnh aws s3 ls.
Điều kiện duy nhất là bạn đã có tài khoản AWS (nếu chưa có, xem bài hướng dẫn đăng ký tài khoản AWS miễn phí nhận $200 Credit và làm 5 lab Explore AWS) và đăng nhập được vào AWS Management Console. Tên các tài nguyên trong bài (Security Group, instance, IAM Role) được đặt theo mẫu lab của mình — khi làm theo, bạn có thể giữ nguyên hoặc đổi theo quy ước đặt tên của bạn.
Mục lục bài viết:
- 1. Tạo Security Group cho EC2
- 2. Tạo EC2 Instance trên AWS với Ubuntu (t3.micro)
- 3. Kết nối EC2 qua SSH bằng key pair
- 4. Kết nối EC2 qua EC2 Instance Connect trên Console
- 5. Truy cập web server qua Public IP
- 6. Tạo IAM Role S3 Full Access và gắn vào EC2
- 7. Kiểm tra: chạy lệnh aws s3 ls trên EC2
- 8. Lời kết
1. Tạo Security Group cho EC2
Security Group đóng vai trò như một tường lửa ảo của EC2, quyết định cổng nào được mở ra Internet. Ở bước này chúng ta tạo Security Group cho phép truy cập EC2 qua SSH (để quản trị) và qua HTTP (để xem web server cài ở bước sau).
Tại giao diện EC2 Console, chọn Security Groups ở menu phía bên trái:


Chọn Create security group:

Nhập các thông tin như trong hình:
- Security group name:
EC2-lab1-phongdinh-info - Description:
Allow ssh and http from internet - VPC: chọn Default VPC (nếu account của bạn có nhiều VPC)
- Inbound rules: mở cổng SSH (22) và HTTP (80) như hình bên dưới
- Outbound rules: để mặc định (cho phép mọi traffic ra ngoài) như hình bên dưới
- Tags – optional: có thể bỏ qua hoặc gắn tag tùy nhu cầu


Sau khi điền xong thông tin, chọn Create security group để hoàn tất:

2. Tạo EC2 Instance trên AWS với Ubuntu (t3.micro)
Tiếp theo chúng ta sẽ tạo EC2 ở Default VPC. Mặc định Region nào cũng có sẵn một Default VPC — nếu bạn không xóa thì nó luôn ở đó và không ảnh hưởng gì đến hệ thống; lỡ xóa mất thì vẫn tạo lại được.
Trong quá trình tạo EC2 Instance trên AWS, chúng ta cũng sẽ tạo luôn key pair — đây là cách để kết nối đến EC2 thông qua SSH ở bước sau.
Tại EC2 Console, chọn Instances ở menu bên trái, rồi chọn Launch instances:

Đặt Name cho instance là EC2-lab-phongdinh-info và nhấn vào tên để Add additional tags nếu cần:



OS Images (AMI): bạn có thể để mặc định hoặc chọn OS theo nhu cầu — trong bài lab này mình chọn Ubuntu.

Instance type: chọn t3.micro — loại instance nhỏ gọn, thuộc diện Free Tier eligible, đủ dùng cho các bài lab cơ bản.
Để tạo key pair mới, nhấn Create new key pair:

Đặt Key pair name là EC2-Lab1, sau đó Download key pair (file .pem) và lưu trữ cẩn thận — file này chỉ tải được một lần duy nhất và là chìa khóa SSH vào máy chủ:

Chọn lại key pair vừa tạo trong danh sách:

Network: sử dụng Default VPC, nhớ Enable public IP (Auto-assign public IP) và chọn đúng Security Group vừa tạo ở mục 1:


Configure storage: để mặc định.

Mở mục Advanced details và dán đoạn script sau vào phần User Data (lưu ý copy chính xác) — script này tự động cài Apache và tạo sẵn trang chủ ngay khi instance khởi động lần đầu:
#!/bin/bash
apt update -y
apt install -y apache2
systemctl start apache2
systemctl enable apache2
echo "Chao mung ban den trang blog Phong Dinh" > /var/www/html/index.html
Cuối cùng, nhấn Launch instance để bắt đầu tạo:

Instance đang ở trạng thái starting:


Đợi một chút cho đến khi EC2 chuyển sang trạng thái running hoàn toàn:

3. Kết nối EC2 qua SSH bằng key pair
Dùng Git Bash (đối với Windows) hoặc Terminal (đối với Mac/Linux) tại thư mục có chứa file key pair. Trước hết, lấy lệnh SSH mẫu tại trang chi tiết của instance: chọn instance → Connect → thẻ SSH client, AWS hiển thị sẵn lệnh mẫu để bạn đối chiếu:


Đứng tại thư mục chứa file .pem, chạy 2 lệnh sau:
chmod 400 EC2-Lab1.pem
ssh -i "EC2-Lab1.pem" ubuntu@<Public-IP-cua-EC2>
- Lệnh 1 để set quyền cho file
.pem(SSH sẽ từ chối kết nối nếu file key để quyền quá mở). - Lệnh 2 để SSH vào EC2 — lưu ý đúng tên file key pair và thay
<Public-IP-cua-EC2>bằng địa chỉ Public IP thật của instance.

4. Kết nối EC2 qua EC2 Instance Connect trên Console
Ngoài SSH từ máy cá nhân, chúng ta có thể kết nối đến EC2 ngay trên chính Management Console — rất tiện khi không có sẵn file key hoặc đang dùng máy lạ.
Chọn Instance → Connect:


Lưu ý trường User name (với Ubuntu là ubuntu), rồi click Connect. Vậy là chúng ta đã connect được đến instance (OS: Ubuntu 22.04) ngay trong trình duyệt:

5. Truy cập web server qua Public IP
Ở mục 2, chúng ta đã dùng User Data để cài sẵn Apache server. Vì vậy bây giờ có thể dùng trình duyệt web để truy cập đến server thông qua HTTP.
Lấy địa chỉ Public IP của EC2 trong trang chi tiết instance:

Mở trình duyệt và truy cập http://{public ip} (lưu ý là http chứ không phải https) — nếu thấy trang chào mừng hiện ra là web server đã chạy thành công:

6. Tạo IAM Role S3 Full Access và gắn vào EC2
Cách đúng chuẩn để EC2 truy cập các dịch vụ AWS khác là gắn IAM Role vào instance, thay vì nhúng Access Key cố định vào máy chủ. Trong bài lab này, chúng ta tạo role với policy AmazonS3FullAccess để EC2 có toàn quyền với S3.
Tại IAM Console, vào menu Roles → Create role:


Chọn EC2 làm trusted entity (đối tượng được nhận role này):

Tìm và chọn AWS Managed policy AmazonS3FullAccess:

Điền tên Role là EC2-lab1-S3FullAccessRole và nhấn Create role:


Sau khi role được tạo xong, quay lại EC2 Console để gắn role vào instance: chọn instance → Actions → Security → Modify IAM role:

Chọn role EC2-lab1-S3FullAccessRole và nhấn Update IAM role:


7. Kiểm tra: chạy lệnh aws s3 ls trên EC2
SSH đến EC2 (theo mục 3 hoặc 4) và thực hiện lệnh sau để test kết nối đến S3:
aws s3 ls
(Mẹo nhỏ: Trên một số bản Ubuntu Server AMI mới, nếu gõ lệnh báo aws: command not found, bạn chỉ cần chạy sudo snap install aws-cli --classic hoặc sudo apt update && sudo apt install -y awscli để cài đặt công cụ AWS CLI rồi chạy lại lệnh aws s3 ls).
Nếu account của bạn chưa có bucket nào thì lệnh sẽ không hiển thị gì cả — nhưng chỉ cần không báo lỗi (không có thông báo Access Denied hay lỗi credentials) là đã thành công: EC2 đã nhận được quyền S3 thông qua IAM Role vừa gắn, hoàn toàn không cần cấu hình Access Key thủ công.
8. Lời kết
Hoàn thành bài Lab 1, bạn đã nắm vững quy trình tạo EC2 Instance trên AWS cùng các thao tác nền tảng nhất: tạo Security Group mở cổng SSH/HTTP, launch EC2 instance Ubuntu t3.micro kèm key pair, cài web server tự động bằng User Data, kết nối máy chủ qua SSH và EC2 Instance Connect, truy cập web qua Public IP, và gắn IAM Role để EC2 làm việc với S3 theo đúng best practice. Đây là nền móng cho hầu hết các bài lab AWS tiếp theo.
Lưu ý dọn dẹp: nếu làm lab xong và chưa cần dùng tiếp, hãy Terminate instance trong EC2 Console để tránh phát sinh chi phí ngoài ý muốn (Security Group, key pair và IAM Role có thể giữ lại cho lab sau).

Thảo luận 0 bình luận Viết bình luận Thu gọn