나의 이야기

AWS

Elastic Beanstalk에 SpringBoot배포하기

더보기

Elastic Beanstalk는 서비스를 배포하고 확장하는 프로세스를
단순화하도록 설계된  AWS에서 제공하는 서비스이다 .

  • Java, .NET, PHP, Node.js, Python, Ruby, Go 및 Docker와 같은 다양한 프로그래밍 언어 및 프레임 워크를 지원한다
  • 트래픽이나 로드 변경시 애플리케이션을 자동 확장
  • GUI형식으로 Beanstalk 관리 페이지에서 바로 배포 관리 할 수 있다
  • 다른 AWS서비스와의 통합이 자유롭다 
  • 모니터링 탭이 있어 서버 모니터링이 가능

- EB AWS 정책이 바뀔때 인터페이스가 바뀌어 삽질을 좀 많이 하였다.

1. Elastic Beanstalk 어플리케이션 및 환경 기본 세팅하기

 

- 사용자 지정 구성을 선택한 이유는 단일 인스턴스 옵션으로 설정 시 로드 밸런서를 설정할 수 없다고 하여 Beanstalk으로 무중단 배포가 불가하여 지정하였다.

 

2. 서비스 액세스 구성

- IAM에서 EC2 인스턴스 프로파일의 관리 정책을 할당해주는 작업이 중요하다.

 

-  EC2 인스턴스 프로파일 권한 세부정보 보기를 클릭

 

- IAM 콘솔로 이동

- IAM 콘솔로 이동 후 역할 생성

 

- EC2를 선택하고 다음 클릭

 

- 아래의 사진의 검색창에 이와같은 정책을 추가해 준다.

  • AWSElasticBeanstalkWebTier
  • AWSElasticBeanstalkWorkerTier
  • AWSElasticBeanstalkMulticontainerDocker

 

- 역할 이름을 aws-elasticbeanstalk-ec2-role이라 세팅 후 쭉 스크롤 하여 역할 생성을 클릭

 

- 다시 EB로 돌아와서 새로고침 후 EC 인스턴스 프로파일에 자동으로 IAM 인스턴스가 들어간 것을 확인 후 다음을 클릭

- EC2 키 페어의 옵션이 뜬다면 설정해도 좋다

3. 인스턴스

- IMDSv1 활성화를 시킨다

 

- 로드 벨런싱으로 바꾼다( dev이기 때문에 트래픽이 늘어날 확률이 없어 최대 인스턴스를 1개로 지정 )

- 이후 그대로 두고 다음을 눌렀다.

 

 

- 배포 정책을 추가 배치를 사용한 롤링으로 바꾼 이후 크게 건든거 없이 제출을 하였다

 

- 환경 개요의 상태 부분이 Pending으로 되어있는데 이게 OK가 될때까지 기다려준다.

 

- 이런 식으로 상태가 ok가 되면 도메인을 클릭한다.

 

- 이러한 웹사이트가 뜬다면 성공!