Elastic Beanstalk이란?
- 환경 구성과 함께 웹 애플리케이션의 코드를 업로드하여 신속하고 간편하게 서비스를 배포 및 관리할 수 있는 Amazon Web Services(AWS) 관리형 서비스
- Docker 컨테이너 기반의 어플리케이션 배포 지원
- Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원
- AWS CloudFormation으로 구현되어 있으며 CloudFormation의 하위 개념
- AWS CloudFormation – AWS에서 지원하는 컴퓨터 시스템과 소프트웨어의 자동화된 구성, 조율, 관리 도구 (오케스트레이션)
Elastic Beanstalk 주요 기능 및 구성
- EC2 인스턴스
- 인스턴스 메타데이터 서비스(IMDS) 기반으로 구성 및 관리
- 인스턴스 메타데이터는 애플리케이션이 실행 중인 인스턴스를 구성 또는 관리하는 데 사용할 수 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 관련 데이터
- 로드밸런서
- 환경의 인스턴스 간에 트래픽을 분산하는 역할
- 화면 좌측 [환경 이름 – 구성 – 로드밸런서]
- 환경 생성 중에만 환경에서 사용하는 로드 밸런서 유형을 선택
-
Classic Load Balancer – 이전 세대 로드 밸런서
- HTTP, HTTPS 또는 TCP 요청 트래픽을 환경 인스턴스의 다양한 포트로 라우팅
-
Application Load Balancer – 애플리케이션 계층 로드 밸런서
- HTTP 또는 HTTPS 요청 트래픽을 요청 경로에 따라 환경 인스턴스의 다양한 포트로 라우팅
-
Network Load Balancer – 네트워크 계층 로드 밸런서
- TCP 요청 트래픽을 환경 인스턴스의 다양한 포트로 라우팅
- 활성 및 수동 상태 확인을 둘 다 지원합니다.
| 유형 |
지원 여부 |
공유됨 |
| 클래식 로드 밸런서 |
✓예 |
☓아니요 |
| 애플리케이션 로드 밸런서 |
✓예 |
✓예 |
| 네트워크 로드 밸런서 |
✓예 |
☓아니요 |
- Auto Scaling 그룹
- 로드(로드 밸런서의 상태 확인 메커니즘)를 기준으로 필요에 따라 인스턴스를 추가하거나 제거하는 관리 그룹
- 시작하는 각 Amazon EC2 인스턴스의 상태를 모니터링
- 인스턴스가 예기치 않게 종료된 경우 Auto Scaling은 종료를 감지하고 대체 인스턴스를 시작
- 두 가지 Amazon CloudWatch 경보를 사용하여 조정 작업을 트리거
- 트리거 설정 – 화면 좌측 [환경 이름 – 구성 – 용량]
-
측정치(Metric) – Auto Scaling 트리거에 사용되는 측정치입니다.
-
통계(Statistic) – 트리거가 사용해야 하는 통계 계산입니다(예:
Average).
-
단위(Unit) – 트리거 측정의 단위입니다(예: 바이트).
-
기간(Period) – Amazon CloudWatch가 트리거의 측정치를 측정하는 빈도를 지정합니다.
-
위반 기간(Breach duration) – 조정 작업을 트리거하기 전 측정치가 상한 또는 하한 임계값을 벗어날 수 있는 시간(분)입니다.
-
상위 임계값(Upper threshold) – 위반 기간 중 측정치가 이 값보다 커지면 조정 작업이 트리거됩니다.
-
확장 증분(Scale up increment) – 조정 활동 수행 시 추가할 Amazon EC2 인스턴스 수입니다.
-
하위 임계값(Lower threshold) – 위반 기간 중 측정치가 이 값보다 작아지면 조정 작업이 트리거됩니다.
-
축소 증분(Scale down increment) – 조정 활동 수행 시 제거할 Amazon EC2 인스턴스 수입니다.
- 로그
- Elastic Beanstalk 환경의 Amazon EC2 인스턴스는 애플리케이션이나 구성 파일과 관련된 문제를 해결하기 위해 볼 수 있는 로그를 생성
- 화면 좌측 [환경 이름 – 로그] 을 통해 로그 확인
- 화면 좌측 [환경 이름 – 구성 – 모니터링] 을 통해 Amazon CloudWatch Logs로 실시간으로 스트리밍하도록 환경을 구성할 수도 있습니다
- 환경 모니터링
- 좌측 [환경 이름 – 상태] 를 통해 Elastic Beanstalk 콘솔에서 애플리케이션에 대한 운영 정보를 열람할 수 있습니다
- 편집을 통해 개요 및 모니터링 화면 커스터마이징 가능
- EB 환경 내의 리소스를 선택하여 CloudWatch의 측정치별로 열람 가능
- 경보
- 아래 이미지와 같은 모니터링 화면에서 종 모양 버튼 클릭 시 생성 가능
- 생성된 경보 확인 및 편집/삭제는 화면 좌측 [환경 이름 – 경보] 에서 확인 가능
- 상태
- 아래 이미지와 같이 서비스 상태를 확인할 수 있고 화면 좌측 [환경 이름 – 상태] 를 통해 각 인스턴스별로 상태를 상세 확인 가능
- 추가 비용
- 환경 내에서 구성된 각각의 AWS 서비스의 비용은 청구되나 Elastic Beanstalk 자체에 대한 추가 비용은 없습니다
- 기본적으로 거의 모든 설정은 생성 시 작업이 가능하며 환경 구성 후 수정 시 좌측 화면의 환경 이름을 통해 접근할 수 있습니다.
참고 자료