

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

# 를 사용하여 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"
  }
]
```