Beanstalk
개요
AWS Elastic Beanstalk는 웹 애플리케이션/웹 서비스를 배포하고, 확장하고, 관리하는데 있어 쉽고 빠르게 할 수 있도록 돕는 완전 관리형 서비스
Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스
개발자가 애플리케이션 코드를 업로드하기만 하면 AWS Elastic Beanstalk에서 제공하는 서비스에서 리소스 프로비저닝, 로드 밸런싱, 자동 크기 조정 및 모니터링 같은 모든 세부 정보를 자동으로 처리 가능
Elastic Beanstalk 자체 요금은 없으며, 배포시 사용되는 리소스에 대해서만 비용을 지불하면 됨
개념
애플리케이션
Elastic Beanstalk 애플리케이션은 환경, 버전 및 환경 구성을 포함한 Elastic Beanstalk 구성 요소의 논리적인 항목이며, 개념적으로 폴더와 유사
애플리케이션 버전
애플리케이션 버전은 애플리케이션의 일부로, 애플리케이션에는 많은 버전이 있을 수 있고, 각 애플리케이션 버전은 고유함 실행 중인 환경에서 애플리케이션에 이미 업로드한 애플리케이션 버전을 배포하거나 새 애플리케이션 버전을 업로드하고 즉시 배포할 수도 있음 여러 애플리케이션 버전을 업로드하여 한 웹 애플리케이션 버전과 다른 버전 간의 차이를 테스트할 수도 있다
환경
환경은 애플리케이션 버전을 실행 중인 AWS 리소스 모음 각 환경은 한 번에 하나의 애플리케이션 버전만 실행하지만 여러 환경에서 동일한 애플리케이션 버전 또는 서로 다른 애플리케이션 버전을 동시에 실행할 수도 있다 환경을 생성하면 Elastic Beanstalk에서 사용자가 지정한 애플리케이션 버전을 실행하는 데 필요한 리소스를 프로비저닝하게 된다
환경 티어
환경 티어는 환경에서 실행하는 애플리케이션 유형을 지정하고 Elastic Beanstalk에서 이러한 애플리케이션을 지원하기 위해 프로비저닝하는 리소스를 결정 예로 HTTP 요청을 처리하는 애플리케이션은 웹 서버 환경 티어에서 실행되며, Amazon Simple Queue Service(Amazon SQS) 대기열에서 작업을 가져오는 환경은 작업자 환경 티어에서 실행되게 된다
환경 구성
환경 구성은 환경 및 연관된 리소스의 작동 방법을 정의하는 파라미터 및 설정의 모음을 구분 환경의 구성 설정을 업데이트하면 Elastic Beanstalk가 자동으로 기존 리소스에 변경 사항을 적용하거나, 삭제하고 새 리소스를 배포함 (변경 유형에 따라 다름)
저장된 구성
저장된 구성은 고유한 환경 구성을 생성하기 위한 시작점으로 사용할 수 있는 템플릿 Elastic Beanstalk 콘솔, EB CLI, AWS CLI 또는 API를 사용하여 저장된 구성을 생성 및 수정하고 환경에 적용할 수도 있다
플랫폼
플랫폼은 운영 체제(OS), 프로그래밍 언어 실행 시간, 웹 서버, 애플리케이션 서버 및 Elastic Beanstalk 구성 요소의 조합 플랫폼을 대상으로 하는 웹 애플리케이션을 설계합니다. Elastic Beanstalk는 애플리케이션을 구축할 수 있는 다양한 플랫폼을 제공
배포
Elastic Beanstalk를 사용하려면 애플리케이션을 생성
애플리케이션 소스 번들의 형태(예: Java .war 파일)로 애플리케이션 버전을 Elastic Beanstalk에 업로드
Elastic Beanstalk가 자동으로 환경을 실행하고 코드 실행에 필요한 AWS 리소스를 생성 및 구성
환경 실행 후에는 환경을 직접 관리하고 새로운 앱 버전을 배포
배포시 필요한 정보
애플리케이션 코드
리전
스택 타입(Node, Java, PHP 등.. + 커스텀도 가능)
단일 인스턴스 or 오토스케일링 및 로드 밸런싱
RDS 설정 (optional)
애플리케이션 & 환경 관계
하나의 애플리케이션 버전은 다양한 환경에 배포 가능
하나의 환경에는 하나의 애플리케이션만 적용 가능
배포
배포 정책
정책
배포실패시 영향도
배포 시간
가동 중지
DNS 변경
롤백 프로세스
코드 배포 위치
한번에 모두
가동 중지
⏱
예
아니요
수동 재배포
기존 인스턴스
롤링
배치가 제외됨
⏱⏱
아니오
아니오
수동 재배포
기존 인스턴스
추가 배치를 사용한 롤링
롤링과 유사하나 실패할 경우 최소화
⏱⏱⏱
아니오
아니오
수동 재배포
새 인스턴스 및 기존 인스턴스
변경 불가능
최소화
⏱⏱⏱⏱
아니오
아니오
새 인스턴스 종료
새 인스턴스
트래픽 분할
새 버전으로 트래픽 라우팅
⏱⏱⏱⏱
아니로
아니로
트래픽 재라우팅 및 새 인스턴스 종료
새 인스턴스
블루/그린
최소화
⏱⏱⏱⏱
아니오
예
Swap URL
새 인스턴스
All at once
Rolling
Rolling with additional batch
Immutable
Blue/Green
플랫폼 업데이트
Elastic Beanstalk에서는 새 플랫폼 버전을 정기적으로 릴리스하여 모든 Linux 기반 및 Windows Server 기반 플랫폼 업데이트를 제공 관리형 플랫폼 업데이트를 통해 예약된 유지 관리 기간 동안 최신 플랫폼 버전으로 자동으로 업그레이드하도록 환경을 구성할 수 있음
패치 버전 업데이트
마이너 및 패치 버전 업데이트
예) 플랫폼 버전 : 2.0.7
모니터링
콘솔에서 애플리케이션에 대한 운영 정보를 확인할수 있으며, 환경의 상태와 애플리케이션 상태를 한눈에 확인 가능 기본적으로, 기본 CloudWatch 측정치만 활성화되며 5분 간격의 데이터 확인
로그
Elastic Beanstalk 환경의 Amazon EC2 인스턴스는 애플리케이션이나 구성 파일과 관련된 문제를 해결하기 위해 볼 수 있는 로그를 생성되며, 생성된 로그는 개별 인스턴스에 로컬로 저장
테일로그 가장 일반적으로 사용되는 로그 파일의 마지막 100줄 Elastic Beanstalk 작업 로그와 웹 서버 또는 애플리케이션 서버의 로그
번들로그 다양한 로그 파일의 전체 로그로, yum 및 cron의 로그와 AWS CloudFormation의 여러 로그가 포함 번들 로그를 요청하면 환경의 인스턴스가 전체 로그 파일을 ZIP 아카이브로 패키지하고 이를 Amazon S3에 업로드
기본설정으로는 테일 및 번들 로그는 생성된 후 15분이 지나면 S3에서 제거됨 로그 유지를 위해서는 교체설정을 하면 영구 보관 가능 CloudWatch Logs로 실시간 스트리밍 하도록 구성할 수도 있음
Last updated
Was this helpful?