본문 바로가기
프로그래밍

아마존 웹 서비스 - Elastic Beanstalk

by 킹부자 2020. 11. 16.
728x90
반응형
SMALL

Elastic Beanstalk는 무엇인가?

 

Elastic Beanstalk는 EC2 완전관리 서비스다. EC2 여러대를 하나로 묶어서 클릭 몇번으로 관리를 할 수 있다는게 특징이다. EC2와 ELB를 조합하므로써 클릭 몇번으로 EC2를 늘임으로써 부하 분산을 유도할 수 있다. 추가로 Auto Scaling을 이용해 EC2 인스턴스의 상황에 따라서 자동으로 서버늘 늘이고 줄이는 기능도 포함되어있다.

 

Elastic Beanstalk의 구조

EC2 여러대가 하나의 Auto Scaling Group(오토 스케일링 그룹)에 속해있으며, 서버와 연결이 시작되면 먼저 ELB(Elastic Load Balancer)를 거쳐 ELB와 연결된 Auto Scaling Group 안에 있는 EC2중 하나에 연결을 맺는다.

 

Elastic Beanstalk의 특징

위에서도 언급했듯이 클릭 몇번으로 EC2를 늘이고 줄이고, 재시동도 간편해서 EC2 관리가 간편하다.

 

Auto Scaling의 조건은 다양하게 줄 수 있는데, 서버 CPU 사용률, 연결(요청) 수, 서버 Health Check 상태 등등 다양하다. 그리고 CloudWatch와 연동해서 각 서버의 로그를 실시간으로 확인이 가능하다.

 

Elastic Beanstalk는 Java, Node.js, Python, Ruby, Go, Docker 등등 다양한 언어와 플랫폼을 지원하며 Apache 또는 Nginx와 함께 사용이 가능하다. 덕분인지 때문인지는 모르겠지만 beanstalk환경과 웹서버 환경 2개를 모두 설정해야하는 상황도 생긴다. http를 https로 리다이렉트 시키는 경우에는 애플리케이션 단 보다는 웹서버단에서 처리하는게 유리한데 이런 설정을 만지기 위해서는 Apache, Nginx의 설정파일까지 수정할 수 있어야 한다. 

 

배포는 cli 환경에서 명령어 한줄로 처리하거나, 프로젝트 폴더를 압축해서 업로드 하는 것으로 간단하게 배포가 가능하다. 하지만 EC2가 늘어나면 그만큼 배포시간도 길어지게 되는데, 그때는 옵션을 통해서 다양한 배포방식을 선택 할 수 있다. 하나씩 배포하거나, 일정 비율만큼 배포하고 나머지는 현재 버전을 유지하는 등 방식은 다양하다.

 

온디맨드 인스턴스와 스팟 인스턴스와 같이 사용이 가능하기 때문에 서비스 사용량과 부하에 따라 적극적으로 활용하면 그냥 사용하는것보다 비용에서 이득을 볼 수 있다. ELB 가격이 생각보다 만만치 않기 때문에 꼭 하는것을 권장한다.

 

ELB도 종류가 여러 가지있다. Classic Load Balancer, Application Load Balancer, Network Load Balancer 3개가 있다. 개인적인 경험으로는 Application Load Balancer가 가장 설정이 간단했다. 그런데 조금 비싸다...

 

728x90
반응형
LIST

댓글