제목: "[AWS,Github Action] Elastic Beanstalk에 SpringBoot 배포하기 (1) = EB 기본 세팅"
작성자: tistory(EARTH_ROOPRETELCHAM)
작성자 수정일: 2021년10월12일
링크: https://earth-95.tistory.com/108?category=975627
작성일: 2022년6월9일
먼저, AWS Console에 접근하여 Beanstalk을 검색하고 Create Application을 생성하자.
위와 같이 Application 생성 항목을 채운 후, 추가 옵션 구성을 클릭하면 자동 생성된 환경에 대한 구성을 변경할 수 있다.
사전 설정에서 단일 인스턴스가 아닌 사용자 지정 구성을 선택한 이유는, 단일 인스턴스 옵션으로 설정시 로드 밸런서를 설정할 수 없어 EB으로 무중단 배포가 불가하기 때문이다.
인스턴스의 보안 그룹 추가의 경우 자신의 PC에서 SSH와 HTTP를 허용하는 보안 그룹이므로, 해당하는 보안 그룹이 없다면 보안그룹을 작성하고 생성한 보안그룹을 넣어주면 된다.
용량에서 Auto Scaling 그룹의 최대 인스턴스를 1개로 지정한 이유는, dev이기 때문에 트래픽이 늘어날 확률이 없기 때문이다. 만약 운영 환경이고, 돈이 충분하다면 auto scaling의 최대 인스턴스를 늘려볼 수 있다.
배포 방식을 추가 배치를 사용한 롤링으로 지정하였다. 추가 배치를 사용한 롤링이 무엇인지는 하단에 설명을 작성해두었다.
로드 밸런서 유형은 기존에 ELB로 불리던 Classic Load Balancer를 많이 사용하지만, 요즘은 다양한 라우팅 기능을 지원하는 Application Load Balancer(ALB)를 많이 사용하므로, ALB로 설정하였다.
위와 같이 구성이 완료되면, 앱 생성을 눌러 Elastic Beanstalk Application 및 Enviromnet를 생성한다.
필자의 경우, 처음 어플리케이션 생성 시 함께 생성된 환경의 이름과 도메인이 마음에 들지 않아 , 아래와 같이 다시 환경을 세팅하여 진행하였다. 이름을 제외하고는 동일한 환경이니 순차적으로 진행하면 된다.. 만약 필자처럼 환경을 재구성할 것이라면, 기존 환경은 반드시 환경 종료를 클릭하여 종료한 뒤 사용하여야 한다.
추가 배치를 사용한 롤링(Rolling with Additional Batch)
AWS EB dev day 영상 캡쳐본이다. 해당 영상을 보면 다른 배포 방식 역시 확인 가능하며, 현재 필요한 Rolling With Additional Batch에 대해서만 남겨두었다.
유튜브 내용 정리
롤링 배포 방식에서 50프로 Capacity로 가져간다고 하면, 결국 특정 시점에 capacity가 100이 될 수 없다. 이 때, Capacity를 100프로로 유지하고 싶다면 Rolling with Additional Batch를 사용해 볼 수 있다.
Rolling With Additional Batch를 사용하면, 신규 버전의 인스턴스를 추가로 임시 세팅을 하여 세팅이 완료되면 순간적으로 capacity가 100이 넘어가게 된다. 물론, 이 배포 방식 역시 사람마다 버전이 상이하게 보일 수 있다.
그 후 기존 인스턴스들 일부(여기서는 절반씩 배포기 때문에 2개씩 진행) 떼어 버전 업데이트를 진행한다. 버전 업그레이드가 완료되면 다시 서비스에 올리고, 이제 남은 인스턴스는 제거하낟.