Site logo

AWS Cloud Mastery

Hướng dẫn chi tiết tạo EC2 Instance trên AWS

Amazon Elastic Compute Cloud (EC2) là một dịch vụ điện toán đám mây của Amazon Web Services (AWS), cung cấp các máy chủ ảo (instances) linh hoạt, có thể mở rộng theo nhu cầu. Dịch vụ này rất phù hợp cho việc phát triển, triển khai và quản lý ứng dụng trên môi trường đám mây.

Bài viết này sẽ hướng dẫn bạn cách tạo và cài đặt 1 EC2 instance.

Đăng Nhập Vào AWS Management Console

Lựa chọn Region để tạo EC2 Instance

Region là khu vực nơi tài nguyên của bạn được triển khai. Mỗi region có vị trí và mức giá sử dụng khác nhau. Trong hướng dẫn này, tôi chọn region Asia Pacific (Tokyo) (ap-northeast-1).

Truy cập dịch vụ EC2

instance name và AMI

Khởi tạo EC2 Instance

  • Từ EC2 Dashboard, nhấn nút "Launch Instance" để bắt đầu quá trình tạo instance.

instance name và AMI

Đặt tên và chọn AMI (Amazon Machine Image)

Đặt tên cho instance

Tại mục: Name and Tags:, Bạn có thể đặt tên cho instance của mình để dễ dàng quản lý và nhận diện. Ví dụ: "Web Server Production" hoặc "machine-001"

Chọn AMI

Tại mục: Application and OS Images (Amazon Machine Image), chọn AMI phù hợp với nhu cầu của bạn.

AMI là template chứa hệ điều hành và phần mềm cần thiết để khởi tạo instance.

  • AWS cung cấp nhiều AMI có sẵn như:
    • Amazon Linux
    • Ubuntu
    • Windows Server
    • Red Hat Enterprise Linux
    • và nhiều hệ điều hành khác
  • Bạn cũng có thể chọn AMI từ AWS Marketplace hoặc AMI tự tạo.

Trong ví dụ này, chúng ta sẽ chọn "Amazon Linux 2023 AMI" vì đây là AMI được AWS tối ưu hóa và được hỗ trợ tốt.

instance name và AMI

Chọn Instance Type

Tại mục: Choose an Instance Type , bạn sẽ chọn loại instance mà bạn muốn sử dụng.

Instance Type xác định cấu hình phần cứng của máy chủ ảo (CPU, RAM, network capacity).

  • Chọn loại instance phù hợp với nhu cầu của bạn.
  • Đối với môi trường test hoặc website nhỏ, t2.micro là một lựa chọn tốt (thuộc Free tier).
  • Đối với môi trường production, có thể cân nhắc các loại như t3.medium, m5.large tùy theo yêu cầu.

Trong bài này, tôi chọn t2.micro với 1 vCPU và 1GB RAM, phù hợp cho demo và miễn phí vì thuộc diện Free Tier.

Instance Type & Key Pair

Cấu hình Key Pair

Tại mục Key pair (login information), bạn sẽ cấu hình key pair để kết nối với instance.

Key pair dùng để SSH vào instance. Bạn có thể:

  • Tạo một key pair mới
  • Chọn một key pair đã có sẵn
  • Tiếp tục mà không cần key pair (không khuyến khích)

Tạo key pair mới:

  • Nhấp vào "Create new key pair"
  • Đặt tên cho key pair, ví dụ: "my-ec2-keypair"
  • Chọn loại key pair: RSA hoặc ED25519
  • Chọn định dạng file: .pem (cho OpenSSH) hoặc .ppk (cho PuTTY)
  • Nhấp "Create key pair" và tải xuống file private key

Lưu ý quan trọng: Cất giữ file private key này ở nơi an toàn. Nếu mất file này, bạn sẽ không thể kết nối SSH vào instance.

Cấu hình Network Settings

Tại mục Configure Network Settings, bạn sẽ cấu hình các thông số mạng cho instance.

Chọn VPC và Subnet

  • VPC (Virtual Private Cloud): Mạng ảo nơi instance sẽ được triển khai
  • Subnet: Phân đoạn mạng con trong VPC

Nếu bạn chưa tạo VPC riêng, có thể sử dụng Default VPC.

Cấu hình Auto-assign Public IP

  • Enable: Instance sẽ có địa chỉ IP public để truy cập từ internet
  • Disable: Instance chỉ có IP private, không thể truy cập trực tiếp từ internet

Cấu hình Security Group

Security Group hoạt động như firewall để kiểm soát lưu lượng vào/ra instance.

  • Tạo Security Group mới hoặc chọn từ danh sách có sẵn
  • Thêm các rules cho inbound traffic:
    • SSH (port 22): Cho phép kết nối SSH từ IP của bạn
    • HTTP (port 80): Nếu bạn cần chạy web server
    • HTTPS (port 443): Nếu bạn cần chạy web server với SSL
    • Custom TCP: Thêm các port tùy chỉnh khác nếu cần

Instance Type & Key Pair

Cấu hình Storage

Tại mục Configure Storage, bạn có thể cấu hình dung lượng ổ cứng - EBS (Elastic Block Store) cho instance.

Mỗi EC2 instance cần ít nhất một ổ đĩa để chứa hệ điều hành và dữ liệu.

  • Volume Type: Chọn loại ổ đĩa
    • General Purpose SSD (gp2/gp3): Cân bằng giữa giá cả và hiệu năng
    • Provisioned IOPS SSD (io1/io2): Hiệu năng cao, phù hợp với database
    • Throughput Optimized HDD (st1): Cho workload đọc/ghi tuần tự lớn
    • Cold HDD (sc1): Lưu trữ ít truy cập, giá rẻ
  • Size (GiB): Kích thước ổ đĩa, tùy theo nhu cầu
  • Delete on Termination: Xác định có xóa ổ đĩa khi terminate instance hay không

Ở hướng dẫn này, tôi chọn mặc định 8GB

Instance Type & Key Pair

Advanced Details (tùy chọn)

Tại mục Advanced Details, bạn có thể cấu hình một số tùy chọn nâng cao cho instance.

  • IAM Role: Gán IAM role cho instance để truy cập các dịch vụ AWS khác mà không cần credentials
  • Shutdown behavior: Xác định hành động khi shutdown (Stop hoặc Terminate)
  • Enable termination protection: Ngăn chặn việc vô tình terminate instance
  • User data: Script sẽ được chạy khi instance khởi động lần đầu

Ví dụ về User data để cài đặt web server:

Tại mục Advanced details -> User Data, nhập script sau để cài đặt nginx khi khởi động lần đầu :

#!/bin/bash
dnf update -y
dnf install nginx -y
systemctl start nginx
systemctl enable nginx
# echo "<h1>Hello from $(hostname -f)</h1>" > /usr/share/nginx/html/index.html
echo "<h1>Hello from: $(hostname -f)</h1>" > /usr/share/nginx/html/index.html

Xem lại và khởi tạo Instance

  • Xem lại tất cả cài đặt để đảm bảo chúng đã đúng
  • Nhấp vào "Launch instance" để bắt đầu quá trình khởi tạo

Launch Instance

Sau khi tạo thì bạn chờ 1 chút để EC2 instance khởi tạo.

Xem EC2 Instance

Launch Instance Vậy là bạn đã tạo thành công EC2 Instance. Để ý Public IPV4: 13.112.242.48 Đây là địa chỉ dùng để truy câp tới EC2 Instance từ Internet.

Kết nối tới EC2 instance

Kết nối thông qua SSH (cho Linux instances)

Đối với máy tính Windows:

  1. Sử dụng PuTTY hoặc Windows Terminal
  2. Chuyển đổi file .pem sang .ppk nếu cần (sử dụng PuTTYgen)
  3. Kết nối tới instance với username (ec2-user, ubuntu, etc. tùy thuộc vào AMI) và Public IP
ssh -i /đường/dẫn/tới/key-pair.pem ec2-user@public-ip-address

Đối với máy tính Mac/Linux:

  1. Mở Terminal
  2. Cấp quyền cho file key:
chmod 400 /đường/dẫn/tới/key-pair.pem
  1. Kết nối SSH:
ssh -i /đường/dẫn/tới/key-pair.pem ec2-user@public-ip-address

Kết nối thông qua RDP (cho Windows instances)

  1. Lấy password bằng cách nhấp chuột phải vào instance và chọn "Get Windows password"
  2. Upload file .pem key pair để decrypt password
  3. Sử dụng Remote Desktop Connection với IP và password đã lấy

Kết nối thông qua EC2 Instance Connect

  1. Chọn instance trong EC2 Console
  2. Nhấp vào "Connect"
  3. Chọn "EC2 Instance Connect"
  4. Nhấp "Connect" để mở terminal trong trình duyệt

Thử kết nối thôi:

ssh -i ~/Desktop/ducxinh-demo/private/ducxinh-demo.pem ec2-user@ec2-13-112-242-48.ap-northeast-1.compute.amazonaws.com

# Hoặc:
ssh -i ~/Desktop/ducxinh-demo/private/ducxinh-demo.pem ec2-user@13.112.242.48

Nếu gặp lỗi:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         WARNING: UNPROTECTED PRIVATE KEY FILE!          
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'xxx/xxxx.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "xxx/xxxx.pem": bad permissions
xxx@xxx.xxx.xxx.xxx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Hãy chỉnh sửa quyền truy cập của tệp SSH key bằng lệnh sau:

chmod 600 ~/Desktop/ducxinh-demo/private/ducxinh-demo.pem

Sau đó, thử kết nối lại. Nếu thành công thì sẽ thấy kết quả như sau Launch Instance

Quản lý EC2 Instance

Các thao tác quản lý cơ bản:

  • Stop: Tạm dừng instance (không mất dữ liệu, không tính phí compute nhưng vẫn tính phí storage)
  • Start: Khởi động lại instance đã dừng
  • Reboot: Khởi động lại instance (giống như restart máy tính)
  • Terminate: Xóa instance hoàn toàn (mất dữ liệu nếu không có snapshot hoặc EBS có Delete on Termination = true)

Để thực hiện các thao tác này:

  1. Chọn instance trong EC2 Console
  2. Nhấp chuột phải hoặc sử dụng menu "Instance state"
  3. Chọn hành động tương ứng

Các vấn đề thường gặp.

Không thể kết nối server hoặc bị lỗi timeout.

Cách giải quyết: Kiểm tra lại Security group mục Inbound và cho phép IP hiện tại của bạn. Để kiểm tra IP hiện tại của bạn hãy truy cập vào đây: Kiểm tra IP

Kết luận

Như vậy, bạn đã tạo thành công một máy chủ Linux (EC2 instance) trên AWS. Máy chủ này có thể được sử dụng để học tập hoặc triển khai website.

Mở rộng.

Trên đây chỉ là hướng dẫn cơ bản, bạn có thể tìm hiểu kỹ hơn những phần sau:

  • Cấu hình Tags để quản lý tài nguyên hiệu quả hơn.
  • Gắn IAM Role cho EC2 để quản lý quyền truy cập.
  • Tự động hóa vòng đời của instance bằng cách sử dụng Auto Scaling .
  • Thiết lập môi trường LEMP Stack (Linux, Nginx, MySQL, PHP) để triển khai ứng dụng.