안녕하세요,
[리소스가 해결되지 않은 경우 AWS Health는 정기적으로 이 커뮤니케이션에 대한 알림을 트리거할 수 있습니다.]
Amazon Linux 2의 Python 3.8을 기반으로 하는 AWS Elastic Beanstalk 플랫폼 브랜치 [1] 가 2025년 3월 31일에 만료되기 때문에 연락을 드립니다. 이는 고객의 Elastic Beanstalk 환경을 AWS에서 제공하는 최신 지원과 연계하기 위한 것입니다.
* 만료란 무엇을 의미하며, 2025년 3월 31일 이후에는 어떤 일이 일어나나요?
2025년 3월 31일부터 종료된 플랫폼 브랜치를 Elastic Beanstalk의 새로운 환경에서 더 이상 사용할 수 없습니다. 고객은 사용 중지된 플랫폼 브랜치에서 실행되는 기존 환경을 계속 운영할 수 있지만, Elastic Beanstalk은 더 이상 이러한 브랜치를 관리하고 지원하지 않습니다. 자세한 내용은 AWS Elastic Beanstalk 개발자 안내서의 Elastic Beanstalk 플랫폼 지원 정책 [2] 을 참조하시기 바랍니다.
* 이제 무엇을 해야 합니까?
Elastic Beanstalk 환경을 이미 업그레이드한 경우에는 이 알림을 무시하고 메시지의 나머지 부분을 읽지 않으셔도 됩니다. 하지만 이 작업을 수행하지 않은 경우 2025년 3월 31일까지 Amazon Linux 2에서 Python 3.8을 실행하는 플랫폼 브랜치에 구성된 Elastic Beanstalk 환경을 업그레이드해야 합니다.현재 완벽하게 지원되는 Python 플랫폼 중 하나로의 마이그레이션 계획을 시작하는 것이 좋습니다.
Python 3.9 AL2023
Python 3.11 AL2023전체 마이그레이션 고려 사항은 AWS Elastic Beanstalk 개발자 안내서의 메이저 버전 마이그레이션 [3] 을 참조하십시오.
* 어떤 Elastic Beanstalk 환경이 영향을 받나요?
어떤 Elastic Beanstalk 환경이 영향을 받는지 보려면:
1.Elastic Beanstalk 콘솔 [4] 을 열고 리전 목록에서 AWS 리전(Region)을 선택합니다.
2.탐색 창에서 환경(Environments)을 선택합니다.
3.환경 페이지에는 선택한 리전의 모든 Elastic Beanstalk 환경이 나열됩니다.
4.선택한 리전에서 플랫폼 브랜치가 사용 중지되었거나 지원 중단될 예정인 환경이 있는 경우 콘솔 페이지 상단에 이를 알리는 메시지가 표시됩니다.
5.필터 막대에서 “64비트 Amazon Linux 2에서 실행되는 Python 3.8(Python 3.8 running on 64bit Amazon Linux 2)”을 검색하여 사용 중지된 이 플랫폼 브랜치를 사용하는 환경을 확인합니다.또한 “AWS CLI describe-environments” 명령을 사용하여 Amazon Linux 2에서 Python 3.8로 구성된 모든 환경의 필터링된 목록을 표시할 수 있습니다.
다음 예제 명령을 참조하십시오.
aws elasticbeanstalk describe-environments — region us-east-1 — query “Environments[?PlatformArn.contains(@,’Python 3.8 running on 64bit Amazon Linux 2/’)]” — output text
자세한 내용은 Elastic Beanstalk 의 AWS CLI 명령 레퍼런스 [5] 를 참조하십시오.
또는 AWS 상태 대시보드의 ‘영향을 받는 리소스’ 탭에서 영향을 받는 리소스 목록을 확인하실 수 있습니다.
* Elastic Beanstalk 플랫폼 지원에 대한 추가 정보는 어디에서 찾을 수 있습니까?
만료되는 플랫폼 브랜치 버전은 AWS Elastic Beanstalk 플랫폼 가이드의 플랫폼 버전 사용 기간 만료 [6] 페이지에 나와 있습니다. (지원 플랫폼 [7] 페이지에는 더 이상 나열되지 않습니다).자세한 내용은 AWS Elastic Beanstalk 개발자 안내서의 Elastic Beanstalk 플랫폼 지원 정책 [2] 을 참조하시기 바랍니다. 질문이나 우려 사항이 있으실 경우 AWS Support [8] 에 문의하시기 바랍니다.
2.
벡엔드 서버를 Elastic Beanstalk 로 운영중인데 운영 서버(플랫폼 브랜치)가 Python 3.8 버전이다. Python 3.8 은 2025년 3월 31일까지만 지원하니 업그레이드를 해야 한단다. 업그레이드 안 하면? 쓸 수는 있지만 추가 지원은 안 해준다. MS에서 지원이 끝난 윈도우도 사용은 할 수 있지만 보안 패치 지원은 안 해주는 것과 같은 얘기인 것 같다.
3.
2022년에 백엔드 서버를 구축했다. 그때는 3.8이 최신이었을 것이다. 2년 정도 시간이 지나서 구버전이 되었고 최신 버전으로 갈아타야 할 때가 온 것이다. 운영중인 서버를 건드려야 하는 피하고 싶은 일이다. Elastic Beanstalk가 PaaS인데 이런 업데이트도 자동으로 지원해 줘야 하는 것 아닌가? 버전 차이나서 어플리케이션 에러 발생할까봐 수동으로 해야하는 것이겠지만.
4.
혹시나 UI상에서 간단히 업그레이드 할 수 있을까? 플랫폼에 버전 변경이라는 항목이 있어 클릭해 봤지만 마이너 버전 다운그레이드만 가능하다. 여기서 버전 업데이트를 할 수 있는 건 아니란다.
5.
이런 저런 테스트를 하며 총 세 가지 방법을 찾았다. 플랫폼 브랜치 업그레이드 전 중요한 건 아래와 같다.
- 운영중인 서버의 무중단 업그레이드
- Python 버전 업그레이드 시 어플리케이션의 호환 문제: 현재 운영중인 서비스는 Python 3.12 로 업그레이드 시 에러가 나서 Python 3.11 로 진행함
- 문제 발생 시 원복이 쉽고 빨라야 함
6.
이어지는 글에서 세 가지 업그레이드 방법에 대해 기술해 본다.