클라우드/AWS 서비스

Elastic Beanstalk

비니화이팅 2022. 10. 18. 10:26

개요

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