끄적끄적 아무기록

AWS Elastic Beanstalk

by 현생사는갓생지망생
반응형

Elastic Beanstalk



웹 어플리케이션/웹 서비스를 배포하고, 확장하고, 관리하는데 있어

쉽고 빠르게 할 수 있도록 돕는 완전 관리형 서비스이다.


Elastic Beanstalk는 Java, Go, PHP, .NET, Node.js, Python, Ruby 등으로 개발된 앱을 지원하고

각 플랫폼마다 다양한 구성을 지원한다.


쉽게 EC2로 웹 서비스를 만들어 사용하는 경우를 생각해보자.

일단 가동시킬 애플리케이션을 개발한다.

이어서 EC2 인스턴스를 생성하고, 애플리케이션 동작을 위한 미들웨어 설치와 설정을 진행한다.

필요하다면 데이터베이스도 구축하고 서버를 확장하고 로드밸런싱한다.

이어서 인스턴스를 모니터링하고 알림을 보내주는 구조도 만든다.

여기까지 해야 애플리케이션을 디플로이하고 웹 서비스를 시작할 수 있다.


Elastic Beanstalk은 이러한 절차를 모두 자동으로 해준다.

Elastic Beanstalk가 용량 프로비저닝, 로드 밸런싱, 크기 조정, 애플리케이션 상태 모니터링 등의

호스팅 환경 세부 작업을 처리하므로 이러한 작업을 사용자가 직접 할 필요가 없다.

따라서 사용자는 애플리케이션을 디플로이하기만 하면 된다.



Elastic Beanstalk의 장점


1. 빠르고 간단한 시작

2. 개발자 생산성

3. 완전한 자원 제어

4. 불필요한 자원 낭비 없음

5. 사용에 따른 추가 요금이 없음(사용되는 AWS 리소스에 대해서만 비용 지불)



Docker


Elastic Beanstalk은 Docker에 대응하고 있다.

Docker란 컨테이너 형태의 가상 소프트웨어이다.

Elastic Beanstalk을 사용하연 Docker 컨테이너를 디플로이할 수 있다.

따라서 OS(Linux)부터 애플리케이션까지 한꺼번에 디플로이할 수 있다는 것이다.

Elastic Beanstalk이 지원하지 않는 플랫폼의 경우 Docker를 사용하면 활용할 수 있다.



환경 종류


Elastic Beanstalk에는 환경 종류라는 개념이 있다.

이는 생성한 애플리케이션이 어떤 역할을 하고 있는지를 나타낸다.


1. Web Server

HTTP/HTTPS 요청을 처리하는 일반적인 웹 애플리케이션을 동작시키는 환경.


2. Worker

시간이 걸리는 처리 등을 백그라운드에서 처리하기 위한 환경.

ex. 동영상 인코딩 처리


웹 서버가 인코딩 처리 요청을 받는다.

요청받은 인코딩 요청을 큐에 저장하고, 일단 처리가 시작되었다는 것만 응답한다.

큐에 등록된 처리를 백그라운드에서 실행한다.

처리 완료 후에는 큐에서 제거한다.



환경 유형


1. Load-balancing, Auto Scaling Environment

2. Single-instance Environment


반응형

'AWS 공부기록 > Compute' 카테고리의 다른 글

Amazon Elastic Compute Cloud  (0) 2019.01.22
Elastic Load Balancing(ELB)  (0) 2019.01.22
Amazon Elastic Block Store(EBS)  (0) 2019.01.22
Elastic Beanstalk_실습  (0) 2019.01.14
AWS Service - Lightsail  (0) 2019.01.10

블로그의 정보

현생이네

현생사는갓생지망생

활동하기