You are a developer, not a coder.

AWS Elastic Beanstalk 본문

AWS/기본 개념

AWS Elastic Beanstalk

Mattmk 2020. 2. 26. 16:25
SMALL

1. AWS Elastic Beanstalk 란?

AWS Elastic Beanstalk에서는 애플리케이션을 환경으로 실행하는 모든 리소스를 관리할 수 있다.

 

Amazon Web Services(AWS)는 100개 이상의 서비스로 구성되어 있으며 각 서비스는 기능 영역을 나타낸다. 다양한 서비스는 AWS 인프라 관리 방법의 유연성을 제공하는 반면에 어떤 서비스를 사용해야 하고 해당 서비스를 프로비저닝하는 방법을 파악하는 것이 까다로울 수 있다.

Elastic Beanstalk를 사용하면, 애플리케이션을 실행하는 인프라에 대한 염려 없이 AWS 클라우드에서 애플리케이션을 신속하게 배포 및 관리할 수 있다.

애플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리한다.

Elastic Beanstalk는 Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원한다. 애플리케이션을 배포할 때, Elastic Beanstalk가 선택된 지원 가능 플랫폼 버전을 구축하고 Amazon EC2 인스턴스 등의 AWS 리소스를 하나 이상 프로비저닝하여 애플리케이션을 실행한다.

 

Elastic Beanstalk 콘솔, AWS Command Line Interface(AWS CLI) 또는 Elastic Beanstalk를 위해 특별히 설계된 고급 CLI인 eb를 이용해 Elastic Beanstalk와 상호 작용할 수 있다.

 

Elastic Beanstalk의 워크플로

 

2. 구성 변경

All at once

모든 인스턴스에 동시에 새 버전을 배포한다. 배포시간은 가장 짧지만 모든 인스턴스가 업데이트 되기 때문에 다운타임이 발생.

 

Rolling update

기존 인스턴스 중 일부를 배치 단위로 선정하여 새 버전을 배포한다. 업데이트 중인 배치 인스턴스에 대해서는 서비스가 작동하지 않을 수 있다. 즉 서비스 다운타임을 방지하기 위해 일부 인스턴스만 먼저 업데이트하고 그 후 나머지 인스턴스를 업데이트 하는 방식이다.

 

Rolling update with additional batch

Rolling Update 방식을 그대로 따르나, Rolling Update 방식처럼 기존의 인스턴스외에 추가 인스턴스를 구성하여 배포하는 방식이다. 추가 인스턴스를 구성하기 때문에 Rolling Update에 비해 배포시간이 더 많이 걸리지만 배포 실패시의 영향은 더 적다.

 

Immutable

기존의 인스턴스는 그대로 두고, 새로운 Auto Scaling 배치 그룹을 생성한다. 따라서 Rolling Update처럼 기존의 인스턴스에 변화가 생기지 않는다. (기존인스턴스가 변하지 않기때문에 immutable이라고 한다.) 새 배치 그룹에는 먼저 하나의 인스턴스만을 붙여서 정상적으로 동작하는지 체크하다가 정상적이라면 기존의 인스턴스 갯수만큼 배포 인스턴스들을 띄우게 된다.

 

3. 정리

내가 생각할때에는 AWS Elastic Beanstalk의 기능이 AWS CloudFormation과의 기능과 별차이가 없다고 느껴져서 Google선생님을 통해 검색하였다. AWS FAQ Tab에 답변이 있어 아래와 같이 참고하고자 한다.

 


Q: AWS CloudFormation은 AWS Elastic Beanstalk와 어떻게 다릅니까?

이 두 서비스는 상호 보완할 수 있도록 설계되었습니다. AWS Elastic Beanstalk는 클라우드에서 손쉽게 애플리케이션을 배포하고 실행할 수 있는 환경을 제공합니다. 개발자 도구와 통합되며 애플리케이션의 수명 주기를 한 곳에서 관리할 수 있는 환경을 제공합니다. AWS CloudFormation은 광범위한 AWS 및 타사 리소스를 편리하게 배포할 수 있는 메커니즘입니다. 기존의 엔터프라이즈 애플리케이션, 레거시 애플리케이션, 다양한 AWS 리소스 및 컨테이너 기반 솔루션을 사용해 구축된 애플리케이션(AWS Elastic Beanstalk를 사용해 구축된 애플리케이션 포함)과 같은 각종 애플리케이션의 인프라 요구를 지원합니다.

AWS CloudFormation은 AWS 리소스 유형 중 하나로 Elastic Beanstalk 애플리케이션 환경을 지원합니다. 따라서 애플리케이션 데이터를 저장하는 RDS 데이터베이스와 함께 AWS Elastic Beanstalk에 호스팅되는 애플리케이션을 생성하고 관리할 수 있습니다. RDS 인스턴스뿐만 아니라, 지원되는 모든 AWS 리소스를 그룹에 추가할 수 있습니다.

 


https://aws.amazon.com/ko/cloudformation/faqs/

LIST

'AWS > 기본 개념' 카테고리의 다른 글

Amazon S3  (0) 2020.02.27
AWS CodeDeploy  (0) 2020.02.26
AWS Systems Manager Parameter Store  (0) 2020.02.25
AWS CloudTrail  (0) 2020.02.25
AWS Key Management Service  (0) 2020.02.25
Comments