EB란?
- AWS 에서 애플리케이션을 신속하게 배포하고 관리할 수 있는 서비스
- 용량 프로비저닝, 로드밸런싱, 조정, 모니터링 등을 자동으로 처리해준다
- EB console, AWS CLI 을 이용해 상호작용
장점
1) 시간 및 비용 절감
2) 추가요금이 없음 (사용되는 리소스에 대해서만 비용 지불)
3) 빠르고 간단한 시작
4) 개발자 생산성
5) 완전한 자원 제어
6) 불필요한 자원 낭비 없음
작동원리
- 애플리케이션 생성후, 애플리케이션 버전을 업로드하면 EB가 자동으로 환경 실행
- 소스로 코드 실행에 필요한 AWS 리소스 생성 및 구성
- 로드 밸런서 추가
- Auto Scaling Group 설정
- Ec2 인스턴스 시작
- 모든 구성 연결
- DNS 설정하여 외부로 Publish
- 로그 및 앱 버전 설정 S3에 저장
- 애플리케이션 배포에 필요한 정보 1) 코드 2) 리전(region) 3) 스택타입 : php, nodeJS, .net ….등등 4) 데이터베이스 (RDS) :선택사항
사용하는 용어 및 개념들
♠️ 애플리케이션
- 환경, 버전 및 환경구성을 포함한 Elastic Beanstalk 구성요소의 논리적 모음 = 개념적으로 “폴더” 와 유사
♠️ 애플리케이션 버전
- 웹 애플리케이션에 대한 배포 가능한 코드의 레이블이 지정된 특정 반복
- Java WAR 파일과 같은 배포 가능한 코드가 포함된 Amazon S3 객체를 가르킴
- 각 애플리케이션에는 여러버전이 있을수 있으며 버전은 고유하다
♠️ 환경
- 애플리케이션 버전을 실행하는 AWS 리소스 모음
- 각 환경은 한 번에 하나의 애플리케이션 버전만 실행하고 여려환경에서는 동일한 애플리케이션 버전 또는 다른 애플리케이션 버전을 동시에 실행할수 있다
♠️ 환경계층
- 환경이 실행하는 애플리케이션 유형을 지정하고 이를 지원하기 위해 Elastic Beanstalk가 프로비저닝하는 리소스를 결정
♠️ 환경 구성
- 환경 및 관련 리소스의 작동 방식을 정의하는 매개변수 및 설정 모음을 식별
- 환경 구성 설정을 업데이트하면 EB 는 자동으로 기존 리소스에 변경사항을 적용하거나 변경 유형에 따라 새 리소스를 삭제 및 배포한다
♠️ 플랫폼
- 운영체제, 프로그래밍 언어 런타임, 웹 서버, 애플리케이션 서버 및 Elastic Beanstalk 구성요소의 조합
- 웹 애플리케이션을 플랫폼에 맞게 설계하고 대상화한다
- 도커, Go, Java SE 등 지원
AWS CLI 지원되는 환경 변수
AWS_REGION
: WS SDK 호환 환경 변수, --region 를 사용하여 환경변수를 재정의할 수 있음
AWS_ACCESS_KEY_ID
: IAM 사용자 또는 역할과 연결된 AWS 엑세스 키를 지정
AWS_SECRET_ACCESS_KEY
: 액세스 키와 연결된 보안 키를 지정 = 액세스 키에 대한 기본적인 암호