(Stephane Maarek의 Udemy AWS Certified Solutions Architect Associate 강의를 참고했습니다.)
배포를 위한 인프라 구조를 설계하다 보면, 대부분의 웹 애플리케이션이 비슷한 인프라 구조를 가진다는 것을 알 수 있다. 대부분의 구조에서 EC2 인스턴스, ELB, ASG, RDS 등의 리소스는 거의 사용된다. 이러한 인프라를 프로젝트마다 반복해서 직접 구축하는 대신, 자주 사용하는 구조는 자동으로 생성하고 관리해주는 기능이 Elastic Beanstalk이다. 즉, 개발자는 코드만 올리고, AWS가 인프라를 관리하는 것이다. Elastic Beanstalk는 개발자가 애플리케이션 개발 및 배포에만 집중할 수 있도록 돕는다.
Elastic Beanstalk는 EC2, ASG, ELB, RDS 등을 자동으로 조합하여 애플리케이션 실행 환경을 구성한다. Elastic Beanstalk 자체는 추가 비용 없는 무료 서비스이지만, Beanstalk가 생성하는 AWS 리소스에는 일반적인 AWS 요금이 부과된다. Go, Python, Ruby, Node.js, Java SE, Java with Tomcat 등등 거의 대부분의 언어와 프레임워크를 지원한다.
Elastic Beanstalk의 구성 요소를 살펴보자. 우선 Application은 Elastic Beanstalk에서 관리하는 애플리케이션 전체, 즉 프로젝트를 의미하며, 애플리케이션 버전, 환경, 구성 등을 포함한다. 애플리케이션 버전은 코드의 특정 버전을 의미하며, 새로운 코드를 배포할 때마다 새로운 버전이 생성된다. 롤백도 가능하다. 특정 애플리케이션 버전이 실행되는 AWS 리소스들의 집합을 환경(Environment)라 부르는데, 하나의 환경에서는 한 번에 하나의 애플리케이션 버전만 실행할 수 있다. 예를 들어, 개발/테스트/운영 환경을 별도로 구성할 수 있다.

Elastic Beanstalk는 두 가지의 Environment Tier를 제공한다. Web Server Environment는 웹 애플리케이션을 실행하기 위한 환경으로, 사용자의 HTTP/HTTPS 요청을 직접 처리하며 일반적인 웹 서비스에서 가장 많이 사용된다. Worker Environment는 이미지 변환, 이메일 전송, 데이터 분석, 비동기 작업 등 백그라운드 작업 처리를 위한 환경이다. 일반적으로 Amazon SQS와 함께 사용되어 큐에 저장된 작업을 순차적으로 처리한다.
'클라우드 > AWS' 카테고리의 다른 글
| CloudFront와 AWS Global Accelerator (0) | 2026.07.14 |
|---|---|
| S3에 대해서 알아보자 (0) | 2026.07.13 |
| Route 53에 대해 알아보자 (0) | 2026.07.12 |
| Amazon RDS, Aurora, Elastic Cache (0) | 2026.07.11 |
| AWS의 Load Balancing 도구를 알아보자 (0) | 2026.07.10 |