TIL/AWS
애플리케이션을 빠르게 인스턴스화 & Elastic Beanstalk
초집중
2023. 5. 27. 11:04
클라우드 방식을 통해 애플리케이션을 빠르게 인스턴스화
EC2 인스턴스를 빠르게 구성하고 쉽게 배포할 수 있어야 한다
Golden AMI
- 애플리케이션과 OS 종속성등 모든 것을 사전에 생성하고 AMI를 만듬
- 이후 AMI를 통해 실행
User data를 통한 Bootstraping
- 매우 느리고 다른 EC2 인스턴스가 했던 일들을 반복함
Hybrid - Elastic Beanstalk
- Golden AMI와 User 데이터 혼합
RDS
- 스냅샷을 통해 복원되고 데이터베이스에 스키마, 데이터가 준비되어있다
EBS
- 스냅샷을 통해 복구되고 디스크는 미리 포맷되어있고 데이터를 가지고 있다
Elastic Beanstalk
- 개발자는 배포할 수 많은 애플리케이션이 있고 이를 매번 다시 설치하고 구성 작업을하는 것은 힘들다
- 다시말해 인프라와 배포된 코드를 관리하거나 데이터와 로드밸런서 등을 계속해서 구성하고 싶지 않다
- 또한 이 모든 것이 확장 가능해야한다
→ 이런 것들을 해결해주는게 Beanstalk이라고 한다
Elastic Beanstalk이란
- AWS에서 애플리케이션을 배포하는 개발자 중심의 관점
- 하나의 인터페이스로 모든 구성 요소를 재사용 하는 것
- 배포 관리 서비스 → 인스턴스 구성, 로드 밸런싱 설정, 상태 모니터링 등등
- 코드만 신경쓸 수 있게 해준다
- 서비스 자체는 무료지만 ASG, ELB 자체를 사용하는 비용은 내야함
Elastic Beanstalk 구성
- Application: Elastic Beanstalk의 구성 요소 (환경, 버전, 구성)
- Application Version: 배포하기 위해 관리되는 애플리케이션 코드의 버전
- Environment: 특정 애플리케이션 버전을 실행하는 리소스의 모음
- 환경 내에서는 한번에 하나의 애플리케이션 버전만 존재
- 이외엔 업데이트를 해야함
- 웹 서버 환경티어와 개발자 환경 티어가 있다
- dev, test, prod 어떤 환경이든 다수의 환경을 만들 수 있다
Web Server Tier vs Worker Tier
Worker 환경에서는 SQS 큐를 사용하며 SQS 메시지가 많을 수록 EC2 인스턴스도 많아진다.
어떤 것인지는 이해했는데 왜 Worker 환경에서 SQS를 사용하는지 잘 모르겠다
완전관리형 메시지 대기열 - Amazon Simple Queue Service - Amazon Web Services
Beanstalk 실습
SAA과정에서는 단순하게 살펴보고 Developer로 들어가면 더 자세하게 알아 볼 수 있다
Beanstalk를 보면 현재까지 배웠던 모든 구성이 다 있고 설정을 일일히 구성할 필요가 없다
Beanstalk은 내부에서 CloudFormation을 활용해 애플리케이션을 배포한다