🌍 Giới thiệu
Triển khai ứng dụng của bạn trên AWS một cách thủ công có thể mất nhiều thời gian và dễ mắc lỗi. Bạn có thể gặp phải:
- Lưu lượng không được phân phối đều giữa các instance ❌
- Cài đặt thủ công các kiểm tra tình trạng và chuyển đổi dự phòng ❌
- Thiếu khả năng mở rộng và tính khả dụng cao ❌
👉 Đó là lý do tại sao việc triển khai EC2 + ELB (Elastic Load Balancer) nổi bật.
Cuối bài viết, bạn sẽ hiểu cách triển khai một ứng dụng Spring Boot trên nhiều EC2 instance, thiết lập một Application Load Balancer và điều hướng lưu lượng một cách thông minh.
👉 Luồng: Trình duyệt → ELB → Các EC2 Instances chạy Spring Boot
🔒 Bước 1: Chuẩn bị ứng dụng Spring Boot của bạn
Trước khi tiếp cận AWS, hãy đóng gói dự án Spring Boot của bạn thành một tệp .jar có thể chạy:
mvn clean package
Bạn sẽ nhận được một tệp như app.jar trong thư mục target/.
✅ Chúng tôi giả định ứng dụng chạy trên cổng 8080
✅ Cần có Java và Maven được cài đặt trên máy của bạn
✅ Mục tiêu là triển khai .jar, không phải Docker
- Chúng tôi đã sử dụng ứng dụng Spring Boot
adaptive-ai-qmslàm ví dụ. Nhưng bạn có thể thay thế bằng bất kỳ ứng dụng web nào và cổng theo ứng dụng của bạn.
⚡ Bước 2: Khởi động EC2 Instances
Hãy khởi động hai EC2 instances cho ứng dụng Spring Boot của chúng ta:
- Vào AWS Console → EC2 → Launch Instance
- Hệ điều hành: Ubuntu Server 24.04 LTS (đủ điều kiện Free Tier)
- Loại instance: t2.micro
- Key Pair: Tạo/chọn một (để truy cập SSH)
- Cấu hình Security Group:
- SSH (22) → IP của bạn
- HTTP (80) → Từ mọi nơi
- Custom TCP (8080) → Từ mọi nơi (cho Spring Boot)
🎯 Khởi động hai EC2 instances với cấu hình giống nhau.
📜 Bước 3: Cài đặt Java & Triển khai ứng dụng Spring Boot
SSH vào cả hai instances:
ssh -i your-key.pem ubuntu@<EC2_PUBLIC_IP>
Cài đặt Java:
sudo apt update
sudo apt install openjdk-21-jdk -y
Tải ứng dụng của bạn lên bằng scp:
scp -i your-key.pem app.jar ubuntu@<EC2_PUBLIC_IP>:/home/ubuntu/
Chạy ứng dụng trong nền:
sudo nohup java -jar app.jar > app.log 2>&1 &
Giải thích:
nohup: Giữ cho tiến trình chạy sau khi đăng xuấtjava -jar: Chạy ứng dụng Spring Boot của bạn> app.log 2>&1 &: Ghi lại đầu ra và chạy trong nền
✅ Bây giờ truy cập ứng dụng của bạn qua:
http://<EC2_PUBLIC_IP>:8080/api/adapt/welcome
Lặp lại cho instance EC2 thứ hai.
🌐 Bước 4: Tạo Elastic Load Balancer (ALB)
Bây giờ chúng ta sẽ điều hướng lưu lượng đến cả hai EC2 instances thông qua một Load Balancer.
- Vào EC2 → Load Balancers
- Nhấn Create Load Balancer → Application Load Balancer
- Tên:
springboot-alb - Kiểu: Internet-facing
- VPC: Sử dụng default VPC
- Chọn AZs: Chọn nơi các EC2 của bạn đang chạy
- Security Group:
- Tạo một cái mới:
springboot-sg - Inbound Rules: Cho phép HTTP (80) và SSH (22)
Thiết lập Listener
- Giao thức: HTTP
- Cổng: 80
Tạo Target Group
- Loại: Instances
- Tên:
springboot-tg - Giao thức: HTTP
- Cổng: 8080
- Đường dẫn kiểm tra tình trạng:
/actuator/health/readiness
✅ Đăng ký hai EC2 instances của bạn
✅ Gắn Target Group này vào Load Balancer
✅ Nhấn Create Load Balancer
ALB của bạn hiện đã hoạt động và đang điều hướng lưu lượng.
🧪 Bước 5: Kiểm tra thiết lập của bạn
🎯 Vào Load Balancer → Description tab
📄 Sao chép DNS name (ví dụ: springboot-alb-123456.ap-south-1.elb.amazonaws.com)
Truy cập:
http://<DNS_NAME>/api/adapt/welcome
Kết quả mong đợi:
Welcome to Adaptation Controller - Techeazy
✅ Xác nhận ELB đang điều hướng đến các EC2 instances khỏe mạnh
✅ Xác nhận ứng dụng Spring Boot đang hoạt động trên cả hai instances
🛠 Bạn có thể khám phá:
- Triển khai thủ công
- Tạo AMIs
- Sử dụng Launch Templates với Auto Scaling
🎯 Kết luận
Bạn đã thành công:
✅ Triển khai một ứng dụng Spring Boot trên EC2
✅ Thiết lập một Load Balancer để điều hướng lưu lượng
✅ Cấu hình các kiểm tra tình trạng để đảm bảo thời gian hoạt động
✅ Tạo một kiến trúc sẵn sàng cho sản xuất cho các ứng dụng quy mô web
👉 Tiếp theo, hãy kết hợp thiết lập này với Auto Scaling Groups để có được độ linh hoạt và khả dụng cao thực sự.
✅ Các bước tiếp theo
🚀 Hãy sẵn sàng cho phỏng vấn trong thời đại AI & Cloud — bắt đầu hành trình DevOps của bạn ngay hôm nay!
💡 YouTube sẽ không giúp bạn có việc làm. Các dự án thực tế + chứng chỉ thực tập thực tế sẽ làm điều đó.
🔥 AI đang định hình lại công việc. Đừng chỉ ngồi xem, hãy trở thành một phần của nó với kỹ năng DevOps & Cloud.
⏳ Mỗi tháng bạn chờ đợi, các công việc Cloud + AI đang được lấp đầy. Đừng bỏ lỡ!
🌐 DevOps + AWS + AI = Bộ kỹ năng mà mọi nhà tuyển dụng đang tìm kiếm vào năm 2025.
👉 Đăng ký ngay tại TechEazy Consulting