Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2로 마이그레이션
2022년 7월 18일 Elastic Beanstalk는 Amazon Linux AMI(AL1) 에 기반한 모든 플랫폼 브랜치의 상태를 사용 중지로 설정했습니다. 자세한 내용은 Amazon Linux AMI(AL1) 플랫폼 사용 중지 FAQ 섹션을 참조하세요.
Elastic Beanstalk 애플리케이션이 Amazon Linux AMI 플랫폼 분기를 기반으로 하는 경우 이 페이지를 사용하여 애플리케이션 환경을 Amazon Linux 2로 마이그레이션하는 방법을 알아보십시오. AWS Elastic Beanstalk에서는 Amazon Linux 2
차이점 및 호환성
AL2 기반 플랫폼 브랜치는 기존 애플리케이션과의 역호환성을 보장하지 않습니다. 또한 애플리케이션 코드가 새 플랫폼 버전에 성공적으로 배포되더라도 운영 체제 및 런타임 차이로 인해 다르게 작동 또는 수행될 수 있습니다. Amazon Linux AMI와 Amazon Linux 2는 동일한 Linux 커널을 공유하지만 초기화 시스템, libc
버전, 컴파일러 도구 체인 및 다양한 패키지가 다릅니다. 자세한 내용은 Amazon Linux 2 FAQs
마이그레이션 프로세스
프로덕션 환경으로 이동할 준비가 된 경우 Elastic Beanstalk에서는 업그레이드를 수행하기 위해 블루/그린 배포가 필요합니다. 블루/그린 배포 절차를 통한 마이그레이션에 권장되는 모범 사례에 따라 Amazon Linux 2 플랫폼 분기를 기반으로 하는 새 환경을 생성하고 여기에 애플리케이션 코드를 배포합니다. 테스트를 반복하고 새 환경을 조정하는 동안 기존 프로덕션 환경은 활성 상태로 유지되며 영향을 받지 않습니다. 새 환경이 프로덕션으로 이동할 준비가 되면 두 환경의 CNAME을 바꿔 트래픽을 새 환경으로 리디렉션합니다. 블루/그린 배포 모범 사례 방법에 대한 자세한 내용은 블루/그린 방법을 참조하십시오. 블루/그린 배포 프로시저의 특정 단계를 참조하려면 블루/그린 배포를 참조하십시오.
다음 참조는 마이그레이션을 계획하는 데 도움이 될 수 있습니다.
-
AWS Elastic Beanstalk 플랫폼에서 Elastic Beanstalk 지원 플랫폼
모든 Linux 플랫폼에 대한 고려 사항
다음 표에서는 Amazon Linux 2로 애플리케이션 마이그레이션을 계획할 때 알아야 할 고려 사항에 대해 설명합니다. 이러한 고려 사항은 특정 프로그래밍 언어나 애플리케이션 서버에 관계없이 모든 Elastic Beanstalk Linux 플랫폼에 적용됩니다.
영역 | 변경 사항 및 정보 |
---|---|
구성 파일 |
Amazon Linux 2 플랫폼에서는 이전과 같이 구성 파일을 사용할 수 있으며 모든 섹션은 동일한 방식으로 작동합니다. 그러나 특정 설정은 이전 Amazon Linux AMI 플랫폼과 동일하게 작동하지 않을 수 있습니다. 예:
플랫폼 후크를 사용하여 환경 인스턴스에서 사용자 지정 코드를 실행하는 것이 좋습니다. AWS CloudFormation 리소스에 대한 참조가 필요한 스크립트에서는 여전히 |
플랫폼 후크 |
Amazon Linux 2 플랫폼은 환경 인스턴스의 후크 디렉터리에 실행 파일을 추가하여 환경의 플랫폼을 확장하는 새로운 방법을 소개합니다. 이전 Linux 플랫폼 버전에서는 사용자 지정 플랫폼 후크를 사용했을 것입니다. 이러한 후크는 관리형 플랫폼용으로 설계되지 않아 지원되지 않았지만 경우에 따라 유용한 방식으로 사용할 수 있었습니다. Amazon Linux 2 플랫폼 버전에서는 사용자 지정 플랫폼 후크가 작동하지 않습니다. 모든 후크를 새 플랫폼 후크로 마이그레이션해야 합니다. 자세한 내용을 보려면 Elastic Beanstalk Linux 플랫폼 확장의 플랫폼 후크 섹션을 확장하십시오. |
지원되는 프록시 서버 |
Amazon Linux 2 플랫폼 버전은 Amazon Linux AMI 플랫폼 버전에서 지원되는 각 플랫폼과 동일한 역방향 프록시 서버를 지원합니다. 모든 Amazon Linux 2 플랫폼 버전은 nginx를 기본 역방향 프록시 서버로 사용합니다. Tomcat, Node.js, PHP 및 Python 플랫폼은 Apache HTTPD도 대안으로 지원합니다. 모든 플랫폼에서는 이 단원에 설명된 것처럼 일관된 방식으로 프록시 서버를 구성할 수 있습니다. 그러나 프록시 서버 구성은 Amazon Linux AMI에서와 약간 다릅니다. 모든 플랫폼에서 차이점은 다음과 같습니다.
플랫폼별 프록시 구성 변경 사항에 대한 자세한 내용은 플랫폼별 고려 사항 단원을 참조하세요. Amazon Linux 2 플랫폼의 프록시 구성에 대한 자세한 내용을 보려면 Elastic Beanstalk Linux 플랫폼 확장의 역방향 프록시 구성 단원을 확장하십시오. |
프록시 구성 변경 |
각 플랫폼에 고유한 프록시 구성 변경 사항 외에도 모든 플랫폼에 균일하게 적용되는 프록시 구성 변경 사항이 있습니다. 환경을 정확하게 구성하려면 두 가지를 모두 참조하는 것이 중요합니다.
|
인스턴스 프로파일 |
Amazon Linux 2 플랫폼에서는 인스턴스 프로파일을 구성해야 합니다. 인스턴스 프로파일이 없는 경우 일시적으로 환경 생성이 성공할 수 있지만 인스턴스 프로파일이 필요한 작업이 실패하면 생성 직후 환경에 오류가 표시될 수 있습니다. 자세한 내용은 Elastic Beanstalk 인스턴스 프로파일 관리 섹션을 참조하세요. |
확장된 상태 |
Amazon Linux 2 플랫폼 버전은 기본적으로 확장 상태를 활성화합니다. 이 점이 Elastic Beanstalk 콘솔을 사용하여 환경을 생성하지 않는 경우 변경된 점입니다. 콘솔은 플랫폼 버전에 관계없이 가능한 경우 기본적으로 확장된 상태를 활성화합니다. 자세한 내용은 향상된 상태 보고 및 모니터링 섹션을 참조하세요. |
사용자 지정 AMI |
사용자 환경에서 사용자 지정 AMI를 사용하는 경우 Elastic Beanstalk Amazon Linux 2 플랫폼을 사용하는 새 환경을 위해 Amazon Linux 2에 기반한 새 AMI를 생성합니다. |
사용자 지정 플랫폼 |
Amazon Linux 2 플랫폼 버전의 관리형 AMI는 사용자 지정 플랫폼을 지원하지 않습니다. |
플랫폼별 고려 사항
이 단원에서는 특정 Elastic Beanstalk Linux 플랫폼과 관련된 마이그레이션 고려 사항에 대해 설명합니다.
Amazon Linux AMI(AL1) 기반 도커 플랫폼 분기 제품군에는 3개의 플랫폼 분기가 포함됩니다. 각각에 대해 특정 마이그레이션 경로를 권장합니다.
AL1 플랫폼 분기 | Amazon Linux 2로의 마이그레이션 경로 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Amazon Linux AMI(AL1)에서 실행되는 Amazon ECS에서 관리하는 다중 컨테이너 도커 |
ECS 기반 도커 AL2 플랫폼 분기ECS 기반 도커 AL2 플랫폼 분기는 다중 컨테이너 도커 AL1 플랫폼 분기에서 실행되는 환경에 대한 간단한 마이그레이션 경로를 제공합니다.
멀티컨테이너 Docker Amazon Linux 플랫폼 브랜치에서 실행되는 애플리케이션을 Amazon Linux 2에서 실행되는 Amazon ECS 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 Amazon Linux에서 실행되는 멀티컨테이너 Docker를 Amazon Linux 2의 ESC로 마이그레이션을(를) 참조하세요. |
||||||||
Amazon Linux AMI(AL1)에서 실행되는 도커 Amazon Linux AMI(AL1)에서 실행되는 사전 구성된 도커(Glassfish 5.0) |
Amazon Linux 2 플랫폼 분기에서 실행되는 도커사전 구성된 도커(Glassfish 5.0) 또는 Amazon Linux AMI(AL1)에서 실행되는 도커 기반의 환경에서 실행되는 애플리케이션을 Amazon Linux 2 플랫폼 분기에서 실행되는 도커 기반의 환경으로 마이그레이션하는 것이 좋습니다. 환경이 사전 구성된 도커(Glassfish 5.0) 플랫폼 분기를 기반으로 하는 경우 Docker 플랫폼에 GlassFish 애플리케이션 배포: Amazon Linux 2에 대한 마이그레이션 경로를 참조하십시오. 다음 표에는 Amazon Linux 2에서 실행되는 플랫폼 브랜치 도커와 관련된 마이그레이션 정보가 열거되어 있습니다.
|
다음 표에는 Go 플랫폼의 Amazon Linux 2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 |
---|---|
포트 전달 |
Amazon Linux 2 플랫폼에서 Elastic Beanstalk는 |
아래 표에는 Java SE 플랫폼의 Corretto 플랫폼 브랜치에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 |
---|---|
Corretto와 OpenJDK |
Java 플랫폼인 Standard Edition(Java SE)을 구현하기 위해 Amazon Linux 2 플랫폼 브랜치는 Open Java Development Kit(OpenJDK)의 AWS 배포인 Amazon Corretto |
빌드 도구 |
Amazon Linux 2 플랫폼에는 최신 버전의 빌드 도구인 |
JAR 파일 처리 |
Amazon Linux 2 플랫폼에서 소스 번들(ZIP 파일)에 단일 JAR 파일이 포함되어 있고 다른 파일이 없는 경우 Elastic Beanstalk는 더 이상 JAR 파일의 이름을 |
포트 전달 |
Amazon Linux 2 플랫폼에서 Elastic Beanstalk는 |
Java 7 |
Elastic Beanstalk는 Amazon Linux 2 Java 7 플랫폼 브랜치를 지원하지 않습니다. Java 7 애플리케이션이 있는 경우 Corretto 8 또는 Corretto 11로 마이그레이션합니다. |
다음 표에는 Tomcat 플랫폼의 Amazon Linux 2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 | ||||||
---|---|---|---|---|---|---|---|
구성 옵션 |
Amazon Linux 2 플랫폼 버전에서는 Elastic Beanstalk가
|
||||||
애플리케이션 경로 |
Amazon Linux 2 플랫폼에서 사용자 환경의 Amazon EC2 인스턴스에서 애플리케이션 디렉터리 경로는 |
다음 표에는 Node.js 플랫폼의 Amazon Linux 2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
설치된 Node.js 버전 |
Amazon Linux 2 플랫폼에서 Elastic Beanstalk는 여러 Node.js 플랫폼 브랜치를 유지하고 각 플랫폼 버전의 플랫폼 브랜치에 해당하는 최신 버전의 Node.js 메이저 버전만 설치합니다. 예를 들어 Node.js 12 플랫폼 브랜치의 각 플랫폼 버전에는 기본적으로 Node.js 12.x.y만 설치되어 있습니다. Amazon Linux AMI 플랫폼 버전에서는 각 플랫폼 버전에 여러 버전의 여러 Node.js 버전을 설치하고 단일 플랫폼 브랜치만 유지했습니다. 애플리케이션에 필요한 Node.js 주 버전에 해당하는 Node.js 플랫폼 브랜치를 선택합니다. |
||||||||||
Apache HTTPD 로그 파일 이름 |
Amazon Linux 2 플랫폼에서 Apache HTTPD 프록시 서버를 사용하는 경우 HTTPD 로그 파일 이름은 모든 플랫폼의 로그 파일 이름 및 위치에 대한 자세한 내용은 Elastic Beanstalk가 CloudWatch Logs를 설정하는 방법 단원을 참조하세요. |
||||||||||
구성 옵션 |
Amazon Linux 2 플랫폼에서 Elastic Beanstalk는
|
다음 표에는 PHP 플랫폼의 Amazon Linux 2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 |
---|---|
PHP 파일 처리 |
Amazon Linux 2 플랫폼에서 PHP 파일은 PHP-FPM(CGI 프로세스 관리자)을 사용하여 처리됩니다. Amazon Linux AMI 플랫폼에서는 mod_php(Apache 모듈)를 사용했습니다. |
프록시 서버 |
Amazon Linux 2 PHP 플랫폼 버전은 nginx와 Apache HTTPD 프록시 서버를 모두 지원합니다. 기본값은 nginx입니다. Amazon Linux AMI PHP 플랫폼 버전은 Apache HTTPD만 지원했습니다. 사용자 지정 Apache 구성 파일을 추가한 경우 |
다음 표에는 Python 플랫폼의 Amazon Linux 2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 |
---|---|
WSGI 서버 |
Amazon Linux 2 플랫폼에서 Gunicorn 또는 |
애플리케이션 경로 |
Amazon Linux 2 플랫폼에서 사용자 환경의 Amazon EC2 인스턴스에서 애플리케이션 디렉터리 경로는 |
프록시 서버 |
Amazon Linux 2 Python 플랫폼 버전은 nginx와 Apache HTTPD 프록시 서버를 모두 지원합니다. 기본값은 nginx입니다. Amazon Linux AMI Python 플랫폼 버전은 Apache HTTPD만 지원했습니다. 사용자 지정 Apache 구성 파일을 추가한 경우 |
다음 표에는 Ruby 플랫폼의 Amazon Linux 2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.
영역 | 변경 사항 및 정보 |
---|---|
설치된 Ruby 버전 |
Amazon Linux 2 플랫폼에서 Elastic Beanstalk는 플랫폼 브랜치에 해당하는 최신 버전의 단일 Ruby 버전만 각 플랫폼 버전에 설치합니다. 예를 들어 Ruby 2.6 플랫폼 브랜치의 각 플랫폼 버전에는 Ruby 2.6.x만 설치되어 있습니다. Amazon Linux AMI 플랫폼 버전에는 2.4.x, 2.5.x, 2.6.x와 같은 여러 Ruby 버전의 최신 버전을 설치했습니다. 애플리케이션에서 사용 중인 플랫폼 브랜치와 일치하지 않는 Ruby 버전을 사용하는 경우 애플리케이션에 적합한 Ruby 버전이 있는 플랫폼 브랜치로 전환하는 것이 좋습니다. |
애플리케이션 서버 |
Amazon Linux 2 플랫폼에서 Elastic Beanstalk는 모든 Ruby 플랫폼 버전에 Puma 애플리케이션 서버만 설치합니다. Amazon Linux AMI 플랫폼에서는 각 Ruby 버전에 대해 Puma 애플리케이션 서버와 Passenger 애플리케이션 서버에 하나씩 두 가지 플랫폼 브랜치를 지원했습니다. 애플리케이션에서 Passenger를 사용하는 경우 Passenger를 설치하여 사용하도록 Ruby 환경을 구성할 수 있습니다. 자세한 정보와 지침은 Elastic Beanstalk Ruby 플랫폼 사용 섹션을 참조하세요. |