[AWS] Elastic Beanstalk

곽태민·2023년 7월 31일
0

TIL

목록 보기
34/64

Elastic Beanstalk

Elastic BeanstalkGo, Java, .NET, Node.js, PHP, PythonRuby에서 개발된 어플리케이션을 지원한다.

어플리케이션을 배포할 때, Elastic Beanstalk가 선택된 지원 가능 플랫폼 버전을 구축하고, Amazon EC2 등의 AWS 리소스를 하나 이상 프로비저닝하여 애플리케이션을 실행한다.

AWS 클라우드에서 어플리케이션을 신속하게 배포하고 관리할 수 있는 서비스로, 애플리케이션을 업로드만 하면 용량 프로비저닝, 로드 밸런싱, 조정, 모니터링 등 자동 처리한다.

(EB console, AWS CLI를 이용하여 상호작용)

  • Provisioning
    - 사용자의 요구에 맞게 시스템 자원을 미리 준비해서 필요할 때 바로 사용할 수 있도록 하는 것.

Workflow

어플리케이션 생성 후, 어플리케이션 버전을 업로드하면 EB가 자동으로 환경 실행하며, 스스로 코드 실행에 필요한 AWS 리소스 생성 및 구성한다.

주요 개념

Application

Elastic Beanstalk 어플리케이션은 환경, 버전 및 환경 구성을 포함한 Elastic Beanstalk 구성 요소의 논리적 컬렉션이다.

(Elastic Beanstalk에서 어플리케이션은 개념적으로 폴더와 유사함.)

Application Version

Elastic Beanstalk에서 어플리케이션 버전은 웹 어플리케이션의 배포 가능한 코드의 레이블 지정된 특정 반복을 나타낸다.

어플리케이션 버전은 Java WAR 파일 등의 배포 가능한 코드가 포함된 Amazon Simple Storage Service(Amazon S3) 객체를 가리킨다.

어플리케이션 버전은 어플리케이션의 일부이며, 어플리케이션에는 많은 버전이 있을 수 있고, 각 어플리케이션 버전은 고유하다.

실행 중인 환경에서 어플리케이션에 이미 업로드한 어플리케이션 버전을 배포하거나 새 어플리케이션 버전을 업로드하고 즉시 배포를 할 수 있다.

여러 어플리케이션 버전을 업로드하여 한 웹 어플리케이션 버전과 다른 버전 간의 차이를 테스트 할 수 있다.

Environment

Environment는 어플리케이션 버전을 실행 중인 AWS 리소스 모음이다.

각 Environment는 한 번에 하나의 어플리케이션 버전만 실행하지만 여러 환경에서 동일한 어플리케이션 버전 또는 서로 다른 어플리케이션 버전을 동시에 실행할 수 있다.

Environment를 생성하면 Elastic Beanstalk에서 사용자가 지정한 어플리케이션 버전을 실행하는 데 필요한 리소스를 프로비저닝한다.

Environment Tier

Elastic Beanstalk 환경을 시작할 때 먼저 Environment tier를 선택한다.

Environement Tier는 Environment에서 실행하는 어플리케이션 유형을 지정하고 Elastic Beanstalk에서 이러한 어플리케이션을 지원하기 위해 프로비저닝하는 리소스를 결정한다.

Environment Configuration

Environment Configuration은 Environment 및 연관된 리소스 작동 방법을 정의하는 파라미터 및 설정의 모음을 식별한다.

환경 구성 설정을 업데이트 하면 Elastic Beanstalk가 자동으로 기존 리소스에 변경 사항을 적용하거나, 삭제하고 새 리소스를 배포한다.

(변경 유형에 따라 다름)

Saved Configuration

Saved Configuration고유한 환경 구성을 생성하기 위한 시작점으로 사용할 수 있는 템플릿이다.

Elastic Beanstalk console, EB CLI, AWS CLI 또는 API를 사용해서 저장된 구성을 생성 및 수정하고 환경에 적용할 수 있다.

(APIAWS CLI 저장된 구성을 구성 템플릿으로 참조함.)

Platform

Platform운영체제(OS), 프로그래밍 언어 런타임, 웹 서버, 어플리케이션 서버 및 Elastic Beanstalk 구성 요소의 조합이다.

웹 어플리케이션을 설꼐하고 플랫폼에 맞게 타겟팅한다. Elastic Beanstalk은 어플리케이션을 구축할 수 있는 플랫폼을 다양하게 지원한다.

profile
Node.js 백엔드 개발자입니다!

0개의 댓글