EB에 SpringBoot 배포(1) - EB 기본 세팅

dragonappear·2022년 6월 9일
1

ElasticBeanstalk

목록 보기
2/6

출처 및 참고

제목: "[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일

EB 어플리케이션 및 환경 기본 세팅

먼저, AWS Console에 접근하여 Beanstalk을 검색하고 Create Application을 생성하자.

위와 같이 Application 생성 항목을 채운 후, 추가 옵션 구성을 클릭하면 자동 생성된 환경에 대한 구성을 변경할 수 있다.

인스턴스 보안그룹

용량

로드 밸런서

롤링 업데이트

보안

  • 사전 설정에서 단일 인스턴스가 아닌 사용자 지정 구성을 선택한 이유는, 단일 인스턴스 옵션으로 설정시 로드 밸런서를 설정할 수 없어 EB으로 무중단 배포가 불가하기 때문이다.

  • 인스턴스의 보안 그룹 추가의 경우 자신의 PC에서 SSH와 HTTP를 허용하는 보안 그룹이므로, 해당하는 보안 그룹이 없다면 보안그룹을 작성하고 생성한 보안그룹을 넣어주면 된다.

  • 용량에서 Auto Scaling 그룹의 최대 인스턴스를 1개로 지정한 이유는, dev이기 때문에 트래픽이 늘어날 확률이 없기 때문이다. 만약 운영 환경이고, 돈이 충분하다면 auto scaling의 최대 인스턴스를 늘려볼 수 있다.

  • 배포 방식을 추가 배치를 사용한 롤링으로 지정하였다. 추가 배치를 사용한 롤링이 무엇인지는 하단에 설명을 작성해두었다.

    • 간단히 말하자면, 현재 인스턴스는 1개이며, 추가 배치를 사용한 롤링을 이용하면 배포 시 신규 인스턴스에 신규 버전을 올리고 해당 인스턴스가 문제가 없으면 기존 인스턴스를 죽이는 것이다.
    • 인스턴스가 1개이고, 배치 크기가 100프로이기 때문에 위와 같이 설명하였다.
  • 로드 밸런서 유형은 기존에 ELB로 불리던 Classic Load Balancer를 많이 사용하지만, 요즘은 다양한 라우팅 기능을 지원하는 Application Load Balancer(ALB)를 많이 사용하므로, ALB로 설정하였다.

위와 같이 구성이 완료되면, 앱 생성을 눌러 Elastic Beanstalk Application 및 Enviromnet를 생성한다.

  • 생성이 완료된 후 EB -> 환경에 들어가면 신규로 만든 환경이 뜨고 해당 환경을 클릭하면 해당 환경이 올라간 어플리케이션을 확인할 수 있다.
  • 하나의 어플리케이션 당 여러 환경을 가질 수 있기 때문에 환경은 어플리케이션 하위에 있다고 보면 된다.
    • 예를 들어, 어플리케이션이 뜨는 환경이 prod와 dev가 있다면 각각 다른 환경으로 구성하면 된다.

필자의 경우, 처음 어플리케이션 생성 시 함께 생성된 환경의 이름과 도메인이 마음에 들지 않아 , 아래와 같이 다시 환경을 세팅하여 진행하였다. 이름을 제외하고는 동일한 환경이니 순차적으로 진행하면 된다.. 만약 필자처럼 환경을 재구성할 것이라면, 기존 환경은 반드시 환경 종료를 클릭하여 종료한 뒤 사용하여야 한다.

추가 배치를 사용한 롤링(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개씩 진행) 떼어 버전 업데이트를 진행한다. 버전 업그레이드가 완료되면 다시 서비스에 올리고, 이제 남은 인스턴스는 제거하낟.

    • 절반씩 배포를 하기 때문에 처음에 신규 인스턴스 2개를 추가로 넣었고, 기존 인스턴스 중 2개를 버전 업그레이드가 완료되었으므로 이미 4개가 업그레이드 완료된 상태라 남은 인스턴스 2개는 서비스에서 제거해서 날리면 된다.

Elastic Beanstalk 환경 삭제

  • AWS의 CloudFormation에 접속하여 삭제하고자 하는 환경을 선택하고 삭제하면 된다.

0개의 댓글