Github Action과 Elastic Beanstalk로 서버 배포하기 - (1) Elastic Beanstalk 이해하기

유아 Yooa·2023년 6월 14일
1

CI/CD

목록 보기
9/9

Overview

공모전에 필요한 서버를 Github Action과 AWS Elastic Beanstalk를 활용하여 CI/CD를 구축 & 배포하는 것을 목표로 한다.

아래는 최종 소프트웨어 아키텍처이다.


Elastic Beanstalk

AWS Elastic Beanstalk 공식 문서
정확하고 자세한 정보는 위를 참고하자.

AWS에서는 실제로 100개 이상의 서비스를 제공하고 있다. (나는 이 중에서 10개도 안써봤다.😿) 모든 서비스를 잘 알고 능숙하게 사용하기란 어렵기 마련이다.

Elastic Beanstalk은 클라우드 리소스를 더욱 쉽게 조작할 수 있도록 하는 서비스이다. 애플리케이션을 실행하는 인프라에 대하여 자세하게 알지 못해도 AWS 클라우드에서 신속하게 배포하고 관리할 수 있다.

관리 복잡성을 줄일 수 있으며, 어플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 스케일링, 어플리케이션 health 모니터링을 자동으로 처리해준다고👀

요금

Elastic Beanstalk(이하 EB) 사용은 모두 무료이며 EB를 통해 생성되는 기본 인스턴스에 대해서만 과금이 된다.

work flow

  • 어플리케이션을 생성하고, 어플리케이션 소스 번들의 형태(e.g. java .war 파일)로 어플리케이션 버전을 EB에 업로드한다.
  • EB가 자동으로 환경을 실행하고 코드 실행에 필요한 AWS 리소스를 생성 및 구성한다.
  • 환경 실행 후에는 직접 관리하고 새로운 앱 버전을 배포할 수 있다.
  • 어플리케이션 배포 후에는 상태 등 모든 정보를 EB 콘솔 혹은 AWS CLI 등을 통하여 확인할 수 있다.

EB 개념

application

  • EB 어플리케이션은 환경, 버전 및 환경 구성을 포함한 EB 구성 요소를 grouping
    • 개념적으로 폴더와 유사

application version

  • 웹 어플리케이션에 배포 가능한 코드의 레이블이 지정된 특정 반복
  • Java .war 파일과 같이 배포 가능한 코드가 포함된 Amazon Simple Storage Service(Amazon S3) 개체를 가리킨다.
  • application의 일부.
    • 여러 버전이 있을 수 있으며 각 application 버전은 고유하다.

environment

  • application version을 실행하는 AWS 리소스의 모음
    • application 코드가 복제되어 동작되는 서버 (prod, dev 환경)
  • 각 environment은 한 번에 하나의 application version만 실행하지만 여러 환경에서 동일한 application version 또는 다른 application version을 동시에 실행할 수 있다.
  • 환경을 생성할 때 Elastic Beanstalk는 지정한 application version을 실행하는 데 필요한 리소스를 프로비저닝한다.

environment tier

  • environment에서 실행되는 application의 유형을 프로비저닝할 리소스를 결정
    • HTTP 요청을 처리하는 어플리케이션은 web server environment(웹 서버 환경) tier에서 실행
    • Amazon SQS(Simple Queue Service)에서 작업(e.g. 백엔드에서 동작하는 cronjob 등)을 가져온다면 worker environment(작업자 환경) tier에서 실행

environment configuration

  • environment 및 관련 리소스의 작동 방식을 정의하는 매개 변수 및 설정 모음을 식별
  • environment의 configuration 세팅을 업데이트하면 EB는 변경 내용을 기존 리소스에 자동으로 적용하거나 변경 유형에 따라 새 리소스를 삭제하고 배포

saved configuration

  • unique e### platformnvironment configuration을 생성하는 시작점으로 사용할 수 있는 템플릿

platform

  • OS, 프로그래밍 언어 런타임, 웹 서버, 어플리케이션 서버 및 EB 구성 요소의 조합

ref
ElasticBeanstalk 이란?
Github Action 과 Elastic Beanstalk 로 서버 배포하기 - EB 생성하기

profile
기록이 주는 즐거움

1개의 댓글

comment-user-thumbnail
2023년 7월 3일

글이 너무 깔끔하시네요 !
잘 보고 갑니다

답글 달기