

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션
<a name="using-features.migration-al"></a>

이 섹션에서는 다음 마이그레이션 경로 중 하나를 사용하여 애플리케이션을 마이그레이션하는 방법을 설명합니다.
+ *Amazon Linux 2* 플랫폼 브랜치에서 *Amazon Linux 2023* 플랫폼 브랜치로 마이그레이션합니다.
+ *Amazon Linux AMI(AL1)* 플랫폼 브랜치에서 *Amazon Linux 2023*(권장) 또는 *Amazon Linux 2* 플랫폼 브랜치로 마이그레이션합니다.

**Topics**
+ [Amazon Linux 2에서 Amazon Linux 2023으로 마이그레이션](using-features.migration-al.generic.from-al2.md)
+ [Amazon Linux AMI(AL1)에서 AL2 또는 AL2023으로 마이그레이션](using-features.migration-al.generic.from-al1.md)

# Amazon Linux 2에서 Amazon Linux 2023으로 마이그레이션
<a name="using-features.migration-al.generic.from-al2"></a>

이 주제에서는 Amazon Linux 2 플랫폼 브랜치에서 Amazon Linux 2023 플랫폼 브랜치로 애플리케이션을 마이그레이션하기 위한 지침을 제공합니다.

## 차이점 및 호환성
<a name="using-features.migration-al.generic.from-al2.differences"></a>

**Elastic Beanstalk AL2 및 AL2023 플랫폼 간**  


Elastic Beanstalk Amazon Linux 2와 Amazon Linux 2023 플랫폼 간에는 높은 수준의 호환성이 있습니다. 하지만 다음과 같은 몇 가지 차이점이 있습니다:
+ **인스턴스 메타데이터 서비스 버전 1 (IMDSv1)-** - [DisableIMDSv1](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 옵션 설정은 기본적으로 `true`으로 AL2023 플랫폼에서 사용됩니다. 기본값은`false` AL2 플랫폼입니다.
+ **pkg-repo 인스턴스 도구** — 이 [pkg-repo](custom-platforms-scripts.md#custom-platforms-scripts.pkg-repo) 도구는 AL2023 플랫폼에서 실행되는 환경에서 사용할 수 없습니다. 그러나 패키지 및 운영 체제 업데이트를 AL2023 인스턴스에 수동으로 적용할 수 있습니다. 자세한 내용은 *Amazon Linux 2023 사용 설명서의* [패키지 및 운영 체제 업데이트 관리를](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) 참조하십시오.
+ **Apache HTTPd** 설정 — AL2023 플랫폼용 Apache `httpd.conf` 파일에는 AL2와 다른 몇 가지 구성 설정이 있습니다: 
  + 기본적으로 서버의 전체 파일 시스템에 대한 액세스를 거부합니다. 이러한 설정은 Apache 웹 사이트 [보안 팁](https://httpd.apache.org/docs/2.4/misc/security_tips.html) 페이지의 *기본적 서버 파일 보호에* 설명되어 있습니다.
  + 특별히 활성화된 디렉터리를 제외한 모든 디렉터리`.htaccess`에서의 설정에 대한 액세스를 거부합니다. 이 설정은 Apache 웹 사이트 [보안 팁](https://httpd.apache.org/docs/2.4/misc/security_tips.html) 페이지의 *시스템 설정 보호에* 설명되어 있습니다. [Apache HTTP 서버 튜토리얼: .htaccess 파일](https://httpd.apache.org/docs/2.4/howto/htaccess.html) 페이지에는 이 설정이 성능 향상에 도움이 될 수 있음을 설명합니다.
  + 이름 패턴이 있는 파일 `.ht*`에 대한 액세스를 거부합니다. 이 설정은 웹 클라이언트가 `.htaccess` 및 `.htpasswd` 파일을 볼 수 없도록 합니다.

  사용자 환경에 맞게 위의 구성 설정을 변경할 수 있습니다. 자세한 내용은 [Apache HTTPD 설정](platforms-linux-extend.proxy.md#platforms-linux-extend.proxy.httpd) 단원을 참조하십시오.
+ **다중 라인 환경 변수 지원** - AL2023 플랫폼은 시스템 서비스 구성의 환경 변수 및 보안 암호에 대한 다중 라인 값을 지원합니다. Amazon Linux 2 플랫폼은 다중 라인 환경 변수 값을 지원하지 않습니다. 이 개선 사항을 통해 AL2023 플랫폼에서 여러 줄 보안 암호 및 구성 값을 사용할 수 있습니다. 환경 변수 및 보안 암호 사용에 대한 자세한 내용은 섹션을 참조하세요[Amazon Linux 2 환경 변수의 여러 줄 값](AWSHowTo.secrets.env-vars.md#AWSHowTo.secrets.multiline).
+ **CloudWatch 사용자 지정 로그 전달** - 더 이상 사용되지 않는 CloudWatch Logs 에이전트(`awslogs` 패키지)는 AL2023 플랫폼에서 사용할 수 없습니다. 더 이상 사용되지 않는 `awslogs` 에이전트를 설치하고 사용하는 사용자 지정 로그 전달 구성이 있는 경우 Amazon Linux 2에서 AL2023으로 마이그레이션할 때 통합 CloudWatch 에이전트를 사용하도록 구성 파일을 업데이트해야 합니다. 자세한 내용은 [사용자 지정 로그 파일 스트리밍](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.streaming.custom) 단원을 참조하십시오.

**플랫폼별 차이점**

기본 운영 체제 차이점 외에도 Amazon Linux 2와 AL2023 런타임 플랫폼 간에는 플랫폼별 차이점이 있습니다.
+ **.NET 플랫폼 분기** - .NET 플랫폼 분기 전략은 Amazon Linux 2와 AL2023 간에 다릅니다. Amazon Linux 2에서 .NET Core 플랫폼은 단일 플랫폼 브랜치 내에서 .NET 메이저 버전의 교체 기간을 유지합니다. AL2023에서는 각 플랫폼 브랜치가 특정 .NET 메이저 버전(예: .NET 9, .NET 10)에 고정됩니다.

  프레임워크 종속 애플리케이션(플랫폼에 설치된 .NET 런타임을 사용하는 애플리케이션)을 배포하는 경우 애플리케이션의 대상 .NET 버전과 일치하는 플랫폼 브랜치를 선택해야 합니다. 독립형 애플리케이션(자체 .NET 런타임을 번들링하는 애플리케이션)을 배포하는 경우 애플리케이션은 플랫폼의 설치된 런타임에 종속되지 않으므로 애플리케이션의 .NET 버전에 관계없이 모든 AL2023 .NET 플랫폼 브랜치를 사용할 수 있습니다. 자세한 내용은 [Linux 기반 .NET Core Elastic Beanstalk 플랫폼용 애플리케이션 번들링](dotnet-linux-platform-bundle-app.md) 단원을 참조하십시오.
+ **Node.js 버전 선택** - Amazon Linux 2의 Node.js 플랫폼은 애플리케이션 `package.json` 파일에 Node.js 버전 지정을 지원합니다. AL2023의 Node.js 플랫폼은이 기능을 지원하지 않습니다. 플랫폼 브랜치에서 제공하는 기본 Node.js 버전을 사용해야 합니다. Node.js 버전 관리에 대한 자세한 내용은 섹션을 참조하세요[Elastic Beanstalk에서 애플리케이션 종속성 구성](nodejs-platform-dependencies.md).
+ **Ruby Puma 서버 버전** - Amazon Linux 2의 Ruby 플랫폼은 애플리케이션의 `Gemfile.lock` 파일에 지정된 Puma 버전을 무시하고 플랫폼 기본 Puma 버전을 사용합니다. AL2023의 Ruby 플랫폼은 있는 `Gemfile.lock` 경우에 지정된 Puma 버전을 준수합니다. 버전을 지정하지 않으면 플랫폼이 플랫폼 기본 Puma 버전을 설치합니다.
+ **PHP 패키지 가용성** - Amazon Linux 2 PHP 플랫폼에서 사용할 수 있는 일부 패키지는 AL2023 PHP 플랫폼에서 사용할 수 없습니다.
  + *MySQL 클라이언트 패키지* - `mysql` 및 `mysql-devel` 명령줄 클라이언트 패키지는 AL2023 PHP 플랫폼에 설치되지 않습니다. 애플리케이션에 MySQL 데이터베이스 연결이 필요한 경우 두 플랫폼에서 모두 사용할 수 있는 PHP `mysqli` 또는 `pdo_mysql` 확장을 사용합니다.
  + *Compass 및 Ruby 도구* - Compass CSS 프레임워크 지원을 위한 `ruby-devel` 및 `rubygems` 패키지는 AL2023 PHP 플랫폼에 설치되지 않습니다. Compass는 더 이상 사용되지 않습니다. 대안으로 최신 CSS 사전 처리 도구를 사용하는 것이 좋습니다.
+ **Go 버전 관리 도구** - Bazaar 버전 관리 시스템(`bzr`)은 AL2023 Go 플랫폼에서 사용할 수 없습니다. Bazaar는 더 이상 사용되지 않으며 AL2023 패키지 리포지토리에 포함되지 않습니다. 버전 관리를 위해 대신 Git, Mercurial 또는 Subversion을 사용합니다.이 모든 기능은 AL2023 Go 플랫폼에서 사용할 수 있습니다.

**Amazon Linux 운영 체제 간**  
Amazon Linux 2 및 Amazon Linux 2023 운영 체제의 차이점에 대한 자세한 내용은 *Amazon Linux 2023 사용 설명서*의 [Amazon Linux 2 및 Amazon Linux 2023 비교](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)를 참조하세요.

Amazon Linux 2023에 대한 자세한 내용은 *Amazon Linux 2023 사용 설명서*의 [Amazon Linux 2023는 무엇인가요?](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html)를 참조하세요.

## 일반 마이그레이션 프로세스
<a name="using-features.migration-al.generic.from-al2.process"></a>

프로덕션 환경으로 이동할 준비가 된 경우 Elastic Beanstalk에서는 업그레이드를 수행하기 위해 블루/그린 배포가 필요합니다. 다음 사항은 블루/그린 배포 프로시저를 사용한 마이그레이션에 권장되는 일반적인 모범 사례 단계입니다.

**마이그레이션 테스트 준비**  
애플리케이션을 배포하고 테스트를 시작하기 전에 이전 섹션인 [차이점 및 호환성](#using-features.migration-al.generic.from-al2.differences)의 정보를 검토합니다. *Amazon Linux 2023 사용 설명서*의 [Amazon Linux 2 및 Amazon Linux 2023 비교](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) 섹션에 인용된 참고 자료도 검토합니다. 이 콘텐츠에서 애플리케이션 및 구성 설정에 적용되거나 적용될 수 있는 특정 정보를 기록해 두십시오.

**상위 수준 마이그레이션 단계**

1. AL2023 플랫폼 브랜치를 기반으로 하는 새 환경을 생성합니다.

1. 애플리케이션을 대상 AL2023 환경에 배포합니다.

   테스트를 반복하고 새 환경을 조정하는 동안 기존 프로덕션 환경은 활성 상태로 유지되며 영향을 받지 않습니다.

1. 새 환경에서 애플리케이션을 철저하게 테스트합니다.

1. 대상 AL2023 환경이 프로덕션으로 이동할 준비가 되면 두 환경의 CNAME을 바꿔 트래픽을 새 AL2023 환경으로 리디렉션합니다.

**더 자세한 마이그레이션 단계 및 모범 사례**  
블루/그린 배포 절차에 대한 자세한 내용은 [Elastic Beanstalk를 사용한 블루/그린 배포](using-features.CNAMESwap.md)을(를) 참조하세요.

더욱 구체적인 지침과 자세한 모범 사례 단계는 [블루/그린 메서드](using-features.platform.upgrade.md#using-features.platform.upgrade.bluegreen)를 참조하세요.

## 마이그레이션 계획을 세우는 데 도움이 되는 추가 참조 자료
<a name="using-features.migration-al.generic.from-al2.references"></a>

다음 참조는 마이그레이션 계획을 세우는 데 필요한 추가 정보를 제공할 수 있습니다.
+ *AWS Elastic Beanstalk 플랫폼*에서 [Elastic Beanstalk 지원 플랫폼](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html)
+ [사용 중지된 플랫폼 브랜치 기록](platforms-schedule.md#platforms-support-policy.retired)
+ [Elastic Beanstalk Linux 플랫폼](platforms-linux.md)
+ [플랫폼 사용 중지 FAQ](using-features.migration-al.FAQ.md)

# Amazon Linux AMI(AL1)에서 AL2 또는 AL2023으로 마이그레이션
<a name="using-features.migration-al.generic.from-al1"></a>

Elastic Beanstalk 애플리케이션이 Amazon Linux AMI 플랫폼 브랜치를 기반으로 하는 경우 이 섹션을 사용하여 애플리케이션 환경을 Amazon Linux 2 또는 Amazon Linux 2023으로 마이그레이션하는 방법을 알아봅니다. [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/)에 기반한 이전 세대 플랫폼 브랜치는 더 이상 사용되지 않습니다.

Amazon Linux 2보다 최신 버전이므로 Amazon Linux 2023으로 마이그레이션하는 것이 좋습니다. Amazon Linux 2 운영 체제는 Amazon Linux 2023보다 먼저 지원이 종료되므로 Amazon Linux 2023으로 마이그레이션하면 지원 기간이 더 길어지는 혜택을 누릴 수 있습니다.

Elastic Beanstalk Amazon Linux 2와 Amazon Linux 2023 플랫폼 간에는 높은 수준의 호환성이 있다는 점에 주목해야 합니다. 일부 영역에는 차이점이 있습니다. 예를 들어 인스턴스 메타데이터 서비스 버전 1(IMDSv1) 옵션 기본값, pkg-repo 인스턴스 도구 지원, 일부 Apache HTTPd 구성 등이 있습니다. 자세한 내용은 [Amazon Linux 2023](platforms-linux.md#platforms-linux.versions.al2023) 섹션을 참조하세요.

## 차이점 및 호환성
<a name="using-features.migration-al.generic.from-al1.differences"></a>

AL2023/AL2 기반 플랫폼 브랜치는 기존 애플리케이션과의 역호환성을 보장하지 않습니다. 또한 애플리케이션 코드가 새 플랫폼 버전에 성공적으로 배포되더라도 운영 체제 및 런타임 차이로 인해 다르게 작동 또는 수행될 수 있다는 점을 아는 것이 중요합니다.

Amazon Linux AMI와 AL2023/AL2는 동일한 Linux 커널을 공유하지만 초기화 시스템, `libc` 버전, 컴파일러 도구 체인 및 다양한 패키지와 같은 측면에서 다릅니다. 자세한 내용은 [Amazon Linux 2 FAQs](https://aws.amazon.com//amazon-linux-2/faqs/)를 참조하십시오.

Elastic Beanstalk 서비스는 플랫폼별 런타임 버전, 빌드 도구 및 기타 종속성도 업데이트했습니다.

따라서 시간을 들여 개발 환경에서 애플리케이션을 철저히 테스트하고 필요한 조정을 수행하는 것이 좋습니다.

## 일반 마이그레이션 프로세스
<a name="using-features.migration-al.generic.from-al1.process"></a>

프로덕션 환경으로 이동할 준비가 된 경우 Elastic Beanstalk에서는 업그레이드를 수행하기 위해 블루/그린 배포가 필요합니다. 다음 사항은 블루/그린 배포 프로시저를 사용한 마이그레이션에 권장되는 일반적인 모범 사례 단계입니다.

**마이그레이션 테스트 준비**  
애플리케이션을 배포하고 테스트를 시작하기 전에 이 항목의 뒷부분인 [모든 Linux 플랫폼에 대한 고려 사항](#using-features.migration-al.generic)에 나오는 정보를 검토합니다. 또한, 다음 [플랫폼별 고려 사항](#using-features.migration-al.specific) 섹션에서 플랫폼에 적용되는 정보를 검토합니다. 이 콘텐츠에서 애플리케이션 및 구성 설정에 적용되거나 적용될 수 있는 특정 정보를 기록해 두십시오.

**상위 수준 마이그레이션 단계**

1. AL2 또는 AL2023 플랫폼 브랜치를 기반으로 하는 새 환경을 생성합니다. AL2023 플랫폼 브랜치로 마이그레이션하는 것이 좋습니다.

1. 애플리케이션을 대상 AL2023/AL2 환경에 배포합니다.

   테스트를 반복하고 새 환경을 조정하는 동안 기존 프로덕션 환경은 활성 상태로 유지되며 영향을 받지 않습니다.

1. 새 환경에서 애플리케이션을 철저하게 테스트합니다.

1. 대상 AL2023/AL2 환경이 프로덕션으로 이동할 준비가 되면 두 환경의 CNAME을 바꿔 트래픽을 새 환경으로 리디렉션합니다.

**더 자세한 마이그레이션 단계 및 모범 사례**  
블루/그린 배포 절차에 대한 자세한 내용은 [Elastic Beanstalk를 사용한 블루/그린 배포](using-features.CNAMESwap.md)을(를) 참조하세요.

더욱 구체적인 지침과 자세한 모범 사례 단계는 [블루/그린 메서드](using-features.platform.upgrade.md#using-features.platform.upgrade.bluegreen)를 참조하세요.

## 마이그레이션 계획을 세우는 데 도움이 되는 추가 참조 자료
<a name="using-features.migration-al.generic.from-al1.references"></a>

다음 참조는 마이그레이션 계획을 세우는 데 필요한 추가 정보를 제공할 수 있습니다.
+ [Amazon Linux 2와 Amazon Linux 2023 비교](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) *Amazon Linux 2023 사용 설명서*.
+  *Amazon Linux 2023 사용 설명서*의 [Amazon Linux 2023는 무엇인가요?](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html)
+ *AWS Elastic Beanstalk 플랫폼*에서 [Elastic Beanstalk 지원 플랫폼](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html)
+ [사용 중지된 플랫폼 브랜치 기록](platforms-schedule.md#platforms-support-policy.retired)
+ [Elastic Beanstalk Linux 플랫폼](platforms-linux.md)
+ [플랫폼 사용 중지 FAQ](using-features.migration-al.FAQ.md)

## 모든 Linux 플랫폼에 대한 고려 사항
<a name="using-features.migration-al.generic"></a>

다음 표에서는 AL2023/AL2로 애플리케이션 마이그레이션을 계획할 때 알아야 할 고려 사항에 대해 설명합니다. 이러한 고려 사항은 특정 프로그래밍 언어나 애플리케이션 서버에 관계없이 모든 Elastic Beanstalk Linux 플랫폼에 적용됩니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  구성 파일  |  AL2023/AL2 플랫폼에서는 이전과 같이 [구성 파일](ebextensions.md)을 사용할 수 있으며 모든 섹션은 동일한 방식으로 작동합니다. 그러나 특정 설정은 이전 Amazon Linux AMI 플랫폼과 동일하게 작동하지 않을 수 있습니다. 예제: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) 플랫폼 후크를 사용하여 환경 인스턴스에서 사용자 지정 코드를 실행하는 것이 좋습니다. `.ebextensions` 구성 파일에서 명령과 컨테이너 명령을 계속 사용할 수 있지만 작업하기가 쉽지 않습니다. 예를 들어 YAML 파일 내에서 명령 스크립트를 작성하는 것은 번거롭고 테스트하기가 어려울 수 있습니다.  AWS CloudFormation 리소스에 대한 참조가 필요한 스크립트에서는 여전히 `.ebextensions` 구성 파일을 사용해야 합니다.  | 
|  플랫폼 후크  |  AL2 플랫폼은 환경 인스턴스의 후크 디렉터리에 실행 파일을 추가하여 환경의 플랫폼을 확장하는 새로운 방법을 소개했습니다. 이전 Linux 플랫폼 버전에서는 사용자 지정 플랫폼 후크를 사용했을 것입니다. 이러한 후크는 관리형 플랫폼용으로 설계되지 않아 지원되지 않았지만 경우에 따라 유용한 방식으로 사용할 수 있었습니다. AL2023/AL2 플랫폼 버전에서는 사용자 지정 플랫폼 후크가 작동하지 않습니다. 모든 후크를 새 플랫폼 후크로 마이그레이션해야 합니다. 자세한 내용은 [플랫폼 후크](platforms-linux-extend.hooks.md) 단원을 참조하세요.  | 
|  지원되는 프록시 서버  |  AL2023/AL2 플랫폼 버전은 Amazon Linux AMI 플랫폼 버전에서 지원되는 각 플랫폼과 동일한 역방향 프록시 서버를 지원합니다. ECS 및 Docker 플랫폼을 제외한 모든 AL2023/AL2, 플랫폼 버전은 nginx를 기본 리버스 프록시 서버로 사용합니다. Tomcat, Node.js, PHP 및 Python 플랫폼은 Apache HTTPD도 대안으로 지원합니다. 모든 플랫폼에서는 이 단원에 설명된 것처럼 일관된 방식으로 프록시 서버를 구성할 수 있습니다. 그러나 프록시 서버 구성은 Amazon Linux AMI에서와 약간 다릅니다. 모든 플랫폼에서 차이점은 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) 플랫폼별 프록시 구성 변경 사항에 대한 자세한 내용은 [플랫폼별 고려 사항](#using-features.migration-al.specific)을 참조하세요. AL2023/AL2 플랫폼의 프록시 구성에 대한 자세한 내용은 [역방향 프록시 구성](platforms-linux-extend.proxy.md) 단원을 참조하세요.  | 
|   프록시 구성 변경   |  각 플랫폼에 고유한 프록시 구성 변경 사항 외에도 모든 플랫폼에 균일하게 적용되는 프록시 구성 변경 사항이 있습니다. 환경을 정확하게 구성하려면 두 가지를 모두 참조하는 것이 중요합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html)  | 
|  인스턴스 프로파일  |  AL2023/AL2 플랫폼에서는 인스턴스 프로파일을 구성해야 합니다. 인스턴스 프로파일이 없는 경우 일시적으로 환경 생성이 성공할 수 있지만 인스턴스 프로파일이 필요한 작업이 실패하면 생성 직후 환경에 오류가 표시될 수 있습니다. 자세한 내용은 [Elastic Beanstalk 인스턴스 프로파일 관리](iam-instanceprofile.md)을 참조하세요.  | 
|  확장된 상태  |  AL2023/AL2 플랫폼 버전은 기본적으로 향상된 상태를 활성화합니다. 이 점이 Elastic Beanstalk 콘솔을 사용하여 환경을 생성하지 않는 경우 변경된 점입니다. 콘솔은 플랫폼 버전에 관계없이 가능한 경우 기본적으로 확장된 상태를 활성화합니다. 자세한 내용은 [Elastic Beanstalk의 향상된 상태 보고 및 모니터링](health-enhanced.md)을 참조하세요.  | 
|  사용자 지정 AMI  |  사용자 환경에서 [사용자 지정 AMI](using-features.customenv.md)를 사용하는 경우 Elastic Beanstalk AL2023/AL2 플랫폼을 사용하는 새 환경을 위해 AL2023/AL2에 기반한 새 AMI를 생성합니다.  | 
|  사용자 지정 플랫폼  |  AL2023/AL2 플랫폼 버전의 관리형 AMI는 사용자 지정 플랫폼을 지원하지 않습니다.  | 

## 플랫폼별 고려 사항
<a name="using-features.migration-al.specific"></a>

여기에서는 특정 Elastic Beanstalk Linux 플랫폼과 관련된 마이그레이션 고려 사항에 대해 설명합니다.

### 도커
<a name="using-features.migration-al.specific.docker"></a>

Amazon Linux AMI(AL1) 기반 도커 플랫폼 브랜치 제품군에는 3개의 플랫폼 브랜치가 포함됩니다. 각각에 대해 다양한 마이그레이션 경로를 권장합니다.


|  **AL1 플랫폼 분기**  |  **AL2023/AL2로의 마이그레이션 경로**  | 
| --- | --- | 
|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  Amazon Linux AMI(AL1)에서 실행되는 Amazon ECS에서 관리하는 다중 컨테이너 도커  |   ECS 기반 도커 AL2023/AL2 플랫폼 브랜치 *ECS 기반 도커 AL2023/AL2* 플랫폼 브랜치는 *멀티 컨테이너 도커 AL1* 플랫폼 브랜치에서 실행되는 환경에 대한 간단한 마이그레이션 경로를 제공합니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) *멀티 컨테이너 Amazon Linux* 플랫폼 브랜치에서 실행되는 애플리케이션을 *AL2023/AL2에서 실행되는 Amazon ECS* 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 [Elastic Beanstalk 애플리케이션을 AL1의 ECS 관리형 다중 컨테이너 도커에서 Amazon Linux 2023 기반의 ECS로 마이그레이션](migrate-to-ec2-AL2-platform.md) 섹션을 참조하세요.  | 
|  Amazon Linux AMI(AL1)에서 실행되는 도커 Amazon Linux AMI(AL1)에서 실행되는 사전 구성된 도커(Glassfish 5.0)  |   AL2023/AL2 플랫폼 브랜치에서 실행되는 도커 *사전 구성된 도커(Glassfish 5.0)* 또는 *Amazon Linux AMI(AL1)에서 실행되는 도커* 기반의 환경에서 실행되는 애플리케이션을 *Amazon Linux 2에서 실행되는 도커* 또는 *AL2023에서 실행되는 도커* 플랫폼 브랜치에서 실행되는 도커 기반의 환경으로 마이그레이션하는 것이 좋습니다.  환경이 *사전 구성된 도커(Glassfish 5.0)* 플랫폼 분기를 기반으로 하는 경우 [도커 플랫폼에 GlassFish 애플리케이션 배포: Amazon Linux 2023에 대한 마이그레이션 경로](create_deploy_dockerpreconfig.md#docker-glassfish-tutorial)를 참조하십시오. 다음 표에는 *AL2023/AL2에서 실행되는 플랫폼 브랜치 도커*와 관련된 마이그레이션 정보가 열거되어 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html)  | 
|  스토리지  |  Elastic Beanstalk는 Docker 이미지 및 컨테이너 데이터를 저장하기 위해 [스토리지 드라이버](https://docs.docker.com/storage/storagedriver/)를 사용하도록 Docker를 구성합니다. Amazon Linux AMI에서 Elastic Beanstalk는 [디바이스 매퍼 스토리지 드라이버](https://docs.docker.com/storage/storagedriver/device-mapper-driver/)를 사용했습니다. 성능을 향상시키기 위해 Elastic Beanstalk는 추가 Amazon EBS 볼륨을 프로비저닝했습니다. AL2023/AL2 Docker 플랫폼 버전에서 Elastic Beanstalk는 [OverlayFS 스토리지 드라이버](https://docs.docker.com/storage/storagedriver/overlayfs-driver/)를 사용하며, 별도의 볼륨 없이도 더 나은 성능을 제공합니다. Amazon Linux AMI에서 `BlockDeviceMappings` 네임스페이스의 `aws:autoscaling:launchconfiguration` 옵션을 사용하여 Docker 환경에 사용자 지정 스토리지 볼륨을 추가한 경우 Elastic Beanstalk가 프로비저닝하는 `/dev/xvdcz` Amazon EBS 볼륨도 추가하는 것이 좋습니다. Elastic Beanstalk는 더 이상 이 볼륨을 프로비저닝하지 않으므로 구성 파일에서 제거해야 합니다. 자세한 내용은 [Amazon Linux AMI(이전 Amazon Linux 2)에서 Docker 구성](create_deploy_docker.container.console.md#docker-alami)을 참조하세요.  | 
|  프라이빗 리포지토리 인증  |  프라이빗 리포지토리 연결을 위해 Docker에서 생성한 인증 파일을 제공하면 더 이상 Amazon Linux AMI Docker 플랫폼 버전에 필요한 이전 형식으로 변환할 필요가 없습니다. AL2023/AL2 플랫폼 버전은 새로운 형식을 지원합니다. 자세한 내용은 [이미지 리포지토리로 인증](docker-configuration.remote-repo.md)을 참조하세요.  | 
|  프록시 서버  |  AL2023/AL2 Docker 플랫폼 버전은 프록시 서버 뒤에서 실행되지 않는 독립 실행형 컨테이너를 지원하지 않습니다. Amazon Linux AMI Docker 플랫폼 버전에서는 `aws:elasticbeanstalk:environment:proxy` 네임스페이스에 있는 `ProxyServer` 옵션의 `none` 값을 통해 이것이 가능했습니다.  | 

### Go
<a name="using-features.migration-al.specific.go"></a>

다음 표는 [Go 플랫폼](go-environment.md)의 AL2023/AL2 플랫폼 버전에 대한 마이그레이션 정보를 나열합니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  포트 전달  |  AL2023/AL2 플랫폼에서 Elastic Beanstalk는 `PORT` 환경 변수를 통해 애플리케이션 프로세스에 포트 값을 전달하지 않습니다. `PORT` 환경 속성을 직접 구성하여 프로세스에 대해 이 동작을 시뮬레이션할 수 있습니다. 그러나 여러 프로세스가 있고 Elastic Beanstalk를 사용하여 프로세스(5000, 5100, 5200 등)에 증분 포트 값을 전달하는 경우 구현을 수정해야 합니다. 자세한 내용은 [역방향 프록시 구성](platforms-linux-extend.proxy.md) 단원을 참조하세요.  | 

### Amazon Corretto
<a name="using-features.migration-al.specific.corretto"></a>

아래 표에는 [Java SE 플랫폼](java-se-platform.md)의 Corretto 플랫폼 브랜치에 대한 마이그레이션 정보가 나와 있습니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  Corretto와 OpenJDK  |  Java 플랫폼, Standard Edition(Java SE)을 구현하기 위해 AL2023/AL2 플랫폼 브랜치는 Open Java Development Kit(OpenJDK)의 AWS 배포판인 [Amazon Corretto](https://aws.amazon.com/corretto)를 사용합니다. 이전 Elastic Beanstalk Java SE 플랫폼 브랜치에서는 Amazon Linux AMI에 포함된 OpenJDK 패키지를 사용합니다.  | 
|  빌드 도구  |  AL2023/AL2 플랫폼에는 최신 버전의 빌드 도구인 `gradle`, `maven` 및 `ant`이(가) 있습니다.  | 
|  JAR 파일 처리  |  AL2023/AL2 플랫폼에서 소스 번들(ZIP 파일)에 단일 JAR 파일이 포함되어 있고 다른 파일이 없는 경우 Elastic Beanstalk는 더 이상 JAR 파일의 이름을 `application.jar`(으)로 바꾸지 않습니다. 이름 바꾸기는 ZIP 파일에 포함하지 않고 JAR 파일을 자체적으로 제출하는 경우에만 수행됩니다.  | 
|  포트 전달  |  AL2023/AL2 플랫폼에서 Elastic Beanstalk는 `PORT` 환경 변수를 통해 애플리케이션 프로세스에 포트 값을 전달하지 않습니다. `PORT` 환경 속성을 직접 구성하여 프로세스에 대해 이 동작을 시뮬레이션할 수 있습니다. 그러나 여러 프로세스가 있고 Elastic Beanstalk를 사용하여 프로세스(5000, 5100, 5200 등)에 증분 포트 값을 전달하는 경우 구현을 수정해야 합니다. 자세한 내용은 [역방향 프록시 구성](platforms-linux-extend.proxy.md) 단원을 참조하세요.  | 
|  Java 7  |  Elastic Beanstalk는 AL2023/AL2 Java 7 플랫폼 브랜치를 지원하지 않습니다. Java 7 애플리케이션이 있는 경우 Corretto 8 또는 Corretto 11로 마이그레이션합니다.  | 

### Tomcat
<a name="using-features.migration-al.specific.tomcat"></a>

다음 표에는 [Tomcat 플랫폼](java-tomcat-platform.md)의 AL2023/AL2 플랫폼 버전에 대한 마이그레이션 정보를 나열합니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  **옵션**  |  **마이그레이션 정보**  | 
| --- | --- | 
|  구성 옵션  |  AL2023/AL2 플랫폼 버전에서는 Elastic Beanstalk가 `aws:elasticbeanstalk:environment:proxy` 네임스페이스에 있는 구성 옵션 및 옵션 값의 일부만 지원합니다. 다음은 각 옵션에 대한 마이그레이션 정보입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) `aws:elasticbeanstalk:container:tomcat:jvmoptions` 네임스페이스의 `XX:MaxPermSize` 옵션은 AL2023/AL2 플랫폼 버전에서는 지원되지 않습니다. 영구 생성 크기를 수정하는 JVM 설정은 Java 7 및 이전 버전에만 적용되므로 AL2023/AL2 플랫폼 버전에는 적용되지 않습니다.  | 
|  애플리케이션 경로  |  AL2023/AL2 플랫폼에서 사용자 환경의 Amazon EC2 인스턴스에서 애플리케이션 디렉터리 경로는 `/var/app/current`입니다. 이는 Amazon Linux AMI 플랫폼에서 `/var/lib/tomcat8/webapps`였습니다.  | 
|  `GzipCompression`  |  AL2023/AL2 플랫폼 버전에서는 지원되지 않습니다.  | 
|  `ProxyServer`  |  AL2023/AL2 Tomcat 플랫폼 버전은 nginx와 Apache HTTPD 버전 2.4 프록시 서버를 모두 지원합니다. 그러나 Apache 버전 2.2는 지원되지 않습니다. Amazon Linux AMI 플랫폼 버전에서 기본 프록시는 Apache 2.4였습니다. 기본 프록시 설정을 사용하고 사용자 지정 프록시 구성 파일을 추가한 경우 AL2023/AL2에서 프록시 구성이 여전히 작동합니다. 그러나 `apache/2.2` 옵션 값을 사용한 경우 이제 프록시 구성을 Apache 버전 2.4로 마이그레이션해야 합니다.  | 

### Node.js
<a name="using-features.migration-al.specific.nodejs"></a>

다음 표에는 [Node.js 플랫폼](create_deploy_nodejs.container.md)의 AL2023/AL2 플랫폼 버전에 대한 마이그레이션 정보가 나와 있습니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  **옵션**  |  **마이그레이션 정보**  | 
| --- | --- | 
|  설치된 Node.js 버전  |  AL2023/AL2 플랫폼에서 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 로그 파일 이름  |  AL2023/AL2 플랫폼에서 Apache HTTPD 프록시 서버를 사용하는 경우 HTTPD 로그 파일 이름은 `access_log` 및 `error_log`이며, 이는 Apache HTTPD를 지원하는 다른 모든 플랫폼과 일치합니다. Amazon Linux AMI 플랫폼 버전에서는 이러한 로그 파일의 이름이 각각 `access.log` 과 `error.log`였습니다. 모든 플랫폼의 로그 파일 이름 및 위치에 대한 자세한 내용은 [Elastic Beanstalk로 CloudWatch Logs를 설정하는 방법](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.loggroups)을 참조하세요.  | 
|  구성 옵션  |  AL2023/AL2 플랫폼에서 Elastic Beanstalk는 `aws:elasticbeanstalk:container:nodejs` 네임스페이스의 구성 옵션을 지원하지 않습니다. 일부 옵션에는 대안이 있습니다. 다음은 각 옵션에 대한 마이그레이션 정보입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html)  | 
|  `NodeCommand`  |  `Procfile` 또는 `package.json` 파일의 `scripts` 키워드를 사용하여 시작 스크립트를 지정합니다.  | 
|  `NodeVersion`  |  `package.json` 파일의 `engines` 키워드를 사용하여 Node.js를 버전을 지정합니다. 플랫폼 브랜치에 해당하는 Node.js 버전만 지정할 수 있습니다. 예를 들어 Node.js 12 플랫폼 브랜치를 사용하는 경우 12.x.y Node.js 버전만 지정할 수 있습니다. 자세한 내용은 [package.json 파일로 Node.js 종속성 지정](nodejs-platform-dependencies.md#nodejs-platform-packagejson)을 참조하세요.  | 
|  `GzipCompression`  |  AL2023/AL2 플랫폼 버전에서는 지원되지 않습니다.  | 
|  `ProxyServer`  |  AL2023/AL2 Node.js 플랫폼 버전에서 이 옵션은 `aws:elasticbeanstalk:environment:proxy` 네임스페이스로 이동했습니다. `nginx`(기본값)와 `apache` 중에서 선택할 수 있습니다. AL2023/AL2 Node.js 플랫폼 버전은 프록시 서버 뒤에서 실행되지 않는 독립 실행형 애플리케이션을 지원하지 않습니다. Amazon Linux AMI Node.js 플랫폼 버전에서는 `aws:elasticbeanstalk:container:nodejs` 네임스페이스에 있는 `ProxyServer` 옵션의 `none` 값을 통해 이것이 가능했습니다. 사용자 환경에서 독립 실행형 애플리케이션을 실행하는 경우 프록시 서버(nginx 또는 Apache)가 트래픽을 전달하는 포트에서 수신하도록 코드를 업데이트합니다. <pre>var port = process.env.PORT || 5000;<br /><br />app.listen(port, function() {<br />  console.log('Server running at http://127.0.0.1:%s', port);<br />});</pre>  | 

### PHP
<a name="using-features.migration-al.specific.php"></a>

다음 표는 [PHP 플랫폼](create_deploy_PHP.container.md)의 AL2023/AL2 플랫폼 버전에 대한 마이그레이션 정보를 나열합니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  PHP 파일 처리  |  AL2023/AL2 플랫폼에서 PHP 파일은 PHP-FPM(CGI 프로세스 관리자)을 사용하여 처리됩니다. Amazon Linux AMI 플랫폼에서는 mod\$1php(Apache 모듈)를 사용했습니다.  | 
|  프록시 서버  |  AL2023/AL2 PHP 플랫폼 버전은 nginx와 Apache HTTPD 프록시 서버를 모두 지원합니다. 기본값은 nginx입니다. Amazon Linux AMI PHP 플랫폼 버전은 Apache HTTPD만 지원했습니다. 사용자 지정 Apache 구성 파일을 추가한 경우 `aws:elasticbeanstalk:environment:proxy` 네임스페이스의 `ProxyServer` 옵션을 `apache`로 설정할 수 있습니다.  | 

### Python
<a name="using-features.migration-al.specific.python"></a>

다음 표는 [Python 플랫폼](create-deploy-python-container.md)의 AL2023/AL2 플랫폼 버전에 대한 마이그레이션 정보를 나열합니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  WSGI 서버  |  AL2023/AL2 플랫폼에서 [Gunicorn](https://gunicorn.org/)은 기본 WSGI 서버입니다. 기본적으로 Gunicorn은 포트 8000에서 수신 대기합니다. 이 포트는 애플리케이션이 Amazon Linux AMI 플랫폼에서 사용한 포트와 다를 수도 있습니다. `[aws:elasticbeanstalk:container:python](command-options-specific.md#command-options-python)` 네임스페이스의 `WSGIPath` 옵션을 설정하는 경우 값을 Gunicorn의 구문으로 바꿉니다. 자세한 내용은 [Python 구성 네임스페이스](create-deploy-python-container.md#python-namespaces)을 참조하세요. 또는 `Procfile`를 사용하여 WSGI 서버를 지정 및 구성할 수 있습니다. 자세한 내용은 [Elastic Beanstalk에서 Procfile을 사용하여 WSGI 서버 구성](python-configuration-procfile.md)을 참조하세요.  | 
|  애플리케이션 경로  |  AL2023/AL2 플랫폼에서 사용자 환경의 Amazon EC2 인스턴스에서 애플리케이션 디렉터리 경로는 `/var/app/current`입니다. 이는 Amazon Linux AMI 플랫폼에서 `/opt/python/current/app`였습니다.  | 
|  프록시 서버  |  AL2023/AL2 Python 플랫폼 버전은 nginx와 Apache HTTPD 프록시 서버를 모두 지원합니다. 기본값은 nginx입니다. Amazon Linux AMI Python 플랫폼 버전은 Apache HTTPD만 지원했습니다. 사용자 지정 Apache 구성 파일을 추가한 경우 `aws:elasticbeanstalk:environment:proxy` 네임스페이스의 `ProxyServer` 옵션을 `apache`로 설정할 수 있습니다.  | 

### Ruby
<a name="using-features.migration-al.specific.ruby"></a>

다음 표는 [Ruby 플랫폼](create_deploy_Ruby.container.md)의 AL2023/AL2 플랫폼 버전에 대한 마이그레이션 정보를 나열합니다.


|  **영역**  |  **변경 사항 및 정보**  | 
| --- | --- | 
|  설치된 Ruby 버전  |  AL2023/AL2 플랫폼에서 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 버전이 있는 플랫폼 브랜치로 전환하는 것이 좋습니다.  | 
|  애플리케이션 서버  |  AL2023/AL2 플랫폼에서 Elastic Beanstalk는 모든 Ruby 플랫폼 버전에 Puma 애플리케이션 서버만 설치합니다. `Procfile`을 사용하여 다른 애플리케이션 서버를 시작하고 `Gemfile`을 사용하여 해당 서버를 설치할 수 있습니다. Amazon Linux AMI 플랫폼에서는 각 Ruby 버전에 대해 Puma 애플리케이션 서버와 Passenger 애플리케이션 서버에 하나씩 두 가지 플랫폼 브랜치를 지원했습니다. 애플리케이션에서 Passenger를 사용하는 경우 Passenger를 설치하여 사용하도록 Ruby 환경을 구성할 수 있습니다. 자세한 정보와 지침은 [Elastic Beanstalk Ruby 플랫폼 사용](create_deploy_Ruby.container.md)을 참조하세요.  | 