AWS Elastic Beanstalk

jisoolee·2023년 5월 15일
0

AWS Associate Developer

목록 보기
14/27

Elastic Beanstalk

: EC2, ASG, ELB, RDS 등 모든 구성 요소를 재사용하여 이 모든 것을 알아서 배포해 주는 관리형 서비스

Component

Application

Application version

  • Elastic Beanstalk 애플리케이션 버전은 다수의 환경에 배포할 수 있다.

Environment

  • Elastic Beanstalk의 환경은 자유롭게 이름을 지정할 수 있다.

Deployment Modes

  • 단일 인스턴스: 탄력적 IP를 갖는 EC2 인스턴스 하나를 기반으로 하여 개발 목적에 적합하다.
  • 로드 밸런서를 이용한 고가용성: 프로덕션 환경에 적합하다.

Deployment

All at once

  • 가장 빠른 배포 옵션
  • 애플리케이션 다운타임 발생
  • 추가 요금 없음

Rolling

  • 기본적으로 용량 이하로 실행
  • 추가 요금 없음

Rolling with additional batches

  • 애플리케이션이 용량 이하로 실행되지 않음
  • 추가 요금 있음
  • 긴 배포 시간
  • 프로덕션 환경을 다루는 데 유용

Immutable

  • 다운타임 0
  • 새 코드가 새 인스턴스에 배포(임시로 ASG 연결)
  • 높은 비용, 용량 두배
  • 배포 시간이 가장 길다
  • 빠른 롤백
  • 프로덕션 환경을 다루는 데 유용

Blue/Green

  • 다운타임 0
  • Beanstalk에 내장된 기능이 아니라서 수동적인 작업이 필요

Traffic Splitting

  • 카나리아 테스트에 사용

Elastic Beanstalk CLI

: 개발 파이프라인을 자동화히려면 EB CLI 사용이 적합하다.

Beanstalk Lifecycle Policy

  • 계정 안에 최대 1000개의 애플리케이션 저장 가능
  • 이전 버전을 삭제하지 않으면 배포 불가능
  • 이전 버전을 삭제하기 위해 수명주기 정책을 따라야 한다.

Elastic Beanstalk Extensions

: UI에서 설정한 모든 매개변수는 파일을 사용해서 코드로 구성할 수 있다.

  • 모든 파일은 반드시 소스코드의 루트의 .ebextentions/ 디렉터리에 있어야 한다.
  • 파일은 반드시 YAML 또는 JSON 형식이어야 한다.(해당 파일의 확장자는 반드시 .config로 끝나야 한다.)

Elastic Beanstalk Under the Hood

CloudFormation

: 다른 AWS 서비스를 프로비저닝 하는 코드형 인프라 서비스

Elastic Beanstalk Cloning

: 기존 환경을 새 환경으로 복제하는데 정확히 같은 구성을 갖도록 할 수 있다.

  • 동일한 설정으로 테스트 버전을 배포하고자 할 때에 유용

Elastic Beanstalk Migration

Load Balancer

  • Beanstalk 환경을 한 번 생성하고 나면 일래스틱 로드 밸런서 유형은 변경이 불가능하고, 구성만 바꿀 수 있다.
  • 따라서 클래식 로드 밸런서를 애플리케이션 로드 밸런서로 업그레이드하거나 애플리케이션 로드 밸런서를 네트워크 로드 밸런서로 업그레이드하려면 다음 단계에 따라 마이그레이션을 수행해야 한다.
  1. 동일한 구성으로 새로운 환경을 생성한다.(로드 밸런서 제외)
  2. 애플리케이션을 새 환경에 배포한다.
  3. CNAME 교체나 Route 53을 이용해서 DNS 업데이트를 수행한다.

RDS with Elastic Beanstalk

: 애플리케이션을 이용해서 프로비저닝 가능

  • 개발이나 테스트를 하고자 하는 경우에 유용

Elastic Beanstalk Migration: Decouple RDS

  1. RDS 데이터베이스에 대한 스냅샷을 생성한다.
  2. RDS 콘솔로 이동하여 RDS 데이터베이스가 삭제되지 않도록 보호해 준다.
  3. 새로운 elastic beanstalk 환경을 생성한다.
  4. CNAME 교체, Route 53 DNS 업테이트를 수행한다.
  5. 기존 환경을 삭제한다.
  6. CloudFormation 스택 삭제(수동)

Single Docker

: 단일 도커의 경우에는 ECS가 기반이 되지 않고 EC2에서만 도커를 사용한다.

Multi Docker Container

: elastic beanstalk 내 EC2 인스턴스 당 여러 컨테이너를 실행할 수 있다.

  • Dockerrun.aws.json 파일은 ECS 태스크 정의를 생성할 때 사용된다.

Elastic Beanstalk and HTTPS

: SSL 인증서를 로드 밸런서에 로드한다.

  • SSL 인증서를 elastic beanstalk 콘솔에서 로드 밸런서 구성으로 직접 로드
  • securelistener-alb.config라고 하는 .ebextensions에서 직접 파일을 생성

Custom Plaform

0개의 댓글