AWS

Elastic Beanstalk으로 쉽게 구현하는 3-티어 웹 앱 아키텍처

heesoohi 2025. 3. 25. 18:49

# Web App 3-tier

 

AWS에 웹 애플리케이션을 배포할 때, 일반적으로 3-티어 아키텍처를 따른다. 아래 그림과 같이 사용자는 여러 AZ에 존재 가능한 로드 밸런서와 통신하고, 로드 밸런서는 자동 스케일링 그룹이 관리하는 여러 EC2 인스턴스로 트래픽을 전달한다. EC2 인스턴스들은 데이터를 저장하기 위해 관계형 데이터베이스 등을 사용할 수 있다. 

 

 

 

이러한 아키텍처는 수동으로 쉽게 재현할 수 있고, AWS에서 CloudFormation을 통해서도 재현할 수 있다. 하지만 개발자 입장에서 인프라 관리에 신경쓰지 않고 코드 배포만 할 수 있다면 훨씬 편리할 것이다..! 

 

 

 

# Elastic Beanstalk

 

다양한 애플리케이션과 환경에 대해 동일한 방식으로 코드를 실행하고 싶을 때 사용할 수 있는 서비스가 바로 Elastic Beanstalk이다. 

 

  • EC2, ASG, ELB, RDS 등 모든 요소들의 구성 및 운영 체제를 Beanstalk이 자체적으로 처리
  • PaaS(Platform as a Service)로 개발자는 코드만 올리면, 배포 수행
  • ASG, ELB를 통한 용량 제공 수행
  • 애플리케이션 상태 모니터링 및 응답성을 대시보드에 포함
    : Beanstalk 서비스 내에 전체 모니터링 제품군 사용 가능. Beanstalk 내의 EC2 인스턴스에 CloudWatch로 지표를 보내는 상태 에이전트가 있어, 측정 항목을 확인하고 모니터링을 수행할 수 있다. 

 

모니터링 예시

 

 

 

배포에 관련된 모든 작업을 Elastic Beanstalk이 수행해주어 개발자는 애플리케이션 코드만 책임지면 된다. 매우 개발자 친화적인 서비스!