Beanstalk
<aside>
🎯
설명
- 개발자 중심의 관점에서 제공되는 서비스
- 배포할 애플리케이션이 너무 많고 이전에 동일한 아키텍처를 따르는 경우 매번 이를 다시 생성하는 것은 비효율적, 이를 해결하기 위한 서비스
- EC2, ASG, ELB, RDS와 같은 구성 요소들을 재사용, 이러한 것들을 자동으로 배포하주는 관리형 서비스
- Beanstalk 사용 자체는 무료지만 instance, ASG, ELB등은 유료
</aside>
<aside>
🛷
구성 요소
- 환경
- 특정 애플리케이션 버전을 실행하는 리소스의 모음
- 환경 내에서 애플리케이션 버전은 하나만 사요이 가능하며 업데이트 가능
- 버전
- version1, version2, version3 ….
- 구성
</aside>
<aside>
🚛
tier
-
Web Server Tier

- Beanstalk Architecture 1
- ELB가 트래픽을 ASG로 전송하고 여기에 여러 EC2 instance가 포함되어 웹 서버 역할을 하는 전통적인 아키텍처
-
Worker Tier

- Beanstalk Architecture 2
- 작업자 환경 중심
- EC2 instance에 직접 액세스하는 클라이언트가 없음, 메시지 대기열인 SQS대기열을 사용하여 메시지는 SQS 대기열로 전송, EC2 instance는 작업자 역할을 하고 SQS 대기열에서 메시지를 가져와 처리
</aside>
<aside>
♥️
배포 모드
-
개발 목적

- 개발 목적에 적합한 단일 instance로 EIP를 갖고 있음
- 잠재적으로 RDS Database를 생성할 수도 있음
-
생상 환경

- 고가용성을 위해 ELB를 사용 → 생산 환경에 적합
- ELB가 ALG및 Multi region에 관리되는 EC2 instance의 로드를 분산 가능
- RDS Master와 RDS Standby database를 생성할 수도 있음
</aside>