

# Amazon EC2 인스턴스의 CPU 옵션 지정
<a name="instance-specify-cpu-options"></a>

인스턴스 시작 도중 또는 이후에 CPU 옵션을 지정할 수 있습니다.

**Topics**
+ [동시 멀티스레딩 비활성화](#cpu-options-disable-simultaneous-multithreading)
+ [시작 시 vCPU 사용자 지정 수 지정](#cpu-options-customize-vCPUs-launch)
+ [시작 템플릿에 vCPU 사용자 지정 수 지정](#cpu-options-customize-vCPUs-launch-template)
+ [EC2 인스턴스의 CPU 옵션 변경](#change-vCPUs-after-launch)

## 동시 멀티스레딩 비활성화
<a name="cpu-options-disable-simultaneous-multithreading"></a>

하이퍼스레딩이라고도 하는 동시 멀티스레딩(SMT)을 비활성화하려면 코어당 스레드 하나를 지정하세요.

------
#### [ Console ]

**인스턴스 시작 중 SMT 비활성화**

1. [콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작](ec2-launch-instance-wizard.md) 절차를 수행하고 필요에 따라 인스턴스를 구성합니다.

1. **고급 세부 정보**를 확장하고 **CPU 옵션 지정** 확인란을 선택합니다.

1. **코어 수**에 대해 필요한 CPU 코어 수를 선택합니다. 이 예에서 `r5.4xlarge` 인스턴스에 필요한 기본 CPU 코어 개수를 지정하려면 `8`을 선택합니다.

1. SMT를 비활성화하려면 **코어당 스레드**로 **1**을 선택하세요.

1. **Summary**(요약) 패널에서 인스턴스 구성을 검토한 다음 **Launch instance**(인스턴스 시작)를 선택합니다. 자세한 내용은 [콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작](ec2-launch-instance-wizard.md) 섹션을 참조하세요.

------
#### [ AWS CLI ]

**인스턴스 시작 중 SMT 비활성화**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) AWS CLI 명령을 사용하여 `1` 파라미터의 `ThreadsPerCore`에 값을 `--cpu-options`로 지정합니다. `CoreCount`에 대해 CPU 코어 수를 지정합니다. 이 예에서 `r7i.4xlarge` 인스턴스에 필요한 기본 CPU 코어 개수를 지정하려면 값을 `8`로 지정합니다.

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type r7i.4xlarge \
    --cpu-options "CoreCount=8,ThreadsPerCore=1" \
    --key-name my-key-pair
```

------
#### [ PowerShell ]

**인스턴스 시작 중 SMT 비활성화**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 명령을 사용하고 `-CpuOptions` 파라미터의 `ThreadsPerCore`에 값을 `1`로 지정합니다. `CoreCount`에 대해 CPU 코어 수를 지정합니다. 이 예에서 `r7i.4xlarge` 인스턴스에 필요한 기본 CPU 코어 개수를 지정하려면 값을 `8`로 지정합니다.

```
New-EC2Instance `
    -ImageId 'ami-0abcdef1234567890' `
    -InstanceType 'r7i.4xlarge' `
    -CpuOptions @{CoreCount=8; ThreadsPerCore=1} `
    -KeyName 'my-key-pair'
```

------

**참고**  
기존 인스턴스에 대해 SMT를 비활성화하려면 [EC2 인스턴스의 CPU 옵션 변경](#change-vCPUs-after-launch)에 표시된 프로세스에 따라 코어당 실행되는 스레드 수를 `1`로 변경합니다.

## 시작 시 vCPU 사용자 지정 수 지정
<a name="cpu-options-customize-vCPUs-launch"></a>

EC2 콘솔 또는 AWS CLI에서 인스턴스를 시작할 때 인스턴스의 코어당 CPU 코어와 스레드 수를 사용자 지정할 수 있습니다. 이 섹션의 예제는 `r5.4xlarge` 인스턴스 유형을 사용하며 다음과 같은 기본 설정을 포함합니다.
+ CPU 코어: 8
+ 코어당 스레드: 2

기본적으로 인스턴스 유형에 사용할 수 있는 최대 수의 vCPU를 사용하여 인스턴스를 시작합니다. 이 인스턴스 유형의 경우 총 16개의 vCPU(각각 2개의 스레드를 실행하는 코어 8개)입니다. 이 인스턴스 유형에 대한 자세한 내용은 [메모리 최적화 인스턴스](cpu-options-supported-instances-values.md#cpu-options-mem-optimized) 섹션을 참조하세요.

다음 예제는 4개의 vCPU로 `r5.4xlarge` 인스턴스를 시작합니다.

------
#### [ Console ]

**인스턴스 시작 중 vCPU 수 사용자 지정**

1. [콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작](ec2-launch-instance-wizard.md) 절차를 수행하고 필요에 따라 인스턴스를 구성합니다.

1. **고급 세부 정보**를 확장하고 **CPU 옵션 지정** 확인란을 선택합니다.

1. 4개의 vCPU를 얻기 위해 다음과 같이 2개의 CPU 코어와 코어당 2개의 스레드를 지정합니다.
   + **코어 수**로 **2**를 선택합니다.
   + **코어당 스레드**로 **2**를 선택합니다.

1. **Summary**(요약) 패널에서 인스턴스 구성을 검토한 다음 **Launch instance**(인스턴스 시작)를 선택합니다. 자세한 내용은 [콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작](ec2-launch-instance-wizard.md) 섹션을 참조하세요.

------
#### [ AWS CLI ]

**인스턴스 시작 중 vCPU 수 사용자 지정**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) AWS CLI 명령을 사용하여 `--cpu-options` 파라미터에서 CPU 코어 수와 스레드 수를 지정합니다. 4개의 vCPU를 얻기 위해 2개의 CPU 코어와 코어당 2개의 스레드를 지정할 수 있습니다.

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type r7i.4xlarge \
    --cpu-options "CoreCount=2,ThreadsPerCore=2" \
    --key-name my-key-pair
```

또는 4개의 vCPU를 얻기 위해 4개의 CPU 코어와 코어당 1개의 스레드(SMT 비활성화)를 지정합니다.

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type r7i.4xlarge \
    --cpu-options "CoreCount=4,ThreadsPerCore=1" \
    --key-name my-key-pair
```

------
#### [ PowerShell ]

**인스턴스 시작 중 vCPU 수 사용자 지정**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 명령을 사용하고 `-CpuOptions` 파라미터에서 CPU 코어 수와 스레드 수를 지정합니다. 4개의 vCPU를 얻기 위해 2개의 CPU 코어와 코어당 2개의 스레드를 지정할 수 있습니다.

```
New-EC2Instance `
    -ImageId 'ami-0abcdef1234567890' `
    -InstanceType 'r7i.4xlarge' `
    -CpuOptions @{CoreCount=2; ThreadsPerCore=2} `
    -KeyName 'my-key-pair'
```

또는 4개의 vCPU를 얻기 위해 4개의 CPU 코어와 코어당 1개의 스레드(SMT 비활성화)를 지정합니다.

```
New-EC2Instance `
    -ImageId 'ami-0abcdef1234567890' `
    -InstanceType 'r7i.4xlarge' `
    -CpuOptions @{CoreCount=4; ThreadsPerCore=1} `
    -KeyName 'my-key-pair'
```

------

## 시작 템플릿에 vCPU 사용자 지정 수 지정
<a name="cpu-options-customize-vCPUs-launch-template"></a>

시작 템플릿에서 인스턴스의 코어당 CPU 코어와 스레드 수를 사용자 지정할 수 있습니다. 이 섹션의 예제는 `r5.4xlarge` 인스턴스 유형을 사용하며 다음과 같은 기본 설정을 포함합니다.
+ CPU 코어: 8
+ 코어당 스레드: 2

기본적으로 인스턴스 유형에 사용할 수 있는 최대 수의 vCPU를 사용하여 인스턴스를 시작합니다. 이 인스턴스 유형의 경우 총 16개의 vCPU(각각 2개의 스레드를 실행하는 코어 8개)입니다. 이 인스턴스 유형에 대한 자세한 내용은 [메모리 최적화 인스턴스](cpu-options-supported-instances-values.md#cpu-options-mem-optimized) 섹션을 참조하세요.

다음 예제에서는 vCPU가 4개 있는 `r5.4xlarge` 인스턴스의 구성을 지정하는 시작 템플릿을 생성합니다.

------
#### [ Console ]

**시작 템플릿에 vCPU 사용자 지정 수 지정**

1. [파라미터를 지정하여 시작 템플릿 생성](create-launch-template.md#create-launch-template-define-parameters) 절차를 수행하고 필요에 따라 시작 템플릿을 구성합니다.

1. **고급 세부 정보**를 확장하고 **CPU 옵션 지정** 확인란을 선택합니다.

1. 4개의 vCPU를 얻기 위해 다음과 같이 2개의 CPU 코어와 코어당 2개의 스레드를 지정합니다.
   + **코어 수**로 **2**를 선택합니다.
   + **코어당 스레드**로 **2**를 선택합니다.

1. **요약** 패널에서 인스턴스 구성을 검토한 다음 **인스턴스 시작**을 선택합니다. 자세한 내용은 [Amazon EC2 시작 템플릿에 인스턴스 시작 파라미터 저장](ec2-launch-templates.md) 섹션을 참조하세요.

------
#### [ AWS CLI ]

**시작 템플릿에 vCPU 사용자 지정 수 지정**  
[create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) AWS CLI 명령을 사용하여 `CpuOptions` 파라미터에서 CPU 코어 수와 스레드 수를 지정합니다. 4개의 vCPU를 얻기 위해 2개의 CPU 코어와 코어당 2개의 스레드를 지정할 수 있습니다.

```
aws ec2 create-launch-template \
    --launch-template-name TemplateForCPUOptions \
    --version-description CPUOptionsVersion1 \
    --launch-template-data file://template-data.json
```

다음은 이 예제의 인스턴스 구성에 대한 CPU 옵션 등 시작 템플릿 데이터를 포함하는 JSON 파일 예제입니다.

```
{
    "NetworkInterfaces": [{
        "AssociatePublicIpAddress": true,
        "DeviceIndex": 0,
        "Ipv6AddressCount": 1,
        "SubnetId": "subnet-0abcdef1234567890"
    }],
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "r5.4xlarge",
    "TagSpecifications": [{
        "ResourceType": "instance",
        "Tags": [{
            "Key":"Name",
            "Value":"webserver"
        }]
    }],
    "CpuOptions": {
        "CoreCount":2,
        "ThreadsPerCore":2
    }
}
```

또는 4개의 vCPU를 얻기 위해 4개의 CPU 코어와 코어당 1개의 스레드(SMT 비활성화)를 지정합니다.

```
{
    "NetworkInterfaces": [{
        "AssociatePublicIpAddress": true,
        "DeviceIndex": 0,
        "Ipv6AddressCount": 1,
        "SubnetId": "subnet-0abcdef1234567890"
    }],
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "r5.4xlarge",
    "TagSpecifications": [{
        "ResourceType": "instance",
        "Tags": [{
            "Key":"Name",
            "Value":"webserver"
        }]
    }],
    "CpuOptions": {
        "CoreCount":4,
        "ThreadsPerCore":1
    }
}
```

------
#### [ PowerShell ]

**시작 템플릿에 vCPU 사용자 지정 수 지정**  
[New-EC2LaunchTemplate](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2LaunchTemplate.html)을 사용합니다.

```
New-EC2LaunchTemplate `
    -LaunchTemplateName 'TemplateForCPUOptions' `
    -VersionDescription 'CPUOptionsVersion1' `
    -LaunchTemplateData (Get-Content -Path 'template-data.json' | ConvertFrom-Json)
```

------

## EC2 인스턴스의 CPU 옵션 변경
<a name="change-vCPUs-after-launch"></a>

시간이 지나면서 요구 사항이 변하면 기존 인스턴스의 CPU 옵션 구성을 변경하는 것이 좋습니다. 인스턴스에서 실행되는 각 스레드를 가상 CPU(vCPU)라고 합니다. Amazon EC2 콘솔, AWS CLI, API 또는 SDK에서 기존 인스턴스에서 실행되는 vCPU 수를 변경할 수 있습니다. 이렇게 변경하려면 먼저 인스턴스 상태가 `Stopped`이어야 합니다.

콘솔 또는 명령줄 단계를 보려면 환경에 맞는 탭을 선택합니다. API 요청 및 응답 정보는 *Amazon EC2 API 참조*의 [ModifyInstanceCpuOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCpuOptions.html)을 참조하세요.

------
#### [ Console ]

다음 절차에 따라 AWS Management Console에서 인스턴스의 활성 vCPU 수를 에서 변경합니다.

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **인스턴스**를 선택합니다. 그러면 현재 AWS 리전에 정의된 인스턴스 목록이 열립니다.

1. **인스턴스** 목록에서 인스턴스를 선택합니다. 또는 인스턴스 링크를 선택하여 인스턴스 세부 정보 페이지를 열 수도 있습니다.

1. 인스턴스가 실행 중인 경우 진행하기 전에 인스턴스를 중지해야 합니다. **인스턴스 상태** 메뉴에서 **인스턴스 중지**를 선택합니다.

1. vCPU 구성을 변경하려면 **작업** 메뉴의 **인스턴스 설정**에서 **CPU 옵션 변경**을 선택합니다. 그러면 **CPU 옵션 변경** 페이지가 열립니다.

1. 다음 CPU 옵션 중 하나를 선택하여 인스턴스의 구성을 변경합니다.  
**기본 CPU 옵션 사용**  
이 옵션은 인스턴스 유형의 기본 vCPU 수로 인스턴스를 재설정합니다. 기본값은 모든 CPU 코어에 대해 모든 스레드를 실행하는 것입니다.  
**CPU 옵션 지정**  
이 옵션을 사용하면 인스턴스에서 실행 중인 vCPU 수를 구성할 수 있습니다.

1. **CPU 옵션 지정**을 선택하면 **활성 vCPU** 필드가 표시됩니다.
   + 첫 번째 선택기를 사용하여 각 CPU 코어의 스레드 수를 구성합니다. 동시 멀티스레딩을 비활성화하려면 `1`을 선택합니다.
   + 두 번째 선택기를 사용하여 인스턴스에서 실행되는 CPU 수를 구성합니다.

   CPU 옵션 선택기를 변경하면 다음 필드가 동적으로 업데이트됩니다.
   + **활성 vCPU**: 사용자의 선택을 기반으로 코어당 스레드를 곱한 CPU 코어 수입니다. 예를 들어 스레드 2개와 코어 4개를 선택한 경우 vCPU 8개가 됩니다.
   + **총 vCPU**: 인스턴스 유형의 최대 vCPU 수입니다. 예를 들어 `m6i.4xlarge` 인스턴스 유형의 경우 16개의 vCPU(각각 2개의 스레드를 실행하는 코어 8개)입니다.

1. 업데이트를 적용하려면 **변경**을 선택합니다.

------
#### [ AWS CLI ]

다음 절차에 따라 AWS CLI에서 인스턴스의 활성 vCPU 수를 에서 변경합니다.

[modify-instance-cpu-options](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-cpu-options.html) 명령을 사용하여 `--core-count` 파라미터에서 실행되는 CPU 코어 수와 `--threads-per-core` 파라미터에서 코어당 실행되는 스레드 수를 지정합니다.

다음 예제는 지정된 인스턴스에서 vCPU 8개를 실행할 수 있는 `m6i.4xlarge` 인스턴스 유형의 두 가지 구성을 보여줍니다. 이 인스턴스 유형의 기본값은 16개의 vCPU(각각 2개의 스레드를 실행하는 코어 8개)입니다.

**예제 1:** 코어당 스레드 2개로 CPU 코어 4개를 실행하여 총 8개의 vCPU를 실행합니다.

```
aws ec2 modify-instance-cpu-options \
    --instance-id i-1234567890abcdef0 \

    --core-count=4 \
    --threads-per-core=2
```

**예제 2:** 동시 멀티스레딩을 사용하지 않도록 설정하려면 코어당 실행되는 스레드 수를 `1`로 변경할 수 있습니다. 또한 결과 구성에서는 총 8개의 vCPU(CPU 코어 8개, 코어당 스레드 1개)를 실행합니다.

```
aws ec2 modify-instance-cpu-options \
    --instance-id 1234567890abcdef0 \
    --core-count=8 \
    --threads-per-core=1
```

------
#### [ PowerShell ]

**인스턴스의 활성 vCPU 수를 변경하려면**  
[Edit-EC2InstanceCpuOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceCpuOption.html) cmdlet을 사용하고 `-CoreCount` 파라미터에서 실행되는 CPU 코어 수와 `ThreadsPerCore` 파라미터에서 코어당 실행되는 스레드 수를 지정합니다.

**예제 1:** 코어당 스레드 2개로 CPU 코어 4개를 실행하여 총 8개의 vCPU를 실행합니다.

```
Edit-EC2InstanceCpuOption `
    -InstanceId 'i-1234567890abcdef0' `
    -CoreCount 4 `
    -ThreadsPerCore 2
```

**예제 2:** 동시 멀티스레딩을 사용하지 않도록 설정하려면 코어당 실행되는 스레드 수를 `1`로 변경할 수 있습니다. 또한 결과 구성에서는 총 8개의 vCPU(CPU 코어 8개, 코어당 스레드 1개)를 실행합니다.

```
Edit-EC2InstanceCpuOption `
    -InstanceId 'i-1234567890abcdef0' `
    -CoreCount 8 `
    -ThreadsPerCore 1
```

------