블록체인
블록체인

Elastic Beanstalk

목차

개요

웹 애플리케이션 및 서비스를 배포하고 운영하는 서비스
사용자가 직접 인프라 리소스를 구성할 필요 없고 애플리케이션 코드에만 집중하면 됨
코드를 업로드하기만 하면 Elastic Beanstalk 가 용량 프로비저닝 , 로드 밸런싱 , Auto Scaling 부터 시작하여 애플리케이션 상태 모니터링에 등의 배포를 AWS 에서 자동으로 처리
미들웨어, EC2 인스턴스, RDS, Auto Scaling, CloudWatch를 사용한 감시와 알림 설정, SNS를 사용한 알림 등도 포함한 서비스를 운용하기 위해 필요한 환경을 모두 자동으로 구축
Java, .NET, PHP, Node.js, Python, Ruby, Go 및 Docker 웹 애플리케이션을 지원
언어를 선택하면 언어 등 환경 구성이 완료된 서버 생성하고 애플리케이션 배포, cpu 등 정해진 지표에 따라 Auto Scaling 자동 수행
고객은 nginx 소스코드만 올리면 되고 그 아래 부분에 인스턴스가 만들어지고 aws가 관리해줌

비교

개발 및 애플리케이션 deploy 및 시작

가동시킬 애플리케이션 개발 → EC2 인스턴스 생성 → 애플리케이션 동작을 위한 미들웨어 설치 및 설정 → 데이터베이스 구축 → 서버확장 및 로드밸런싱 → 인스턴스 감시 및 알림 설정

Elastic Beanstalk을 사용하는 경우

위의 절차를 모두 자동화(서버 운영에 필요한 대부분의 작업을 자동화하여 제공)
미들웨어, EC2인스턴스, RDS, ELB, Auto Scaling, CloudWatch를 사용한 감시와 알림 설정, SNS를 사용한 알림 등 환경을 모두 자동으로 구축
사용자는 애플리케이션을 디플로이하기만 하면 서비스 시작 가능

Elastic Beanstalk 워크플로

애플리케이션 디플로이 방법

war 또는 zip 파일 업로드

Ex) wordpress 다운로드하여 업로드

eb명령어

AWS에서 제공되는 Elastic Beanstalk 전용 CLI(AWS CLI와 별개)

IDE사용(통합 개발 환경)

Java와 .NET 애플리케이션은 AWS에서 제공하는 Toolfit for Eclipse, AWS Toolkit for Visual Studio 설치하여 사용

Docker

Elastic Beanstalk은 Docker에 대응
Elastic Beanstalk을 사용하면 Docker 컨테이너 디플로이 가능

환경종류

Web Server

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

Worker

요청 시 장기 실행 워크로드를 처리하거나 일정에 따라 작업을 수행하는 작업자 애플리케이션 실행
시간이 걸리는 처리 등을 백그라운드에서 처리하기 위한 환경 Ex) 동영상 인ㄴ코딩 처리 등