AWS Elastic Beanstalk이란?? (feat. 배포 실습)
Elastic Beanstalk에 대해 알아보고 만들어보자
Elastic Beanstalk 이란??
Elastic Beanstalk는 간단하게 말하면
AWS에서 제공하는 웹 애플리케이션 및 서비스를 간편하게 배포, 컨트롤해주는 서비스이다.
단순 코드 업로드로 오토스케일링, 로드밸런싱, 모니터링, 배포, ,등등의 기능을 제공해준다.
따라서 여러 복잡한 리소스들을 한번에 쉽게 관리, 제어가 가능하다.
- 중요한것은 추가 비용이 없다.
그냥 사용하는 리소스들에 대한 비용만 지불하면 된다.
그니까 ec2, rds, elb 이런 기본 비용만 내면 된다.
다만 지원하는 환경이 한정되어 있다.
그치만 대부분 지원함
- Go, Java, .NET, Node.js, PHP, Python 및 Ruby
또한 CLI 또한 존재한다.
그럼 만들어보면서 더 알아보자
직접해보자.
간단하게 콘솔에서 진행
VPC 생성
VPC는
간단하게만 만들어주자
EC2 key-pair
ec2 콘솔창에서 키페어를 하나 만들어주자
애플리케이션 생성
환경 구성
기본적으로 웹서버 환경을 선택해준다.
이름은 자유롭게 설정해준다.
플랫폼은
테스트로 파이선을 선택
- 다른 환경 선택해도 상관없다
개인적으로 이전 프로젝트에서는 코드 번들로 올렸지만
도커로 올리는것이 훨씬 좋아보인다.
- 도커로 할껄..
- 이미 다 올리고 알아버려서...
코드도 샘플로 일단 해준다.
사전 설정을 고가용성으로 해주면
로드밸런서, 오토스케일링이 추가된다.
서비스 엑세스
여기서
-
서비스 역할 이름
-
EC2 키페어
-
EC2 인스턴스 프로파일
3개를 선택해야하는데 -
서비스 역할 이름
-
EC2 인스턴스 프로파일
요건 IAM Role이다.
IAM 역할
Elastic Beanstalk Role
Elastic Beanstalk에 권한을 부여하는 것이다.
예를 들어
- 로그, 모니터링 조회
- ELB 생성, RDS 생성
이런 권한을 줄 수 있다.
EC2 인스턴스 프로파일
요건 EB내 인스턴스가 다른 서비스에 접근하는 권한들을 포함시켜야한다.
예를 들어
- S3에 저장
- RDS에 접근
뭐 등등
요런 권한을 주면 된다.
각자 맞게 추가해주자
네트워킹, 데이터베이스 및 태그 설정
처음 생성한 VPC를 선택
인스턴스는 public 으로 2개 선택해준다.
DB는 private으로 2개
아래 디비는 각자 맞게 설정한다.
그치만 일반적으로 EB 내에서 생성하는 경우는 거의 없다.
인스턴스 트래픽 및 크기 조정 구성
여기선
오토스케일링 그룹 개수 선택
로드밸런서 유형
로그
정도만 각자 맞게 설정해주면 된다.
고가용성을 선택하는 경우 로드밸런서를 Public Subent에 두고, 인스턴스를 Private Subent에 둠으로써 외부 접근을 제한하도록 구성하는 것이 좋다.
업데이트, 모니터링 및 로깅 구성
배포쪽이 좀 중요하다.
-
한 번에 배포
-
롤링
-
추가 배치를 활용한 롤링
-
변경불가
-
트래픽 분할
변경 불가 방식과 비슷하지만
카나리 배포가 가능하다.
이후 구성 완료 해주면
정상적으로 실행이 된다~
참고 자료
- https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/Welcome.html
- https://tech.cloud.nongshim.co.kr/2021/11/01/소개-aws-elastic-beanstalk란/
- https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/concepts.html
- https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/concepts-webserver.html
- https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/concepts-roles.html
- https://dingdingmin-back-end-developer.tistory.com/entry/Elastic-Beanstalk-정복하기-1-콘솔-1페이지
- https://www.youtube.com/watch?v=uiM1xzOX8Qg
- https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb-cli3.html
- https://dev.classmethod.jp/articles/deploy-express-application-to-elastic-beanstalk/
- https://webmobilez.com/awsmaterial/elastic-beanstalk-deployment/