0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng dẫn triển khai ứng dụng Spring Boot trên AWS EC2 với Load Balancer

Đăng vào 1 tháng trước

• 4 phút đọc

🌍 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:

Copy
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ó JavaMaven đượ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-qms là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:

  1. Vào AWS Console → EC2 → Launch Instance
  2. Hệ điều hành: Ubuntu Server 24.04 LTS (đủ điều kiện Free Tier)
  3. Loại instance: t2.micro
  4. Key Pair: Tạo/chọn một (để truy cập SSH)
  5. 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:

Copy
ssh -i your-key.pem ubuntu@<EC2_PUBLIC_IP>

Cài đặt Java:

Copy
sudo apt update
sudo apt install openjdk-21-jdk -y

Tải ứng dụng của bạn lên bằng scp:

Copy
scp -i your-key.pem app.jar ubuntu@<EC2_PUBLIC_IP>:/home/ubuntu/

Chạy ứng dụng trong nền:

Copy
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ất
  • java -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:

Copy
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.

  1. Vào EC2 → Load Balancers
  2. Nhấn Create Load Balancer → Application Load Balancer
  3. Tên: springboot-alb
  4. Kiểu: Internet-facing
  5. VPC: Sử dụng default VPC
  6. Chọn AZs: Chọn nơi các EC2 của bạn đang chạy
  7. Security Group:
  • Tạo một cái mới: springboot-sg
  • Inbound Rules: Cho phép HTTP (80)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:

Copy
http://<DNS_NAME>/api/adapt/welcome

Kết quả mong đợi:

Copy
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


Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào