AWS Elastic Beanstalk을 이용하여 서비스를 운영하고 있다면 Platform version을 업그레이드 해야 할 필요가 종종 있다. 내 경우에는 아래 3가지 경우가 종종의 구체적 예시에 해당한다.
- 사용중인 Platform version이 Deprecated 될 예정이다.
- 새로 작성한 코드가 특정 버전 이상에서만 동작한다.
- 업그레이드로 성능 향상이 기대된다.
위의 3가지 경우 말고도 Platform version을 업그레이드 해야 할 필요는 많다. 그런데 가끔 변경하고자 하는 Platform version이 AWS Console에 표시되지 않을 때가 있으면 난감하다.

AWS Elastic Beanstalk의 Supported Platform에도 PHP 7.3이 명시되어 있고, 새로 환경을 생성하려고 하면 PHP 7.3을 선택 할 수 있지만, Upgrade Platform의 선택지는 PHP 7.3을 제공하지 않는다. 이 무슨 날벼락인가.
아래 순서로 Platform version 업그레이드를 진행하려고 계획 했으나 Clone environment 후 원하는 버전으로 업그레이드를 할 수 없는 상황이다.
1) Clone environment > 2) Upgrade Platform version > 3) Deploy New Package > 4) Test > 5) Swap Environments
Platform version 업그레이드를 위해 Clone environment 대신 Create environment로 작업을 시작하면, 원하는 버전으로 업그레이드는 할 수 있다. 다만 번거로운 설정을 피할 수 없다. 이때 설정이라는 두 글자는 Monitoring 설정, VPC 설정, Tagging, 환경 변수 추가 등을 포함한다.
혹한기 훈련과 반복 작업은 되도록 피하는게 좋은거 아닌가. 피할 수 있는 방법을 찾기 위해 관련 문서를 읽어보니, AWS CLI를 이용하면 원하는 Platform version으로 업그레이드를 할 수 있다. AWS Console에서는 Minor version update만 지원하기 때문에 원하는 Stack이 목록에 표시되지 않았던 것이다.
Beanstalk의 Platform version 업그레이드를 위한 CLI (심지어 간단하다.)
aws elasticbeanstalk update-environment –solution-stack-name “{stack-name}” –environment-id “x-xxxxxxxxxx”
Stack Name은 AWS 문서에서 제공하는 옵션에서 선택하면 된다.
이 또한 피해가리라.