AWS EC2: Máy chủ ảo đầu tiên của bạn trên đám mây
Giới thiệu
Amazon EC2 (Elastic Compute Cloud) là một trong những dịch vụ cơ bản và quan trọng nhất của AWS. Nó cho phép bạn tạo và quản lý các máy chủ ảo (gọi là instance) trên đám mây — thay vì mua máy vật lý và đặt trong data center.
Với EC2, bạn có thể:
- Chạy website, ứng dụng backend, database, hoặc bất kỳ phần mềm nào cần máy chủ.
- Tăng/giảm số lượng máy theo nhu cầu (elastic scaling).
- Chỉ trả tiền cho thời gian sử dụng — tính theo giây hoặc giờ.
Bài viết này sẽ hướng dẫn bạn hiểu rõ EC2, cách tạo instance, và những điều cần lưu ý khi sử dụng.
Các khái niệm cơ bản của EC2
Trước khi tạo máy, bạn cần hiểu một số thuật ngữ:
1. Instance
Là một máy chủ ảo đang chạy trên AWS. Mỗi instance có CPU, RAM, ổ đĩa, hệ điều hành (Linux, Windows, v.v.).
2. AMI (Amazon Machine Image)
Là “bản mẫu” hệ điều hành để tạo instance. Ví dụ:
- Amazon Linux 2
- Ubuntu Server
- Windows Server
Bạn có thể dùng AMI do AWS cung cấp hoặc tự tạo từ máy hiện có.
3. Instance Type
Xác định cấu hình phần cứng của máy. Tên dạng t3.micro
, m5.large
, c5.xlarge
, v.v.
Một số loại phổ biến:
- t-series (t3.micro, t3.small): Dành cho dev, test, tải nhẹ — có “burst” CPU.
- m-series (m5.large): Cân bằng CPU/RAM — phù hợp ứng dụng tổng quát.
- c-series: Tập trung vào CPU — dành cho tính toán nặng.
- r-series: Nhiều RAM — dành cho database, cache.
Lưu ý: t3.micro
nằm trong Free Tier — miễn phí 750 giờ/tháng trong 12 tháng đầu.
4. Key Pair
Là cặp khóa (public/private key) dùng để đăng nhập vào instance Linux qua SSH. Bạn phải tải file .pem khi tạo — nếu mất, bạn không thể đăng nhập lại.
5. Security Group
Là “tường lửa” cho instance. Bạn định nghĩa:
- Port nào được mở (22 cho SSH, 80 cho HTTP, 443 cho HTTPS…)
- IP nào được phép kết nối (0.0.0.0/0 = mọi nơi, hoặc giới hạn theo IP cụ thể).
Mặc định, tất cả port đều bị chặn — bạn phải mở thủ công.
6. EBS (Elastic Block Store)
Là ổ đĩa ảo gắn vào instance. Dữ liệu trên EBS không mất khi tắt máy (trừ khi bạn xóa volume).
Hướng dẫn tạo EC2 instance
Bước-by-bước trên AWS Console:
- Đăng nhập AWS Console → tìm “EC2” → chọn Launch Instance.
- Name: Đặt tên (ví dụ: web-server-dev).
- Application and OS Images: Chọn AMI — ví dụ “Ubuntu Server 22.04 LTS”.
- Instance type: Chọn
t3.micro
(miễn phí trong Free Tier). - Key pair: Tạo mới hoặc chọn sẵn. Nhớ tải file .pem về máy.
- Network settings:
- Chọn VPC mặc định.
- Tích “Allow SSH traffic from” → chọn “My IP” (an toàn hơn “Anywhere”).
- Nếu cần web, tích thêm “Allow HTTP/HTTPS traffic from internet”.
- Configure storage: Để mặc định 8GB (EBS gp2) — đủ cho thử nghiệm.
- Nhấn Launch instance.
Sau vài giây, instance sẽ ở trạng thái running. Bạn có thể thấy:
- Public IPv4 DNS: Dùng để kết nối từ internet.
- Instance ID: Định danh duy nhất.
Kết nối vào instance qua SSH
Với máy Linux/macOS, mở terminal và chạy:
# Đặt quyền cho file key (chỉ đọc bởi bạn)
chmod 400 ~/Downloads/my-key.pem
# Kết nối (thay bằng public DNS của bạn)
ssh -i ~/Downloads/my-key.pem ubuntu@ec2-xx-xx-xx-xx.ap-southeast-1.compute.amazonaws.com
Lưu ý:
- Username tùy AMI:
ubuntu
(Ubuntu),ec2-user
(Amazon Linux),Administrator
(Windows). - Nếu bị lỗi “Permission denied”, kiểm tra lại security group và quyền file .pem.
So sánh EC2 với các dịch vụ khác
Nhiều người mới thường nhầm lẫn EC2 với các dịch vụ khác của AWS. Dưới đây là bảng so sánh ngắn:
Dịch vụ | Mục đích | Mức quản lý |
---|---|---|
EC2 | Tự quản lý máy chủ, linh hoạt cao | Người dùng quản lý toàn bộ OS |
Lambda | Chạy code không cần server (serverless) | AWS tự quản lý hạ tầng |
Elastic Beanstalk | Triển khai web/app nhanh, tự động hóa | Quản lý bán tự động |
Tình huống thực tế
Giả sử bạn muốn thử triển khai một website Flask trên Ubuntu:
- Tạo EC2 instance loại
t3.micro
. - Kết nối SSH và cài đặt Python + Flask.
- Chạy thử server với
flask run --host=0.0.0.0
. - Mở port 5000 trong Security Group.
Và chỉ vài phút sau, website của bạn đã online toàn cầu — ngay trên máy EC2!
Những lưu ý quan trọng
- Stop ≠ Terminate:
Stop
: Tạm dừng — giữ nguyên ổ đĩa, không tính phí compute (vẫn tính phí EBS).Terminate
: Xóa vĩnh viễn — mất hết dữ liệu!
- Public IP thay đổi khi stop/start: Nếu cần IP cố định, dùng Elastic IP.
- Không lưu dữ liệu quan trọng trực tiếp trên instance: Dùng EBS, S3, hoặc database riêng.
- Luôn giới hạn SSH: Tránh mở port 22 cho 0.0.0.0/0 — rất nguy hiểm.
- Theo dõi chi phí: Dù dùng Free Tier, nếu tạo instance không phải t3.micro, bạn vẫn bị tính tiền.
Kết luận
EC2 là nền tảng để bạn bắt đầu hành trình với AWS. Hiểu cách tạo, kết nối và quản lý instance sẽ giúp bạn triển khai ứng dụng, học DevOps, hoặc xây dựng hệ thống trên đám mây một cách an toàn.
Hãy bắt đầu với một instance t3.micro
, thử cài Nginx, chạy một script Python nhỏ — và quan trọng nhất: nhớ stop hoặc terminate khi không dùng nữa để tránh hóa đơn bất ngờ!
Bài tiếp theo, chúng ta sẽ tìm hiểu về VPC, Security Group nâng cao, và cách kết nối nhiều dịch vụ AWS với nhau.