목차
개요
•
웹 애플리케이션 및 서비스를 배포하고 운영하는 서비스
•
사용자가 직접 인프라 리소스를 구성할 필요 없고 애플리케이션 코드에만 집중하면 됨
•
코드를 업로드하기만 하면 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) 동영상 인ㄴ코딩 처리 등