간편하게 사용하는 애플리케이션 플랫폼 서비스 Elastic Beanstalk

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

Elastic Beanstalk은 Node.js, PHP, Python, Ruby, Java, .NET 애플리케이션을 실행하고 배포할 수 있는 플랫폼을 제공하는 서비스입니다. Elastic Beanstalk은 실제로 서비스를 제공하는 AWS 리소스가 아니라서 사용 요금이 없습니다.

Elastic Beanstalk은 벤처 기업, 스타트업 같은 작은 조직에서 유용합니다. 또는, 전문 서버 인력을 상시 배치할 수 없는 조직에서도 유용합니다. 그리고 규모가 큰 대기업에서도 구매, 결재, IT 부서의 지원을 기다리지 않고 빠르게 프로토타입을 구현하는데도 적합합니다.

Elastic Beanstalk은 AWS 리소스를 조합하여 완성된 애플리케이션 플랫폼을 제공합니다. 구글 앱엔진, VMware 클라우드 파운드리, Heroku 등과 같은 PaaSPlatform as a Service의 일종입니다. 하지만 기존 PaaS는 플랫폼을 구성하고 있는 서버의 사양과 설정을 직접 제어할 수 없습니다. Elastic Beanstalk은 AWS 리소스를 사용하기 때문에 사용자가 원하는 대로 사양을 정하고 설정을 변경할 수 있는 부분이 큰 장점입니다.

Elastic Beanstalk에서 Beanstalk는 콩나무 줄기를 뜻합니다. 잭과 콩나무라는 동화를 보면 하룻밤 사이에 콩나무가 하늘까지 자라나는데 Elastic Beanstalk도 이 동화의 콩나무처럼 스스로 자라납니다. 알아서 EC2 인스턴스 유형을 변경하고, Auto Scaling으로 EC2 인스턴스를 늘리고, ELB로 부하를 분산하며 애플리케이션 배포까지 자동으로 해줍니다.

Auto Scaling 기능을 사용하려면 CloudWatch와 ELB를 연동해야 하는데 설정이 다소 복잡합니다. Elastic Beanstalk는 복잡한 설정을 하지 않아도 자동 확장과 분산처리 기능을 손쉽게 사용할 수 있습니다.


그림 23-1 Elastic Beanstalk 구성도

Elastic Beanstalk에서 지원하는 언어와 개발 스택은 다음과 같습니다.

  • Java, Apache Tomcat
  • PHP, Apache HTTP 서버
  • Python, Apache HTTP 서버
  • Node.js, Apache HTTP 서버, Nginx
  • Ruby, Passenger
  • ASP.NET, Microsoft IIS 7.5

앞장에서 설명한 CloudFormation과 Elastic Beanstalk은 기능이 비슷하면서도 큰 차이가 있습니다. 다음은 CloudFormation과 Elastic Beanstalk의 공통점과 차이점을 정리한 표입니다.

  CloudFormation Elastic Beanstalk
사용자가 작성한 템플릿 O X
미리 구성된 템플릿 O O
배포 설정 O(사용자가 직접 구현) O
인스턴스 유형 설정 O O
서버 개수 설정 O X
ELB, Auto Scaling 구성 설정 O O(제한적)
편의성(웹을 통한 배포, 설정 변경) X O

표 23-1 CloudFormation과 Elastic Beanstalk의 공통점과 차이점

CloudFormation은 Elastic Beanstalk도 설정 및 생성을 할 수 있습니다. Elastic Beanstalk은 CloudFormation으로 구현되어 있으며 CloudFormation의 하위 개념입니다.

Elastic Beanstalk은 복잡한 CloudFormation 템플릿을 작성(서버 구성, 설치, 배포 설정) 하지 않고 간단하게 사용할 수 있도록 만든 서비스입니다. Elastic Beanstalk에서 애플리케이션을 배포할 때는 AWS CLI, AWS API, 언어별 AWS SDK, Eclipse 및 Visual Studio용 AWS 툴킷을 사용하거나 AWS 콘솔에서 직접 업로드 할 수 있습니다. 또한, Git과 Docker도 지원합니다. 애플리케이션을 한번만 업로드하면 S3 버킷에 저장한 뒤 여러 EC2 인스턴스에 알아서 복사를 해줍니다.


그림 23-2 Elastic Beanstalk 배포


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.