Skip to content
Khoá học AWSOther ServicesGiới thiệu Elastic Beanstalk

Elastic Beanstalk là gì

AWS Elastic Beanstalk là một dịch vụ Platform as a Service (PaaS), giúp các developer dễ dàng triển khai, quản lý và mở rộng ứng dụng web hoặc dịch vụ backend mà không cần quản lý trực tiếp hạ tầng như EC2, Load Balancer, hay Auto Scaling. Bạn chỉ cần đưa mã nguồn ứng dụng lên, Elastic Beanstalk sẽ tự động lo phần còn lại:

  • Provisioning hạ tầng (EC2, RDS, S3, v.v.)
  • Cân bằng tải (Load Balancing)
  • Tự động scaling (Auto Scaling)
  • Monitoring (CloudWatch)

Các ngôn ngữ và môi trường được hỗ trợ

Elastic Beanstalk hỗ trợ nhiều ngôn ngữ và framework phổ biến:

  • Java
  • .NET
  • Node.js
  • Python
  • Ruby
  • PHP
  • Go
  • Docker (chạy container tùy chỉnh)

Ngoài ra, bạn cũng có thể sử dụng Custom Platform nếu muốn môi trường riêng.

Các thành phần chính

  • Application: tập hợp các version code.
  • Application Version: một version cụ thể của code (deployable).
  • Environment: nơi chạy app version (Web Server hoặc Worker).
  • Configuration: cài đặt infra (instance type, scaling, DB, ENV Variables).

Cách hoạt động

  1. Upload ứng dụng (ZIP file hoặc Container image).
  2. Elastic Beanstalk sẽ tự động:
  • Tạo EC2 instance
  • Cấu hình Auto Scaling Group
  • Setup Load Balancer
  • Triển khai ứng dụng và giám sát bằng CloudWatch
  1. Người dùng có thể quản lý môi trường qua:
  • AWS Management Console
  • AWS CLI
  • Elastic Beanstalk CLI
Elastic Beanstalk là gì Nguồn: AWS

Kiến trúc triển khai

Elastic Beanstalk cung cấp 2 kiểu môi trường:

  • Single Instance Environment: dùng cho dev/test, chạy ứng dụng trên 1 EC2 instance duy nhất.
  • Load Balanced, Auto Scaling Environment: dùng cho production, hỗ trợ scaling theo nhu cầu và có load balancer phân phối traffic.

Chiến lược deploy

Elastic Beanstalk hỗ trợ nhiều chiến lược triển khai ứng dụng:

  • All at once: Triển khai đồng thời trên tất cả instance (nguy hiểm downtime).
  • Rolling: Triển khai theo từng nhóm instance, giảm downtime.
  • Rolling with additional batch: Tạo thêm batch instance mới để đảm bảo luôn có đủ capacity.
  • Blue/Green: Tạo môi trường mới song song, sau đó chuyển traffic sang (an toàn nhất).
    • Swap CNAME: là chức năng cho phép chuyển tên miền giữa 2 môi trường một cách nhanh chóng.

Tích hợp & Tùy chỉnh

  • Elastic Beanstalk sử dụng các dịch vụ AWS có sẵn: EC2, RDS, S3, CloudWatch, Auto Scaling, ELB.
  • Bạn có thể truy cập hạ tầng phía dưới để tùy chỉnh cấu hình.
  • Hỗ trợ .ebextensions để cài đặt thêm package hoặc tùy chỉnh cấu hình môi trường.

Ưu điểm

  • Dễ sử dụng, phù hợp cho developer không chuyên về hạ tầng.
  • Hỗ trợ nhiều ngôn ngữ, framework, và Docker.
  • Tự động scaling và monitoring.
  • Vẫn cho phép tùy chỉnh sâu hạ tầng nếu cần.

Nhược điểm

  • Giới hạn trong phạm vi ứng dụng web và backend.
  • Không phù hợp cho kiến trúc microservices phức tạp.
  • Kém linh hoạt hơn so với dùng CloudFormation hay Terraform để quản lý hạ tầng.

Khi nào dùng Elastic Beanstalk?

  • Khi bạn muốn tập trung vào phát triển ứng dụng, không muốn quản lý nhiều về hạ tầng.
  • Khi ứng dụng chỉ cần môi trường đơn giản (web app, REST API, microservice nhỏ).
  • Khi cần triển khai nhanh mà vẫn tận dụng dịch vụ AWS như scaling, monitoring.