문제
AWS계정을 새롭게 생성 후 간단한 테스트를 위해 Beanstalk 환경을 구성하는 과정에서 아래와 같은 에러가 발생했다. 에러로그는 아래와 같다.
ERROR Creating Auto Scaling launch configuration failed Reason: Resource handler returned message: "The Launch Configuration creation operation is not available in your account. Use launch templates to create configuration templates for your Auto Scaling groups. (Service: AutoScaling, Status Code: 400, Request ID: c727xxx-xxxx-xxxxxx-xxxx86xxxxxxxxxxx2)" (RequestToken: xxxxxxxxxxxxxxxxxxx, HandlerErrorCode: GeneralServiceException)
ERROR: Service:AmazonCloudFormation, Message:Resource AWSEBAutoScalingGroup does not exist for stack awseb-e-xxxxxxx-stack
CloudFormation 내용을 확인해보니 인스턴스를 AutoScaling Group을 생성하는 인스턴스 생성 영역에 EBS 쪽에 문제가 있는 것 같았다. 그냥 기본적인 단일 세팅만 진행을 했었는데 왜 이런 이슈가 발생하는지 몰랐는데, Beanstalk을 생성하는 과정에서 아래와 같은 안내문구가 나와 있는 것을 확인했다.
위 안내 문구는 Auto Scaling 그룹에서 더 이상 Launch Configuration 생성을 지원하지 않으므로 Launch Template을 사용하라는 메시지가 포함되어 있었다. 솔직히 이 문구만 보고 잘 이해가 안되서 Beanstalk을 사용하기 전에 AutoScaling 시작 템플릿을 미리 생성하라는 건가? 싶어서 그렇게 해도 동일한 에러가 나왔다.
해결
이후 Launch Templates 관련 문서를 확인해보니, AWS 정책이 변경되면서 Beanstalk 인스턴스를 구성할 때 몇 가지 옵션을 반드시 설정해야 한다는 사실을 알게 되었다. AWS에서는 2024년 10월 1일부터 새로 생성한 계정에 대해 기존 Launch Configuration 대신 Launch Templates만을 지원하게 되었다고 한다. 문제 해결을 위해 Beanstalk 설정 과정에서 4단계인 인스턴스 트래픽 및 크기 조정 구성 단계에서 아래와 같은 옵션을 설정하면 된다.
위의 내용을 요약하면 아래와 같다.
- RootVolumeType 옵션을 gp3로 설정
- BlockDeviceMappings에 gp3를 포함
- DisableIMDSv1 옵션을 true로 설정
- EnableSpot 옵션을 true로 설정
BeanStalk 세팅 과정에 4단계인 인스턴스 트래픽 및 크기 조정 구성 단계에서 위의 내용에 나와 있는 옵션을 선택해서 구성하면 된다고 나와 있다. 나는 아래와 같이 EBS 볼륨 유형을 디폴트인 컨테이너 기본값에서 범용 3(SSD) gp3로 변경하여서 문제를 해결했다.
참고
'Error Log' 카테고리의 다른 글
[Trouble Shooting] Express PayloadTooLarge 413 Error 해결 (0) | 2024.05.01 |
---|