

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

# Elastic Beanstalk 환경에 대한 Amazon EC2 인스턴스
<a name="using-features.managing.ec2"></a>

이 주제에서는 Elastic Beanstalk 환경에 영향을 미치는 Amazon EC2 인스턴스 및 구성 옵션에 대해 설명합니다.

웹 서버 환경을 생성할 때는 *인스턴스*라고 하는 하나 이상의 Amazon Elastic Compute Cloud(Amazon EC2) 가상 머신을 AWS Elastic Beanstalk 생성합니다.

사용자 환경 인스턴스는 선택한 플랫폼에서 웹 앱을 실행하도록 구성됩니다. 환경을 생성할 때 또는 이미 실행 중일 때 환경 인스턴스의 다양한 속성과 동작을 변경할 수 있습니다. 또는 환경에 배포하는 소스 코드 수정을 통해 사전에 이러한 변경을 수행할 수 있습니다. 자세한 내용은 [구성 옵션](command-options.md) 단원을 참조하세요.

**참고**  
환경 [오토 스케일링 그룹](using-features.managing.as.md)은 애플리케이션을 실행하는 Amazon EC2 인스턴스를 관리합니다. 이 주제에 설명된 구성을 변경할 경우 시작 구성도 변경됩니다. 시작 구성은 Amazon EC2 시작 템플릿 또는 Auto Scaling 그룹 시작 구성 리소스입니다. 이 변경 사항에 따라 [모든 인스턴스를 교체](environments-updating.md)해야 합니다. 또한 구성된 업데이트에 따라 [롤링 업데이트](using-features.rollingupdates.md) 또는 [변경 불가능한 업데이트](environmentmgmt-updates-immutable.md)를 트리거합니다.

**EC2 인스턴스 구입 옵션**  
Elastic Beanstalk는 여러 Amazon EC2 [인스턴스 구매 옵션](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html)을 지원합니다.
+ **온디맨드** - *온디맨드 인스턴스*는 종량제 리소스이므로 사용할 때 장기 약정이 필요하지 않습니다.
+ **예약** - *예약 인스턴스*는 사용자 환경에서 일치하는 온디맨드 인스턴스에 자동으로 적용되는 사전 구매 결제 할인입니다.
+ **스팟** - *스팟 인스턴스*는 온디맨드 가격보다 저렴한 비용으로 사용할 수 있는 미사용 Amazon EC2 인스턴스입니다. 환경에서 스팟 인스턴스 할당을 활성화하고 구성할 수 있습니다. 자세한 내용은 [Elastic Beanstalk 환경 인스턴스의 Auto Scaling](using-features.managing.as.md) 단원을 참조하십시오.

**Topics**
+ [Amazon EC2 인스턴스 유형](using-features.managing.ec2.instance-types.md)
+ [Elastic Beanstalk 콘솔을 사용하여 Amazon EC2 인스턴스 구성](using-features.managing.ec2.console.md)
+ [EC2 보안 그룹 관리](using-features.managing.ec2.instances.sg.md)
+ [를 사용하여 Amazon EC2 보안 그룹 및 인스턴스 유형 구성 AWS CLI](using-features.managing.ec2.aws-cli.md)
+ [네임스페이스 옵션으로 Amazon EC2 인스턴스 구성](using-features.managing.ec2.namespace.md)
+ [Elastic Beanstalk 환경 인스턴스에서 IMDS 구성](environments-cfg-ec2-imds.md)

# Amazon EC2 인스턴스 유형
<a name="using-features.managing.ec2.instance-types"></a>

이 주제에서는 *인스턴스 유형 *이라는 용어를 설명합니다. 새 환경을 생성하면 Elastic Beanstalk는 사용자가 선택한 Amazon EC2 *인스턴스 유형*에 따른 Amazon EC2 인스턴스를 프로비저닝합니다. 선택한 인스턴스 유형을 기준으로 인스턴스를 실행하는 호스트 하드웨어가 결정됩니다. EC2 인스턴스 유형은 각각이 기반으로 하는 프로세서 아키텍처별로 분류할 수 있습니다. Elastic Beanstalk는 AWS Graviton 64비트 Arm 아키텍처(arm64), 64비트 아키텍처(x86) 및 32비트 아키텍처(i386)와 같은 프로세서 아키텍처를 기반으로 인스턴스 유형을 지원합니다. Elastic Beanstalk는 새 환경을 생성할 경우 x86 프로세서 아키텍처를 기본적으로 선택합니다.

**참고**  
i386 32비트 아키텍처는 대부분의 Elastic Beanstalk 플랫폼에서 더 이상 지원되지 않습니다. 대신 x86 또는 arm64 아키텍처 유형을 선택하는 것을 권장합니다. Elastic Beanstalk는 [`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances) 네임스페이스의 i386 프로세서 인스턴스 유형에 대한 [구성 옵션](command-options.md)을 제공합니다.

지정된 Elastic Beanstalk 환경에 대한 구성의 모든 인스턴스 유형에 있는 프로세서 아키텍처는 동일한 유형이여야 합니다. x86 아키텍처 기반의 t2.medium 인스턴스 유형이 이미 존재하는 기존 환경에 새 인스턴스 유형을 추가한다고 가정하십시오. t2.small과 같은 동일한 아키텍처의 다른 인스턴스 유형만 추가할 수 있습니다. 기존 인스턴스 유형을 다른 아키텍처의 인스턴스 유형으로 바꾸려면 이 작업을 수행하면 됩니다. 하지만 명령의 모든 인스턴스 유형이 동일한 유형의 아키텍처를 기반으로 해야 합니다.

호환되는 새로운 인스턴스 유형이 Amazon EC2에 도입되고 나면 Elastic Beanstalk는 정기적으로 지원을 추가합니다. 사용 가능한 인스턴스 유형에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)을 참조하세요.

**참고**  
이제 Elastic Beanstalk는 모든 Graviton 지원 리전의 모든 최신 Amazon Linux 2 플랫폼에서 AWS Graviton에 대한 지원을 제공합니다. arm64 기반 인스턴스 유형으로 Elastic Beanstalk 환경을 생성하는 방법에 대한 자세한 내용은 [Elastic Beanstalk 콘솔을 사용하여 Amazon EC2 인스턴스 구성](using-features.managing.ec2.console.md) 단원을 참조하십시오.  
arm64 아키텍처에서 Amazon EC2 인스턴스를 실행하는 새 환경을 만들고 Elastic Beanstalk의 [배포 옵션](using-features.deploy-existing-version.md)을 사용하여 기존 애플리케이션을 해당 환경으로 마이그레이션합니다.  
  
Graviton arm64 기반 프로세서에 대한 자세한 내용은 다음 AWS 리소스를 참조하세요.  
이점 - [AWS Graviton 프로세서](https://aws.amazon.com/ec2/graviton/) 
*시작하기* 및 *언어별 고려 사항과 같은 기타 주제 -* [AWS Graviton](https://github.com/aws/aws-graviton-getting-started#getting-started-with-aws-graviton) GitHub 시작하기 문서 

# Elastic Beanstalk 콘솔을 사용하여 Amazon EC2 인스턴스 구성
<a name="using-features.managing.ec2.console"></a>

Elastic Beanstalk 콘솔에서 Elastic Beanstalk 환경의 Amazon EC2 인스턴스 구성을 생성하거나 수정할 수 있습니다.

**참고**  
Elastic Beanstalk 콘솔은 기존 환경의 프로세서 아키텍처를 변경하는 옵션을 제공하지 않지만 AWS CLI를 사용하여 변경할 수 있습니다. 예제 명령은 [를 사용하여 Amazon EC2 보안 그룹 및 인스턴스 유형 구성 AWS CLI](using-features.managing.ec2.aws-cli.md) 단원을 참조하세요.

**환경을 생성하는 동안 Elastic Beanstalk 콘솔에서 Amazon EC2 인스턴스를 구성하려면**

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

1. 탐색 창에서 **환경**을 선택합니다.

1. [새 환경 생성](environments-create-wizard.md)을 선택하여 환경 생성을 시작합니다.

1. 마법사의 기본 페이지에서 **환경 생성**을 선택하기 전에 **추가 옵션 구성**을 선택합니다.

1. **인스턴스** 구성 범주에서 **편집**을 선택합니다. 이 범주의 설정을 변경한 다음 **적용**을 선택합니다. 설정 설명은 이 페이지의 [인스턴스 범주 설정](#using-features.managing.ec2.console.instances) 단원을 참조하십시오.

1. [**용량**] 구성 범주에서 [**편집**]을 선택합니다. 이 범주의 설정을 변경한 다음 **계속**을 선택합니다. 설정 설명은 이 페이지의 [용량 범주 설정](#using-features.managing.ec2.console.capacity)을 참조하십시오.
**프로세서 아키텍처 선택**  
스크롤을 **프로세서**까지 아래로 내려 EC2 인스턴스에 대한 프로세서 아키텍처를 선택합니다. 콘솔은 이전에 **환경 생성(Create environment)** 패널에서 선택한 플랫폼에서 지원하는 프로세서 아키텍처를 나열합니다.  
필요한 프로세서 아키텍처가 표시되지 않는 경우, 구성 범주 목록으로 돌아가 해당 아키텍처를 지원하는 플랫폼을 선택하십시오. **용량 수정(Modify Capacity)** 패널에서 **취소(Cancel)**를 선택합니다. 그런 다음 **플랫폼 버전 변경(Change platform version)**을 선택하여 새 플랫폼 설정을 선택합니다. 다음으로 **용량(Capacity)** 구성 범주에서 **편집(Edit)**을 선택하여 프로세서 아키텍처 선택 사항을 다시 확인합니다.  

![\[실행 환경에 대한 Elastic Beanstalk 용량 구성 창의 Amazon EC2 인스턴스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-env-config-ec2-capacity-create-env-page.png)


1. **저장**을 선택하고 난 후 환경에 필요한 다른 구성 부분을 변경합니다.

1. **환경 생성**을 선택합니다.







**Elastic Beanstalk 콘솔에서 실행 환경 Amazon EC2 인스턴스를 구성하려면**

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

1. 탐색 창에서 **환경**을 선택한 다음 목록에서 환경의 이름을 선택합니다.

1. 탐색 창에서 **구성**을 선택합니다.

1. [**인스턴스**] 구성 범주에서 [**편집**]을 선택합니다. 이 범주의 설정을 변경한 다음 **적용**을 선택합니다. 설정 설명은 이 페이지의 [인스턴스 범주 설정](#using-features.managing.ec2.console.instances) 단원을 참조하십시오.

1. [**용량**] 구성 범주에서 [**편집**]을 선택합니다. 이 범주의 설정을 변경한 다음 **계속**을 선택합니다. 설정 설명은 이 페이지의 [용량 범주 설정](#using-features.managing.ec2.console.capacity) 단원을 참조하십시오.

## 인스턴스 범주 설정
<a name="using-features.managing.ec2.console.instances"></a>

**인스턴스** 구성 범주에서는 Amazon EC2 인스턴스와 관련된 다음과 같은 설정을 사용할 수 있습니다.

**Topics**
+ [모니터링 간격](#using-features.managing.ec2.monitoring-interval)
+ [루트 볼륨(부트 디바이스)](#using-features.managing.ec2.rootvolume)
+ [인스턴스 메타데이터 서비스](#using-features.managing.ec2.imds)
+ [EC2 보안 그룹](#using-features.managing.ec2.securitygroups)

![\[Elastic Beanstalk 인스턴스 구성 창의 Amazon EC2 인스턴스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-env-config-ec2-instances-page.png)


### 모니터링 간격
<a name="using-features.managing.ec2.monitoring-interval"></a>

기본적으로 환경 인스턴스는 추가 비용 없이 Amazon CloudWatch에 [기본 상태 측정치](using-features.healthstatus.md)를 5분 간격으로 게시합니다.

더 세부적인 보고를 받으려면 **모니터링 간격**을 **1분**으로 설정하여 환경의 리소스가 [기본 상태 측정치](using-features.healthstatus.md#monitoring-basic-cloudwatch)를 CloudWatch에 게시하는 빈도를 늘리면 됩니다. CloudWatch 서비스 요금은 1분 간격 측정치에 적용됩니다. 자세한 내용은 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)를 참조하세요.

### 루트 볼륨(부트 디바이스)
<a name="using-features.managing.ec2.rootvolume"></a>

환경의 각 인스턴스는 루트 볼륨으로 구성되어 있습니다. 루트 볼륨은 운영 체제, 라이브러리, 스크립트, 애플리케이션 소스 코드를 저장하기 위해 인스턴스에 연결된 Amazon EBS 블록 디바이스입니다. 기본적으로 모든 플랫폼은 스토리지에 일반용 SSD 블록 디바이스를 사용합니다.

**루트 볼륨 유형**을 수정하여 마그네틱 스토리지 또는 프로비저닝된 IOPS SSD 볼륨 유형을 사용하고, 필요한 경우 볼륨 크기를 늘릴 수 있습니다. 프로비저닝된 IOPS 볼륨의 경우 프로비저닝할 **IOPS**의 수도 선택해야 합니다. **처리량**은 gp3 SSD 볼륨 유형에만 적용됩니다. 프로비저닝할 처리량을 입력할 수 있습니다. 이 값은 초당 125\$11,000 메가 바이트(MiB/s) 범위 내로 설정할 수 있습니다. 성능과 가격 요건에 맞는 볼륨 유형을 선택합니다.

**중요**  
`RootVolumeType` 옵션 설정으로 인해 Elastic Beanstalk이 시작 구성을 사용하는 기존 환경을 시작 템플릿으로 마이그레이션할 수 있습니다. 이 작업을 위해서는 시작 템플릿을 관리할 수 있는 권한이 필요합니다. 이러한 권한은 관리형 정책에 포함되어 있습니다. 관리형 정책 대신 사용자 지정 정책을 사용하는 경우, 환경 구성을 업데이트할 때 환경 생성 또는 업데이트가 실패할 수 있습니다. 자세한 내용 및 기타 고려 사항은 [Elastic Beanstalk 환경의 시작 템플릿으로의 마이그레이션](environments-cfg-autoscaling-launch-templates.md) 섹션을 참조하세요.

자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)과 [Amazon EBS 제품 세부 정보](https://aws.amazon.com/ebs/details/)를 참조하세요.

### 인스턴스 메타데이터 서비스
<a name="using-features.managing.ec2.imds"></a>

인스턴스 메타데이터 서비스(IMDS)는 인스턴스의 코드가 인스턴스 메타데이터에 안전하게 액세스하기 위해 사용하는 온 인스턴스 구성 요소입니다. 코드는 두 가지 방법 중 하나를 사용하여 실행 중인 인스턴스에서 인스턴스 메타데이터에 액세스할 수 있습니다. 인스턴스 메타데이터 서비스 버전 1(IMDSv1) 또는 인스턴스 메타데이터 서비스 버전 2(IMDSv2)입니다. IMDSv2가 더 안전합니다. IMDSv1을 비활성화하고 IMDSv2를 적용하십시오. 자세한 내용은 [Elastic Beanstalk 환경 인스턴스에서 IMDS 구성](environments-cfg-ec2-imds.md) 섹션을 참조하세요.

**참고**  
이 구성 페이지의 IMDS 섹션은 IMDSv2를 지원하는 플랫폼 버전에 대해서만 설명합니다.

### EC2 보안 그룹
<a name="using-features.managing.ec2.securitygroups"></a>

인스턴스에 연결된 보안 그룹은 인스턴스로 들어오고 나가는 트래픽의 허용 여부를 결정합니다.

Elastic Beanstalk이 생성하는 기본 EC2 보안 그룹은 HTTP(80) 및 SSH(22)의 표준 포트에 대해 인터넷 또는 로드 밸런서로부터의 모든 인바운드 트래픽을 허용합니다. EC2 인스턴스에 대한 방화벽 규칙을 지정하기 위해 자체 사용자 지정 보안 그룹을 정의할 수도 있습니다. 보안 그룹은 다른 포트 또는 다른 소스에서의 트래픽을 허용할 수 있습니다. 예를 들어 제한된 IP 주소 범위에서 포트 22의 인바운드 트래픽을 허용하는 SSH 액세스용 보안 그룹을 생성할 수 있습니다. 또는 추가 보안을 위해 사용자만 액세스할 수 있는 배스천 호스트의 트래픽을 허용하는 보안 그룹을 만들 수 있습니다.

[aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 네임스페이스의 `DisableDefaultEC2SecurityGroup` 옵션을 `true`로 설정하여 기본 EC2 보안 그룹에서 환경을 제외할 수 있습니다. 이 옵션은 콘솔에서 사용할 수 없지만, AWS CLI을(를) 사용하여 설정할 수 있습니다. 자세한 내용은 [EC2 보안 그룹 관리](using-features.managing.ec2.instances.sg.md) 단원을 참조하십시오.

Amazon EC2 보안 그룹에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 보안 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)을 참조하세요.

**참고**  
환경 A의 인스턴스와 환경 B의 인스턴스 간 트래픽을 허용하기 위해 Elastic Beanstalk는 환경 B로 연결된 보안 그룹에 규칙을 추가할 수 있습니다. 이후 Elastic Beanstalk는 환경 A로 연결된 보안 그룹을 지정합니다. 이를 통해 환경 A의 인스턴스에서 인바운드 트래픽 또는 아웃바운드 트래픽이 허용됩니다. 그러나 그렇게 할 시 두 보안 그룹 사이에 종속성이 생성됩니다. 나중에 환경 A를 종료할 경우 환경 B의 보안 그룹이 여기에 종속되어 있기 때문에 Elastic Beanstalk는 이 환경의 보안 그룹을 삭제할 수 없습니다.  
따라서 먼저 보안 그룹을 별도로 생성하는 것을 권장합니다. 그런 다음 환경 A에 첨부하고 환경 B의 보안 그룹 규칙에서 지정합니다.

## 용량 범주 설정
<a name="using-features.managing.ec2.console.capacity"></a>

**용량** 구성 범주에서는 Amazon EC2 인스턴스와 관련된 다음과 같은 설정을 사용할 수 있습니다.

**Topics**
+ [인스턴스 유형](#using-features.managing.ec2.instancetypes)
+ [AMI ID](#using-features.managing.ec2.customami)

![\[생성 환경에 대한 Elastic Beanstalk 용량 구성 창의 Amazon EC2 인스턴스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-env-config-ec2-capacity-page2.png)


### 인스턴스 유형
<a name="using-features.managing.ec2.instancetypes"></a>

**인스턴스 유형** 설정은 애플리케이션을 실행하기 위해 시작되는 Amazon EC2 인스턴스 유형을 결정합니다. 이 구성 페이지에는 **인스턴스 유형** 목록이 표시됩니다. 하나 이상의 인스턴스 유형을 선택할 수 있습니다. Elastic Beanstalk 콘솔은 사용자 환경에 대해 구성된 프로세서 아키텍처를 토대로 인스턴스 유형만 표시합니다. 따라서 동일한 프로세서 아키텍처의 인스턴스 유형만 추가할 수 있습니다.

**참고**  
Elastic Beanstalk 콘솔은 기존 환경의 프로세서 아키텍처를 변경하는 옵션을 제공하지 않지만 AWS CLI를 사용하여 변경할 수 있습니다. 예제 명령은 [를 사용하여 Amazon EC2 보안 그룹 및 인스턴스 유형 구성 AWS CLI](using-features.managing.ec2.aws-cli.md) 단원을 참조하세요.

부하가 걸린 동안에는 애플리케이션을 실행할 만큼 강력하지만 대부분의 시간 동안에는 유휴 상태인 인스턴스를 선택합니다. 개발 용도로 사용되는 인스턴스의 t2 군은 단기간 버스트 기능을 제공함과 동시에 보통 수준의 전력량을 제공합니다. 대규모 고가용성 애플리케이션의 경우 인스턴스 하나가 작동 중단된 경우 용량에 크게 영향을 주지 않도록 인스턴스 풀을 사용합니다. 정상 시간 동안 보통 부하에서 인스턴스를 다섯 개 실행할 수 있는 인스턴스 유형으로 시작합니다. 한 인스턴스가 실패한 경우 다른 인스턴스가 나머지 트래픽을 흡수할 수 있습니다. 용량 버퍼는 피크 시간 동안 트래픽이 스케일 업할 때 환경이 확장될 시간을 제공합니다.

Amazon EC2 인스턴스 패밀리 및 유형에 대한 자세한 내용은 **Amazon EC2 사용 설명서의 [인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)을 참조하세요. 요구 사항 및 지원되는 리전을 충족하는 인스턴스 유형을 확인하려면 *Amazon EC2 사용 설명서*의 [사용 가능한 인스턴스 유형](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes)을 참조하세요.

### AMI ID
<a name="using-features.managing.ec2.customami"></a>

Amazon Machine Image(AMI)는 Elastic Beanstalk가 환경에서 Amazon EC2 인스턴스를 시작하기 위해 사용하는 Amazon Linux 또는 Windows Server 머신 이미지입니다. Elastic Beanstalk는 애플리케이션을 실행하는 데 필요한 도구와 리소스가 포함된 머신 이미지를 제공합니다.

Elastic Beanstalk는 사용자가 선택한 리전, 플랫폼 버전 및 프로세서 아키텍처에 따라 환경의 기본 AMI를 선택합니다. [사용자 지정 AMI](using-features.customenv.md)를 만든 경우 기본 AMI ID를 본인의 기본 사용자 지정 ID로 바꿉니다.

# EC2 보안 그룹 관리
<a name="using-features.managing.ec2.instances.sg"></a>

Elastic Beanstalk는 환경을 생성할 때 기본 보안 그룹을 시작되는 EC2 인스턴스에 할당합니다. 인스턴스에 연결된 보안 그룹은 인스턴스로 들어오고 나가는 트래픽의 허용 여부를 결정합니다.

Elastic Beanstalk이 생성하는 기본 EC2 보안 그룹은 HTTP(80) 및 SSH(22)의 표준 포트에 대해 인터넷 또는 로드 밸런서로부터의 모든 인바운드 트래픽을 허용합니다. EC2 인스턴스에 대한 방화벽 규칙을 지정하기 위해 자체 사용자 지정 보안 그룹을 정의할 수도 있습니다. 보안 그룹은 다른 포트 또는 다른 소스에서의 트래픽을 허용할 수 있습니다. 예를 들어 제한된 IP 주소 범위에서 포트 22의 인바운드 트래픽을 허용하는 SSH 액세스용 보안 그룹을 생성할 수 있습니다. 또는 추가 보안을 위해 사용자만 액세스할 수 있는 배스천 호스트의 트래픽을 허용하는 보안 그룹을 만들 수 있습니다.

[aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 네임스페이스의 `DisableDefaultEC2SecurityGroup` 옵션을 `true`로 설정하여 기본 EC2 보안 그룹에서 환경을 제외할 수 있습니다. [AWS CLI](using-features.managing.ec2.aws-cli.md) 또는 구성 파일을 사용하여 이 옵션을 환경에 적용하고, EC2 인스턴스에 사용자 지정 보안 그룹을 연결하세요.

## 다중 인스턴스 환경에서 EC2 보안 그룹 관리
<a name="using-features.managing.ec2.instances.sg.load-balancer-security"></a>

다중 인스턴스 환경에서 사용자 지정 EC2 보안 그룹을 생성하는 경우 로드 밸런서 및 수신 트래픽 규칙이 인스턴스를 안전하고 액세스할 수 있도록 유지하는 방법도 고려해야 합니다.

여러 EC2 인스턴스가 있는 환경으로의 인바운드 트래픽은 모든 EC2 인스턴스 간에 수신 트래픽을 전달하는 [로드 밸런서](using-features.managing.elb.md)에 의해 관리됩니다. Elastic Beanstalk이 기본 EC2 보안 그룹을 생성할 때, 로드 밸런서로부터의 인바운드 트래픽을 허용하는 규칙도 함께 정의합니다. 보안 그룹에 이 인바운드 규칙이 없으면 수신 트래픽이 인스턴스에 들어갈 수 없습니다. 이 조건은 사실상 인스턴스가 외부 요청을 수신하지 못하도록 차단하는 결과를 초래합니다.

로드 밸런싱 환경에서 기본 EC2 보안 그룹을 비활성화하면 Elastic Beanstalk은 일부 구성 규칙을 검증합니다. 구성이 검증 검사를 충족하지 않으면 필요한 구성을 제공할 것을 안내하는 메시지가 표시됩니다. 검증 검사는 다음과 같습니다.
+ Application Load Balancer 또는 Classic Load Balancer 여부에 따라 [aws:elbv2:loadbalancer](command-options-general.md#command-options-general-elbv2) 또는 [aws:elb:loadbalancer](command-options-general.md#command-options-general-elbloadbalancer)의 `SecurityGroups` 옵션을 사용하여 로드 밸런서에 최소 하나 이상의 보안 그룹을 지정해야 합니다. AWS CLI 예제는 단원을 참조하십시오[ AWS CLI를 사용하여 구성](using-features.managing.ec2.aws-cli.md).
+ EC2 인스턴스가 로드 밸런서로부터 트래픽을 수신할 수 있도록 인바운드 트래픽 규칙이 존재해야 합니다. EC2 보안 그룹과 로드 밸런서 보안 그룹 모두 해당 인바운드 규칙을 참조해야 합니다. 자세한 내용은 이어지는 [트래픽용 인바운드 규칙](#using-features.managing.ec2.instances.sg.load-balancer-security.rules) 단원을 참조하십시오.

### 트래픽용 인바운드 규칙
<a name="using-features.managing.ec2.instances.sg.load-balancer-security.rules"></a>

다중 인스턴스 환경의 EC2 보안 그룹에는 로드 밸런서 보안 그룹을 참조하는 인바운드 규칙이 포함되어야 합니다. 이 조건은 로드 밸런서 유형에 관계없이 전용 또는 공유 로드 밸런서 및 사용자 지정 또는 기본 보안 그룹을 사용하는 모든 환경에 적용됩니다.

EC2 콘솔에서 환경 구성 요소에 연결된 모든 보안 그룹을 확인할 수 있습니다. 다음 이미지는 환경 생성 작업 중 Elastic Beanstalk이 기본적으로 생성하는 보안 그룹이 EC2 콘솔에 표시된 모습입니다.

**보안 그룹** 화면에 환경과 관련 보안 그룹이 표시됩니다. *GettingStarted-env*와 *GettingStarted3-env*는 모두 전용 로드 밸런서를 사용하는 다중 인스턴스 환경입니다. 이러한 각 환경에는 두 개의 보안 그룹이 나열되어 있습니다. 하나는 EC2 인스턴스용이고 다른 하나는 로드 밸런서용입니다. Elastic Beanstalk은 환경을 생성할 때 이러한 보안 그룹을 함께 생성합니다. *GettingStarted5-env*는 EC2 인스턴스 하나만 있는 환경으로 로드 밸런서를 사용하지 않기 때문에, 로드 밸런서 보안 그룹이 없습니다.

**인바운드 규칙** 화면은 *GettingStarted3-env*의 인스턴스에 대한 EC2 보안 그룹으로 드릴다운합니다. 이 예제는 EC2 보안 그룹의 인바운드 규칙을 정의합니다. *인바운드 규칙*의 *소스* 열에는 이전 이미지에 나와 있는 로드 밸런서 보안 그룹의 보안 그룹 ID가 표시된다는 점에 유의하세요. 이 규칙을 사용하면 *GettingStarted3-env*의 EC2 인스턴스가 포트 80에서 특정 로드 밸런서로부터 인바운드 트래픽을 수신할 수 있습니다.

![\[Amazon EC2 콘솔에서는 Elastic Beanstalk 환경별로 보안 그룹이 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-env-config-ec2-ec2console-sg-to-rule.png)






자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 보안 그룹 변경](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html) 및 [Elastic Load Balancing 규칙](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-elb)을 참조하세요.

# 를 사용하여 Amazon EC2 보안 그룹 및 인스턴스 유형 구성 AWS CLI
<a name="using-features.managing.ec2.aws-cli"></a>

 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 Elastic Beanstalk 환경에서 Amazon EC2 인스턴스를 구성할 수 있습니다.

## 를 사용하여 EC2 보안 그룹 구성 AWS CLI
<a name="using-features.managing.ec2.aws-cli.security-groups"></a>

이 주제에서는 단일 인스턴스 및 로드 밸런싱(다중 인스턴스) 환경 모두에 대한 다양한 EC2 보안 그룹 구성의 예시를 제공합니다. 이러한 예제에 사용된 옵션에 대한 자세한 내용은 [aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 섹션을 참조하세요.

**참고**  
환경 생성 작업은 기본적으로 EC2 보안 그룹을 제공합니다. 또한 기본적으로 Application Load Balancer를 사용하여 환경을 생성합니다.  
환경 업데이트 작업은 `DisableDefaultEC2SecurityGroup` 부울 옵션을 사용하여 환경에 대한 기본 EC2 보안 그룹을 비활성화하거나 활성화하는 데 사용할 수 있습니다. *예제 5*는 이전에 환경을 수정한 경우 환경을 기본 보안 구성으로 다시 설정하는 방법을 보여줍니다.

다음 예제에서는 기본 EC2 보안 그룹을 옵트아웃하고 대신 사용자 지정 보안 그룹을 제공하는 [create-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) 명령을 보여줍니다. `DisableDefaultEC2SecurityGroup` 옵션이 `true`로 설정되어 있으므로 Elastic Beanstalk가 일반적으로 EC2 인스턴스에 연결하는 기본 EC2 보안 그룹은 생성되지 않습니다. 따라서 다른 보안 그룹에 `SecurityGroups` 옵션을 제공해야 합니다.

[aws:elasticbeanstalk:environment](command-options-general.md#command-options-general-elasticbeanstalkenvironment) `EnvironmentType` 옵션은 `SingleInstance`로 설정되어 있습니다. 단일 인스턴스 환경을 생성하려면 `LoadBalanced`가 기본 `EnvironmentType`이므로 이 옵션을 지정해야 합니다. 이 환경에는 로드 밸런서가 포함되어 있지 않으므로, 로드 밸런서 보안 그룹을 지정할 필요가 없습니다.

**Example 1 - 사용자 지정 EC2 보안 그룹을 사용하는 새로운 단일 인스턴스 환경(네임스페이스 옵션 인라인 구성)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v6.5.0 applrunning Node.js 22" \
--option-settings \
Namespace=aws:elasticbeanstalk:environment,OptionName=EnvironmentType,Value=SingleInstance \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \
Namespace=aws:autoscaling:launchconfiguration,OptionName=DisableDefaultEC2SecurityGroup,Value=true \
Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=sg-abcdef01, sg-abcdef02 \
Namespace=aws:autoscaling:launchconfiguration,OptionName=EC2KeyName,Value=my-keypair
```





대안으로, 네임스페이스 옵션을 인라인으로 포함하는 대신 `options.json` 파일을 사용하여 해당 옵션을 지정하십시오.

**Example 2 - 사용자 지정 EC2 보안 그룹을 사용하는 새로운 단일 인스턴스 환경(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  { "Namespace" : "aws:elasticbeanstalk:environment", 
    "OptionName" : "EnvironmentType", 
    "Value" : "SingleInstance" 
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "true"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "SecurityGroups",
    "Value": "sg-abcdef01, sg-abcdef02"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "EC2KeyName",
    "Value": "my-keypair"
  }
]
```

다음 예제에서는 로드 밸런싱된 환경을 생성합니다. [aws:elasticbeanstalk:environment](command-options-general.md#command-options-general-elasticbeanstalkenvironment) 네임스페이스 옵션 `LoadBalancerType`을(를) `application`으(로) 설정합니다. `DisableDefaultEC2SecurityGroup` 옵션으로 기본 EC2 보안 그룹을 비활성화하므로 이전 예제와 같이 [aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) `SecurityGroups` 옵션을 사용하여 EC2 인스턴스에 대한 사용자 지정 보안 그룹을 다시 제공해야 합니다. 이 환경은 트래픽을 라우팅하기 위한 로드 밸런서를 포함하므로 로드 밸런서에 대한 보안 그룹도 제공해야 합니다.

Classic Load Balancer로 환경을 생성하려면, 동일 구성인 경우, [aws:elasticbeanstalk:environment](command-options-general.md#command-options-general-elasticbeanstalkenvironment) 네임스페이스 옵션 `LoadBalancerType`의 구성을 `classic`으(로) 업데이트합니다.

다양한 로드 밸런서 유형에는 보안 그룹을 설정할 수 있는 옵션들이 각각 다른 네임스페이스에 있습니다.


+ Application Load Balancer - [aws:elbv2:loadbalancer](command-options-general.md#command-options-general-elbv2) `SecurityGroups` 옵션
+ Classic Load Balancer - [aws:elb:loadbalancer](command-options-general.md#command-options-general-elbloadbalancer) `SecurityGroups` 옵션
+ Network Load Balancer- Network Load Balancer에 보안 그룹이 없으므로 VPC 식별자로 EC2 보안 그룹을 구성합니다. 자세한 정보는 *Network Load Balancer 사용 설명서*의 [Network Load Balancer에 대한 보안 그룹 업데이트](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-security-groups.html)를 참조하세요.

**Example 3 - 사용자 지정 EC2 보안 그룹을 사용하는 새로운 다중 인스턴스 환경(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  { 
    "Namespace" : "aws:elasticbeanstalk:environment", 
    "OptionName" : "EnvironmentType", 
    "Value" : "LoadBalanced" 
  },
  { 
  "Namespace" : "aws:elasticbeanstalk:environment",
    "OptionName" : "LoadBalancerType",
    "Value" : "application"
  },
  {
    "Namespace" : "aws:elbv2:loadbalancer",
    "OptionName" : "SecurityGroups",
    "Value" : "sg-abcdefghikl012345"
  }, 
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "true"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "SecurityGroups",
    "Value": "sg-abcdef01, sg-abcdef02"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "EC2KeyName",
    "Value": "my-keypair"
  }
]
```

[update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 명령을 사용하여 기존 환경에 대한 기본 EC2 보안 그룹을 비활성화할 수 있습니다. 다음 예제 명령은 기본 EC2 보안 그룹을 비활성화하고 환경의 EC2 인스턴스 사용자 지정 EC2 보안 그룹을 할당합니다.

환경이 로드 밸런싱되는지 여부와 로드 밸런서 유형에 따라 예제 4(a), 4(b), 4(c)의 예제 `options.jason` 파일을 사용하세요. 구성 파일 4(a)는 단일 인스턴스 환경의 보안 그룹을 지정합니다. 로드 밸런서가 필요하지 않으므로 EC2 인스턴스에 대한 보안 그룹만 제공합니다. 구성 파일 4(b) 및 4(c)는 Application Load Balancer 및 Classic Load Balancer의 보안 그룹을 지정합니다. 이러한 경우 로드 밸런서에 대한 보안 그룹도 지정해야 합니다.

**Example 4 - 기존 환경을 업데이트하여 기본 EC2 보안 그룹 비활성화(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \
--option-settings file://options.json
```

**Example 4(a) - 단일 인스턴스 환경을 위한 구성 파일(로드 밸런서 없음)**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "true"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "SecurityGroups",
    "Value": "sg-abcdef01, sg-abcdef02"
  }
]
```

Application Load Balancer를 사용하는 환경을 업데이트하려면, `aws:elbv2:loadbalancer` 네임스페이스를 사용해 로드 밸런서의 보안 그룹을 지정하세요.

**Example 4(b) - Application Load Balancer가 있는 환경을 위한 구성 파일**  

```
### example options.json ###
[
  {
    "Namespace" : "aws:elbv2:loadbalancer",
    "OptionName" : "SecurityGroups",
    "Value" : "sg-abcdefghikl012345"
  }, 
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "true"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "SecurityGroups",
    "Value": "sg-abcdef01, sg-abcdef02"
  }
]
```

Classic Load Balancer를 사용하는 환경을 업데이트하려면, `aws:elb:loadbalancer` 네임스페이스를 사용해 로드 밸런서의 보안 그룹을 지정하세요.

**Example 4(c) - Classic Load Balancer를 사용하는 환경용 구성 파일**  

```
### example options.json ###
[
  {
    "Namespace" : "aws:elb:loadbalancer",
    "OptionName" : "SecurityGroups",
    "Value" : "sg-abcdefghikl012345"
  }, 
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "true"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",n
    "OptionName": "SecurityGroups",
    "Value": "sg-abcdef01, sg-abcdef02"
  }
]
```

환경을 Elastic Beanstalk이 할당하는 기본 보안 그룹과 기본 동작 및 구성으로 되돌리려면 [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 명령을 사용하여 `DisableDefaultEC2SecurityGroup`을 `false`로 설정하세요. 다중 인스턴스 환경의 경우 Elastic Beanstalk은 환경의 로드 밸런서에 대한 보안 그룹과 네트워크 트래픽 규칙도 함께 처리합니다.

다음 예제는 단일 인스턴스 환경과 다중 인스턴스(로드 밸런싱) 환경 모두에 적용됩니다.

**Example 5 - 기본 보안 그룹을 사용하여 환경을 다시 업데이트(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "DisableDefaultEC2SecurityGroup",
    "Value": "false"
  }
]
```

## 를 사용하여 인스턴스 유형으로 EC2 구성 AWS CLI
<a name="using-features.managing.ec2.aws-cli.instance-types"></a>

이 주제에서는 환경에서 EC2 인스턴스의 인스턴스 유형을 구성하는 예제를 제공합니다.

첫 두 예제는 새 환경을 만듭니다. 이 명령은 arm64 프로세서 아키텍처를 기반으로 하는 Amazon EC2 인스턴스 유형인 t4g.small을 지정합니다. Elastic Beanstalk는 리전, 플랫폼 버전 및 인스턴스 유형을 토대로 EC2 인스턴스에 대해 이미지 ID(AMI)의 기본값을 설정합니다. 인스턴스 유형은 프로세서 아키텍처에 대응됩니다. `solution-stack-name` 파라미터는 플랫폼 버전에 적용됩니다.

**Example 1 - 새로운 arm64 기반 환경 생성(네임스페이스 옵션 인라인)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \
--option-settings \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \
Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t4g.small
```



대안으로, 네임스페이스 옵션을 인라인으로 포함하는 대신 `options.json` 파일을 사용하여 해당 옵션을 지정하십시오.

**Example 2 - 새로운 arm64 기반 환경 생성(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  },
  {
    "Namespace": "aws:ec2:instances",
    "OptionName": "InstanceTypes",
    "Value": "t4g.small"
  }
]
```





다음 두 가지 예제는 [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 명령을 사용하여 기존 환경에 대한 구성을 업데이트합니다. 이 예제에서는 arm64 프로세서 아키텍처를 기반으로 하는 또 다른 인스턴스 유형을 추가합니다. 기존 환경의 경우 추가하는 모든 인스턴스 유형에는 동일한 프로세서 아키텍처가 있어야 합니다. 기존 인스턴스 유형을 다른 아키텍처의 인스턴스 유형으로 바꾸려면 이 작업을 수행하면 됩니다. 하지만 명령의 모든 인스턴스 유형이 동일한 유형의 아키텍처인지 확인합니다.

**Example 3 - 기존 arm64 기반 환경 업데이트 (네임스페이스 옵션 인라인)**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \
--option-settings \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \
Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t4g.small,t4g.micro
```



대안으로, 네임스페이스 옵션을 인라인으로 포함하는 대신 `options.json` 파일을 사용하여 해당 옵션을 지정하십시오.

**Example 4 - 기존 arm64 기반 환경 업데이트(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  },
  {
    "Namespace": "aws:ec2:instances",
    "OptionName": "InstanceTypes",
    "Value": "t4g.small, t4g.micro"
  }
]
```





다음 두 예제에는 더 많은 [create-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) 명령이 표시됩니다. 이 예제에서는 `InstanceTypes`에 대한 값을 제공하지 않습니다. `InstanceTypes` 값이 지정되지 않은 경우 Elastic Beanstalk의 기본값은 x86 기반 프로세서 아키텍처로 설정됩니다. 환경의 EC2 인스턴스에 대한 이미지 ID(AMI)는 기본값이 리전, 플랫폼 버전 및 기본 인스턴스 유형에 따라 설정됩니다. 인스턴스 유형은 프로세서 아키텍처에 대응됩니다.

**Example 5 - 새로운 x86 기반 환경 생성(네임스페이스 옵션 인라인)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \
--option-settings \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
```



대안으로, 네임스페이스 옵션을 인라인으로 포함하는 대신 `options.json` 파일을 사용하여 해당 옵션을 지정하십시오.

**Example 6 - 새로운 x86 기반 환경 만들기(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  }
]
```

# 네임스페이스 옵션으로 Amazon EC2 인스턴스 구성
<a name="using-features.managing.ec2.namespace"></a>

`aws:autoscaling:launchconfiguration` 네임스페이스의 [구성 옵션](command-options.md)을 사용하여 콘솔에서 사용할 수 없는 추가 옵션을 포함하여 해당 환경에 대한 인스턴스를 구성할 수 있습니다.

**중요**  
`DisableIMDSv1`, `RootVolumeType` 또는 `BlockDeviceMappings` 옵션 설정을 사용하면 Elastic Beanstalk가 시작 템플릿으로 환경을 생성하거나 시작 구성에서 시작 템플릿으로 기존 환경을 업데이트할 수 있습니다. 이 작업을 위해서는 시작 템플릿을 관리할 수 있는 권한이 필요합니다. 이러한 권한은 관리형 정책에 포함되어 있습니다. 관리형 정책 대신 사용자 지정 정책을 사용하는 경우, 환경 구성을 업데이트할 때 환경 생성 또는 업데이트가 실패할 수 있습니다. 자세한 내용 및 기타 고려 사항은 [Elastic Beanstalk 환경의 시작 템플릿으로의 마이그레이션](environments-cfg-autoscaling-launch-templates.md) 섹션을 참조하세요.

다음 [구성 파일](ebextensions.md) 예시에서는 이 주제에서 설명하는 기본 구성 옵션을 사용합니다. 로드 밸런서에 대한 보안 그룹을 지정해야 하는 경우 추가 구성 옵션의 예를 보려면 [ AWS CLI를 사용하여 구성](using-features.managing.ec2.aws-cli.md) 항목을 참조하세요.

```
option_settings:
  aws:autoscaling:launchconfiguration:
    SecurityGroups: my-securitygroup
    MonitoringInterval: "1 minute"
    DisableIMDSv1: false
    DisableDefaultEC2SecurityGroup: true
    SecurityGroups: "sg-abcdef01, sg-abcdef02"
    EC2KeyName: my-keypair
    IamInstanceProfile: "aws-elasticbeanstalk-ec2-role"
    BlockDeviceMappings: "/dev/sdj=:100,/dev/sdh=snap-51eef269,/dev/sdb=ephemeral0"   
  aws:elasticbeanstalk:environment:
    EnvironmentType: SingleInstance
```

`DisableDefaultEC2SecurityGroup` 및 `BlockDeviceMappings`는 콘솔에서 사용할 수 없습니다.

`BlockDeviceMappings`을(를) 사용하여 인스턴스의 추가 블록 디바이스를 구성할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [블록 디바이스 매핑](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)을 참조하세요.

EB CLI 및 Elastic Beanstalk 콘솔에서 위 옵션의 권장 값을 적용합니다. 구성 파일을 사용해 동일하게 구성하고자 하는 경우 이러한 설정을 제거해야 합니다. 세부 정보는 [권장 값](command-options.md#configuration-options-recommendedvalues) 섹션을 참조하세요.

# Elastic Beanstalk 환경 인스턴스에서 IMDS 구성
<a name="environments-cfg-ec2-imds"></a>

이 주제에서는 인스턴스 메타데이터 서비스(IMDS)에 대해 설명합니다.

*인스턴스 메타데이터*는 애플리케이션이 실행 중인 인스턴스를 구성 또는 관리하는 데 사용할 수 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 관련 데이터입니다. 인스턴스 메타데이터 서비스(IMDS)는 인스턴스의 코드가 인스턴스 메타데이터에 안전하게 액세스하기 위해 사용하는 온 인스턴스 구성 요소입니다. 이 코드는 환경 인스턴스의 Elastic Beanstalk 플랫폼 코드, 애플리케이션이 사용할 수 있는 AWS SDK 또는 애플리케이션의 자체 코드일 수 있습니다. 자세한 내용은 **Amazon EC2 사용 설명서의 [인스턴스 메타데이터 및 사용자 데이터](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)를 참조하세요.

코드는 인스턴스 메타데이터 서비스 버전 1(IMDSv1) 또는 인스턴스 메타데이터 서비스 버전 2(IMDSv2)의 두 가지 방법 중 하나를 사용하여 실행 중인 인스턴스에서 인스턴스 메타데이터에 액세스할 수 있습니다. IMDSv2는 세션 지향 요청을 사용하며 IMDS에 액세스하기 위해 사용될 수 있는 여러 유형의 취약성을 완화합니다. 이러한 두 가지 방법에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 메타데이터 서비스 구성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)을 참조하세요.

**Topics**
+ [IMDS에 대한 플랫폼 지원](#environments-cfg-ec2-imds.plat)
+ [IMDS 방법 선택](#environments-cfg-ec2-imds.choose)
+ [Elastic Beanstalk 콘솔을 사용하여 IMDS 구성](#environments-cfg-ec2-imds.console)
+ [aws:autoscaling:launchconfiguration 네임스페이스](#environments-cfg-ec2-imds.namespace)

## IMDS에 대한 플랫폼 지원
<a name="environments-cfg-ec2-imds.plat"></a>

Amazon Linux 2와 Amazon Linux 2023 및 Windows 서버에서 실행되는 Elastic Beanstalk 플랫폼은 IMDSv1과 IMDSv2를 모두 지원합니다. 자세한 내용은 [Elastic Beanstalk 콘솔을 사용하여 IMDS 구성](#environments-cfg-ec2-imds.console) 섹션을 참조하세요.

## IMDS 방법 선택
<a name="environments-cfg-ec2-imds.choose"></a>

환경에서 지원하고자 하는 IMDS 방법에 대한 결정을 내릴 때는 다음 사용 사례를 고려하세요.
+ *AWS SDK* - 애플리케이션에서 AWS SDK를 사용하는 경우 최신 버전의 SDK를 사용해야 합니다. AWS SDKs IMDS를 호출하고 최신 SDK 버전은 가능하면 IMDSv2를 사용합니다. IMDSv1을 비활성화하거나 애플리케이션에서 이전 SDK 버전을 사용하는 경우 IMDS 호출이 실패할 수 있습니다.
+ *애플리케이션 코드* - 애플리케이션에서 IMDS 호출을 수행하는 경우 직접 HTTP 요청을 하는 대신 호출을 수행할 수 있도록 AWS SDK 사용을 고려하세요. 이렇게 하면 IMDS 방법을 전환하기 위해 코드를 변경할 필요가 없습니다. AWS SDK는 가능하면 IMDSv2를 사용합니다.
+ *Elastic Beanstalk 플랫폼 코드* -이 코드는 AWS SDK를 통해 IMDS를 호출하므로 지원되는 모든 플랫폼 버전에서 IMDSv2를 사용합니다. 코드가 up-to-date AWS SDK를 사용하고 SDK를 통해 모든 IMDS 호출을 수행하는 경우 IMDSv1을 안전하게 비활성화할 수 있습니다.

## Elastic Beanstalk 콘솔을 사용하여 IMDS 구성
<a name="environments-cfg-ec2-imds.console"></a>

Elastic Beanstalk 콘솔에서 Elastic Beanstalk 환경의 Amazon EC2 인스턴스 구성을 수정할 수 있습니다.

**중요**  
`DisableIMDSv1` 옵션 설정으로 인해 Elastic Beanstalk이 시작 구성을 사용하는 기존 환경을 시작 템플릿으로 마이그레이션할 수 있습니다. 이 작업을 위해서는 시작 템플릿을 관리할 수 있는 권한이 필요합니다. 이러한 권한은 관리형 정책에 포함되어 있습니다. 관리형 정책 대신 사용자 지정 정책을 사용하는 경우, 환경 구성을 업데이트할 때 환경 생성 또는 업데이트가 실패할 수 있습니다. 자세한 내용 및 기타 고려 사항은 [Elastic Beanstalk 환경의 시작 템플릿으로의 마이그레이션](environments-cfg-autoscaling-launch-templates.md) 섹션을 참조하세요.

**Elastic Beanstalk 콘솔에서 Amazon EC2 인스턴스에서 IMDS를 구성하려면**

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

1. 탐색 창에서 **환경**을 선택한 다음 목록에서 환경의 이름을 선택합니다.

1. 탐색 창에서 **구성**을 선택합니다.

1. **인스턴스 트래픽 및 스케일링(Instance traffic and scaling)** 구성 범주에서 **편집(Edit)**을 선택합니다.

1. **IMDSv1 비활성화**를 설정하고 IMDSv2를 적용합니다. IMDSv1 및 IMDSv2를 모두 활성화하려면 **IMDSv1 비활성화**를 선택 해제합니다.

1. 변경 사항을 저장하려면 페이지 하단에서 **적용**을 선택합니다.

## aws:autoscaling:launchconfiguration 네임스페이스
<a name="environments-cfg-ec2-imds.namespace"></a>

`aws:autoscaling:launchconfiguration` 네임스페이스의 [구성 옵션](command-options.md)을 사용하여 환경의 인스턴스에 IMDS를 구성할 수 있습니다.

**중요**  
`DisableIMDSv1` 옵션 설정으로 인해 Elastic Beanstalk이 시작 구성을 사용하는 기존 환경을 시작 템플릿으로 마이그레이션할 수 있습니다. 이 작업을 위해서는 시작 템플릿을 관리할 수 있는 권한이 필요합니다. 이러한 권한은 관리형 정책에 포함되어 있습니다. 관리형 정책 대신 사용자 지정 정책을 사용하는 경우, 환경 구성을 업데이트할 때 환경 생성 또는 업데이트가 실패할 수 있습니다. 자세한 내용 및 기타 고려 사항은 [Elastic Beanstalk 환경의 시작 템플릿으로의 마이그레이션](environments-cfg-autoscaling-launch-templates.md) 섹션을 참조하세요.

다음 [구성 파일](ebextensions.md) 예제는 `DisableIMDSv1` 옵션을 사용하여 IMDSv1을 비활성화합니다.

```
option_settings:
  aws:autoscaling:launchconfiguration:
    DisableIMDSv1: true
```

**DisableIMDSv1**을 `true`로 설정하여 IMDSv1을 비활성화하고 IMDSv2를 적용합니다.

**DisableIMDSv1**을 `false`로 설정하여 IMDSv1 및 IMDSv2를 모두 비활성화합니다.