AWS Elastic Beanstalk

ggong·2021년 5월 27일
0

앱을 간편하게 배포할 수 있게 해주는 Elastic Beanstalk에 대해 정리해봅니당

1. AWS Elastic Beanstalk이 뭔가요?

AWS가 제공하는 서비스는 아주 많다. 100개 이상의 다양한 서비스를 통해 효율적이고 유연한 인프라 관리를 제공한다. 그렇지만 많은 서비스들 중 어떤 것을 선택해야 하고 어떤 조합으로 가져가야 하는지 사용자 입장에서는 어려울 수도 있다. EB(Elastic Beanstalk)은, 사용자들이 애플리케이션을 실행하는 인프라에 대해 자세히 알지 못해도 신속한 배포와 관리가 가능하도록 지원하는 서비스이다.

  • 인스턴스(EC2) 및 OS 설치
  • 용량 프로비저닝
  • 오토 스케일링 구성
  • 로드 밸런서 구성
  • 업데이트 배포 및 버전 관리
  • 모니터링 관리 설정

애플리케이션을 업로드하면 EB는 자동으로 위의 세부 정보들을 처리해준다. 프로비저닝이란, 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 준비해두는 것을 말한다.

2. Elastic Beanstalk은 개발자에게 왜 유용한가요?

DevOps를 구성하려면 서버, OS설치, 컨테이너 설치, 로그설정, 모니터링, 보안구성까지 생성과 관리 과정에서 복잡성이 늘어난다. 반면 EB는 클릭 또는 명령어 몇 줄을 통해 구성이 가능하다. 따라서 빠르게 배포 환경을 구성해 테스트를 진행하거나, 서버 설정에 대한 부담을 적게 가져가면서 배포 환경을 만들기에 유용하다.

3. 사용해보기

AWS Elastic Beanstalk 공식 가이드에는 EB의 작동 방식을 이해하는데 도움이 되는 실습 프로세스를 제공하고 있다. 생성부터 배포까지 하나씩 따라가보자.

1) 예제 애플리케이션 생성

Elastic Beanstalk 애플리케이션을 생성하고 애플리케이션 내에서 환경을 시작한다. 환경은 애플리케이션 코드를 실행하는 데 필요한 AWS 리소스 모음이다.

다음 링크를 사용하여 Elastic Beanstalk 콘솔로 접속한다. https://console.aws.amazon.com/elasticbeanstalk/home#/gettingStarted?applicationName=getting-started-app

위 페이지가 뜨고, 애플리케이션 이름은 자동으로 들어가 있다. (태그는 한번 선택해 봤음)
그 아래 플랫폼에는 여러 서버들 중 하나를 선택할 수 있다. Node.js 선택 후 하단의 '애플리케이션 생성'을 클릭한다.

애플리케이션 생성을 클릭하면 AWS는 자동으로 애플리케이션을 만들기 시작한다.

모든 리소스가 생성되고 애플리케이션을 실행하는 EC2 인스턴스가 상태 확인을 통과하면, 환경의 상태가 Ok로 변경되고 아래와 같은 화면이 뜬다. 이제 웹 애플리케이션의 웹사이트를 사용할 수 있다.

아까 전에 내가 선택한 플랫폼과 Node 버전이 사용되었다.
왼쪽에 있는 Gettingstartedapp-env 메뉴를 하나씩 들어가보자.

환경으로 이동
지금 running 되고 있는 웹 사이트로 연결된다. (소스는 실습용 예시로 제공됨)

구성
소프트웨어, 인스턴스, 용량, 로드 밸런서, 모니터링 등 이 환경에 프로비저닝된 리소스들에 대한 정보가 표시된다. 수정도 가능하지만 뭘 해야할지 모르니까 패스.

로그
EC2 인스턴스에서 로그를 검색할 수 있다.

상태
애플리케이션을 실행하는 Amazon EC2 인스턴스에 대한 상태와 세부 상태 정보가 표시된다.

모니터링
가장 우와 했던 기능. 평균 지연 시간 및 CPU 사용률 등 환경에 대한 통계가 표시된다. 이 페이지를 사용하여 모니터링 중인 측정치에 대한 경보를 만들 수 있다.

경보
처음 진입시 모니터링 대시보드에서 그래프를 통해 경보를 추가하라는 안내 문구가 뜬다. 모니터링 과정에서 특정 범위를 벗어나면 알려주는 기능인 듯.

이벤트
사용중인 EB 서비스와 리소스들의 이벤트들이 표시된다.

태그
키-밸류 형태로 저장하는 태그를 추가할 수 있다. (어디에 쓰이는 태그인지는 아직 잘 모르겠음)

여기까지 생성은 끝!
이번에는 새로운 소스 배포를 해보자.

2) 새 버전의 어플리케이션 배포

AWS의 실습 가이드에서는 새로운 소스 배포를 해보기 위해 플랫폼별로 예시 압축 파일을 제공한다.

Node.js의 예시 파일을 받아서 열어보았다. app.js, cron.yaml, EBSampleApp-Nodejs.iml, index.html, package.json 파일만 들어있다.

아까 본 환경 페이지에서 가운데 '업로드 및 배포'를 클릭한다.

클릭 후 '파일 선택'에서 아까 받은 zip 파일을 업로드한다.
파일을 업로드하고 나면 버전 레이블 값은 자동으로 SampleApplication-1로 자동완성되어서, 그대로 진행했다.

'배포'를 클릭하면 배포가 시작된다. 배포가 완료되면 아래처럼 환경에서 '실행 중인 버전'이 SampleApplication-1으로 바뀌어 있는 것을 볼 수 있다.


4. 정리

AWS Elastic Beanstalk으로 배포를 한다고 했을 때 어떤 서비스인지 잘 몰랐다. 개념적인 설명을 봐도 머리에 안 그려졌었는데, 그래도 간단하게나마 서비스를 올려보니 왜 쉽다고 하는지 이해할 수 있을 것 같았다.
일단 플랫폼만 선택하면 자동으로 EC2 생성부터 여러가지 기능을 제공해 주는 게 가장 좋았고, 배포도 직관적이라 편했다. 실무에서는 훨씬 복잡하게 사용하고 있겠지만, 대충이라도 프로세스를 경험해봐서 좋았던 것 같다.



참고 :
대디장의 기억저장소
(https://yonguri.tistory.com/35)
AWS Elastic Beanstalk 개발자 가이드
(https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/Welcome.html)

profile
파닥파닥 FE 개발자의 기록용 블로그

0개의 댓글