[AWS Elastic Beanstalk] Elastic Beanstalk 개념 및 애플리케이션 생성

·2023년 5월 15일
0

AWS

목록 보기
4/11
post-thumbnail

1. Elastic Beanstalk

  • 애플리케이션을 만들 수 있는 환경을 빠르고 신속하게 구성해서 관리할 수 있는 서비스이다.
  • 줄여서 EB라고도 부른다.
  • 복잡성을 줄일 수 있고, 애플리케이션을 업로드만 하면 용량 프로 비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리한다.
  • Go, Java, .NET, Node.js, PHP, Python, Ruby에서 개발된 애플리케이션을 지원한다.
  • 또한 애플리케이션을 배포할 때 Elastic Beanstalk가 선택된 지원 가능 플랫폼 버전을 구축하고 AWS 리소스를 하나 이상 프로비저닝하여 애플리케이션을 실행한다.
  • 추가 비용 없이 애플리케이션을 저장 및 실행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 된다.

2. Elastic Beanstalk의 Workflow

  • 개발자가 Elastic Beanstalk에 개발한 코드를 업로드한다.
  • Elastic Beanstalk는 자동으로 필요한 AWS 리소스를 생성하고 애플리케이션을 실행한다.
  • 애플리케이션 실행이 완료되면 개발자가 환경을 직접 관리하고 애플리케이션의 새로운 버전을 배포할 수 있다.

3. Elastic Beanstalk의 장점

  • 빠르고 간편한 시작이 가능
  • Auto Scalling 설정을 사용해 애플리케이션의 특정 필요에 따라 자동으로 애플리케이션의 확장 및 축소가 가능
  • 인프라를 프로비저닝하고 운영할 뿐만 아니라 애플리케이션 스택을 관리해 주고, 애플리케이션이 실행되는 기본 플랫폼을 최신 패치와 업데이트를 통해 최신 상태로 유지해 주기 때문에 개발자가 서버, 데이터베이스, 로드밸런스, 방화벽 등을 관리하고 구성하는 데 시간을 들일 필요가 없음
  • 애플리케이션을 실행하는 데 필요한 AWS 리소스를 파악하여 완벽하게 제어 가능
  • CI/CD 구성 시 Beanstalk 인스턴스를 바로 선택할 수 있어서 빠르게 CI/CD 구성 가능
  • 다른 서비스를 구성할 때도 AWS 내에서 구성할 수 있으므로 편리함

4. Elastic Beanstalk 애플리케이션 생성하기

1) Elastic Beanstalk으로 이동

  • 먼저 AWS 홈페이지에서 Elastic Beanstalk으로 이동해 준다.
  • 검색을 통해 이동하면 다음과 같은 화면이 뜨는데 애플리케이션 생성을 눌러 준다.

2) 환경 티어 설정

  • 환경 티어는 웹 서버 환경작업자 환경이 존재한다.
    • 웹 서버 환경: HTTP 혹은 HTTPS 요청을 처리할 때 사용.
    • 작업자 환경: 완료하는 데 오래 걸리는 작업 또는 워크플로를 수행할 경우 사용. Amazon SQS 대기열을 관리하고 대기열에서 읽는 작업이 필요할 때 사용.
  • 환경에서 실행하는 애플리케이션 유형을 지정하고 Elastic Beanstalk에서 이러한 애플리케이션을 지원하기 위해 프로비저닝하는 리소스를 결정한다.

3) 애플리케이션 이름 설정

  • 생성할 애플리케이션 이름을 설정해 준다.
  • 나는 test용 애플리케이션이라 다음과 같이 설정해 주었다.

4) 플랫폼 설정

  • 애플리케이션에 사용할 플랫폼을 설정해 준다.
  • Elastic Beanstalk는 앞서 설명했듯 다양한 플랫폼을 지원하기 때문에 .NET, Docker, Go, Java, Node.js, PHP, Python, Ruby, Tomcat과 같은 플랫폼을 선택할 수 있으며 해당 플랫폼의 브랜치와 버전 역시 선택 가능하다.
  • 플랫폼을 선택하게 되면 default로 추천되는 버전이 선택된다.

5) 애플리케이션 코드

  • 만약 코드가 없는 초기 생성 단계이면 샘플 애플리케이션을 선택해 주면 된다.
  • 코드를 업로드 할 수도 있고, 기존에 업로드 했던 애플리케이션을 가지고 올 수도 있다.

6) 서비스 액세스 구성

  • 기존 서비스 역할을 사용한다면 기존 서비스 역할 중 선택할 수 있도록 콤보 박스가 뜨게 된다.
  • 만약 새 서비스 역할 생성 및 사용을 선택한다면 새로운 롤이 생성되며 해당 롤에 default 세팅이 되게 된다. 이 부분은 권한 세부 정보 보기를 눌러 확인이 가능하다.
  • 키 페어의 경우 미리 세팅을 해 두는 것이 좋다.

7) Virtual Private Cloud (VPC)

  • 네트워킹, 데이터베이스 및 태그 설정 단계에 있는 선택 사항이다. 선택 사항이며 애플리케이션을 생성 후 지정할 수 있다.
  • 가상 네트워크 망이다.
  • 하나의 네트워크로 묶을 수 있다.
  • 만약 여러 개의 서비스가 있고 서비스 네트워크에 대해 접근 제어나 역할 제어가 필요하다면 VPC를 구성한 후 그 안에 서비스를 넣을 수 있다.
  • PublicPrivate이 있고 Private에 서비스가 있다면 외부와 접근이 차단된다.
  • 실제 운영되는 서비스라면 VPC를 사용해야 한다.

8) 제출

  • 서비스 액세스 구성 이후의 단계는 모두 선택 사항이다.
  • 선택 사항은 애플리케이션을 생성된 이후에도 변경 및 추가가 가능하다. 하지만 변경 및 추가하여 애플리케이션에 반영되는 과정이 시간이 걸릴 수 있으니 이미 정해진 부분들은 애플리케이션 생성 시 선택하는 것을 추천한다.
  • 최종 검토 단계에서 설정한 내용들을 확인하고 하단 제일 밑에 있는 제출 버튼을 누르면 애플리케이션이 생성된다.
  • 애플리케이션 환경 생성 과정에 시간이 걸린다.
  • Elastic Beanstalk이 생성되면 EC2 대시보드에서도 확인이 가능하다.
profile
송의 개발 LOG

0개의 댓글