AWS Elastic Beanstalk
AWS Elastic Beanstalk는 Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스이다.
설명
코드를 업로드하기만 하면 Elastic Beanstalk가 용량 프로비저닝, 로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모니터링에 이르기까지 배포를 자동으로 처리한다. 이뿐만 아니라 애플리케이션을 실행하는 데 필요한 AWS 리소스를 제어할 수 있으며 언제든지 기본 리소스에 액세스할 수 있다.
비용
Elastic Beanstalk는 추가 비용 없이 애플리케이션을 저장 및 실행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 된다.
이점
이점
빠르고 간편한 시작
Elastic Beanstalk는 AWS에 애플리케이션을 배포하는 가장 빠르면서 간편한 방법이다. AWS Management Console, Git 리포지토리 또는 Eclipse나 Visual Studio와 같은 IDE(통합 개발 환경)를 통해 애플리케이션을 업로드하기만 하면 Elastic Beanstalk가 용량 프로비저닝, 로드 밸런싱, Auto Scaling, 애플리케이션 상태 모니터링에 대한 배포 정보를 자동으로 처리한다. 몇 분 후면 애플리케이션을 사용할 수 있다. 인프라나 리소스를 구성할 필요가 전혀 없다.
개발자 생산성
Elastic Beanstalk는 사용자 대신 인프라를 프로비저닝하고 운영할 뿐만 아니라 애플리케이션 스택(플랫폼)을 관리해주므로, 사용자는 시간을 따로 들이거나 익숙해지기 위해 애쓸 필요가 없다. 또한, 애플리케이션이 실행되는 기본 플랫폼을 최신 패치와 업데이트를 통해 최신 상태로 유지한다. 서버, 데이터베이스, 로드 밸런서, 방화벽, 네트워크 등을 관리하고 구성하는 데 시간을 들이는 대신 코드 작성에 집중할 수 있다.
적절한 규모 유지
Elastic Beanstalk는 손쉽게 조정할 수 있는 Auto Scaling 설정을 사용하여 애플리케이션의 특정 요건에 따라 자동으로 애플리케이션을 확장하거나 축소합니다. 예를 들어, CPU 사용률 지표를 참조하여 Auto Scaling 작업을 트리거할 수 있습니다. Elastic Beanstalk를 사용하면 애플리케이션에서 비용을 최소화하면서 높은 워크로드나 트래픽을 처리할 수 있습니다.
완벽한 리소스 제어
Amazon EC2 인스턴스 유형 및 워크로드를 실행할 프로세서 유형과 같이 애플리케이션에 가장 적합한 AWS 리소스를 자유롭게 선택할 수 있다. 애플리케이션을 실행하는 AWS 리소스를 완벽하게 제어할 수도 있다. 인프라 요소 중 일부(또는 전체)를 손쉽게 제어하려면 Elastic Beanstalk의 관리 기능을 사용하면 된다.
배포 방식
All at once
새 버전을 모든 인스턴스에 동시에 배포합니다. 배포가 수행되는 동안 환경에 있는 모든 인스턴스가 잠시 서비스 중지됩니다.
Rolling
새 버전을 배치로 배포합니다. 각 배치는 배포 단계 동안 서비스에서 제외되므로 배치에 있는 인스턴스의 수만큼 환경의 용량이 감소합니다.
Rolling with additional batch
새 버전을 배치로 배포하지만, 먼저 새로운 배치의 인스턴스를 시작하여 배포 프로세스 중에 모든 용량이 유지되도록 합니다.
Immutable
새로운 auto scaling 그룹을 만들어 단일 인스턴스를 배치합니다. 원래 있던 auto scaling 그룹과 같이 트래픽을 처리하며 새로 배치된 인스턴스의 상태가 양호하면 원래 있던 인스턴스의 수만큼 추가하여 배포합니다.
Traffic splitting
카나리 배포 방식입니다. 새로운 auto scaling 그룹을 만들고 로드밸런서에서 트래픽의 일정 부분을 보내 상태가 양호하다면 모든 트래픽을 새로 업로드한 인스턴스로 처리합니다.