Amazon EC2 インスタンスに関する CPU オプションを指定する
AWS Management Console、AWS CLI、EC2 API または SDK を使用して、インスタンスの起動中または起動後に CPU オプションを指定できます。このページでは次のように AWS Management Consoleと AWS CLI メソッドについて説明します。
同時マルチスレッドを無効にする
ハイパースレッディングとも呼ばれる同時マルチスレッド (SMT) を無効にするにはコア 1 個あたり 1 つのスレッドを指定します。
- Console
-
インスタンスの起動時に SMT を無効にするには
-
コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する の手順に従い、必要に応じてインスタンスを設定します。
-
[高度な詳細] を展開し、[CPU オプションの指定] チェックボックスをオンにします。
-
[Core count (コア数)] では必要な CPU コア数を選択してください。この例ではr5.4xlarge
インスタンスにデフォルトの CPU コア数を指定するには8
を選択してください。
-
SMT を無効にするには[コアごとのスレッド] で、[1] を選択してください。
-
[合計mary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動) を選択してください。詳細については「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。
- AWS CLI
-
インスタンスの起動時に SMT を無効にするには
run-instances AWS CLI コマンドを使用して、1
パラメータの ThreadsPerCore
の --cpu-options
の値を指定します。[CoreCount
] ではCPU コア数を指定します。この例ではr5.4xlarge
インスタンスにデフォルトの CPU コア数を指定するには8
の値を選択してください。
aws ec2 run-instances \
--image-id ami-1a2b3c4d
\
--instance-type r5.4xlarge
\
--cpu-options "CoreCount=8
,ThreadsPerCore=1
" \
--key-name MyKeyPair
起動時の vCPU のカスタム数の指定
EC2 コンソールまたは AWS CLI からインスタンスを起動する時に、CPU コア数とコアあたりのスレッドの数をカスタマイズできます。このセクションの例では以下のデフォルト設定を持つ r5.4xlarge
インスタンスタイプを使用します。
インスタンスはデフォルトでインスタンスタイプで使用できる vCPU の最大数で起動します。このインスタンスタイプでは合計 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。インスタンスタイプの詳細については「メモリ最適化インスタンス」を参照してください。
次の例では4 つの vCPU で r5.4xlarge
インスタンスを起動します。
- Console
-
- AWS CLI
-
インスタンス起動中に vCPU のカスタム数を指定するには
run-instances AWS CLI コマンドを使用して、--cpu-options
パラメータの CPU コア数およびスレッドの数を指定します。2 つの CPU コアおよびコアごとに 2 つのスレッドを指定すると、4 つの vCPU を取得できます。
aws ec2 run-instances \
--image-id ami-1a2b3c4d
\
--instance-type r5.4xlarge
\
--cpu-options "CoreCount=2
,ThreadsPerCore=2
" \
--key-name MyKeyPair
また、4 つの CPU コアおよびコアごとに 1 つのスレッドを指定 (SMT を無効化) して、4 つの vCPU を取得することもできます。
aws ec2 run-instances \
--image-id ami-1a2b3c4d
\
--instance-type r5.4xlarge
\
--cpu-options "CoreCount=4
,ThreadsPerCore=1
" \
--key-name MyKeyPair
起動テンプレートでの vCPU のカスタム数の指定
起動テンプレートでインスタンスの CPU コア数とコアごとのスレッドの数をカスタマイズできます。このセクションの例では以下のデフォルト設定を持つ r5.4xlarge
インスタンスタイプを使用します。
インスタンスはデフォルトでインスタンスタイプで使用できる vCPU の最大数で起動します。このインスタンスタイプでは合計 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。インスタンスタイプの詳細については「メモリ最適化インスタンス」を参照してください。
次の例ではvCPU が 4 つの r5.4xlarge
インスタンスの設定を指定する起動テンプレートを作成します。
- Console
-
- AWS CLI
-
起動テンプレートで vCPU のカスタム数を指定するには
create-launch-template AWS CLI コマンドを使用して、CpuOptions
パラメータで CPU コア数およびスレッドの数を指定します。2 つの CPU コアおよびコアごとに 2 つのスレッドを指定すると、4 つの vCPU を取得できます。
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-7b16de0c
"
}],
"ImageId": "ami-8c1be5f6
",
"InstanceType": "r5.4xlarge
",
"TagSpecifications": [{
"ResourceType": "instance",
"Tags": [{
"Key":"Name
",
"Value":"webserver
"
}]
}],
"CpuOptions": {
"CoreCount":2
,
"ThreadsPerCore":2
}
}
また、4 つの CPU コアおよびコアごとに 1 つのスレッドを指定 (SMT を無効化) して、4 つの vCPU を取得することもできます。
{
"NetworkInterfaces": [{
"AssociatePublicIpAddress": true,
"DeviceIndex": 0,
"Ipv6AddressCount": 1,
"SubnetId": "subnet-7b16de0c
"
}],
"ImageId": "ami-8c1be5f6
",
"InstanceType": "r5.4xlarge
",
"TagSpecifications": [{
"ResourceType": "instance",
"Tags": [{
"Key":"Name
",
"Value":"webserver
"
}]
}],
"CpuOptions": {
"CoreCount":4
,
"ThreadsPerCore":1
}
}
EC2 インスタンスの CPU オプションを変更する
時間の経過とともにニーズが変化し、既存のインスタンスの CPU オプションの設定を変更したい場合があります。インスタンスで実行される各スレッドは仮想 CPU (vCPU) と呼ばれます。Amazon EC2 コンソール、AWS CLI、API、または SDK で、既存のインスタンスに対して実行される vCPU の数を変更できます。この変更を行う前に、インスタンスの状態を Stopped
にする必要があります。
コンソールまたはコマンドラインの手順を表示するには環境に一致するタブを選択してください。API リクエストとレスポンスの情報については「Amazon EC2 API リファレンス」の「ModifyInstanceCpuOptions」の項目を参照してください。
- Console
-
AWS Management Consoleからインスタンスのアクティブな vCPU の数を変更するには次の手順に従います。
Amazon EC2 コンソール のhttps://console.aws.amazon.com/ec2/ を開いてください。
-
左のナビゲーションペインで、[Instances] (インスタンス) をクリックしてください。これにより、現在の AWS リージョンに定義されているインスタンスのリストが開きます。
-
[インスタンス] の一覧から、インスタンスを選択してください。またはインスタンスリンクを選択して、インスタンスの詳細ページを開くこともできます。
-
インスタンスが実行中の場合はまず進む前に停止する必要があります。[インスタンスの状態] メニューから [インスタンスの停止] を選択してください。
-
vCPU 設定を変更するには[アクション] メニューの [インスタンス設定] から [CPU オプションの変更] を選択してください。これにより、[CPU オプションの変更] ページが開きます。
-
インスタンスの設定を変更するには次のいずれかの CPU オプションを選択してください。
- [なし]
-
このオプションはインスタンスをインスタンスタイプのデフォルトの vCPU 数にリセットします。デフォルトではすべての CPU コアのすべてのスレッドを実行します。
- [CPU オプションを指定する]
-
このオプションはインスタンスで実行されている vCPU の数の設定を有効にします。
-
[CPU オプションを指定] を選択した場合、[アクティブな vCPU] 設定が表示されます。
CPU オプションセレクタを変更すると、次のフィールドが動的に更新されます。
-
[アクティブな vCPU]: 行った選択に基づいて、CPU コアの数にコアあたりのスレッドを乗算します。例えば、2 つのスレッドと 4 つのコアを選択した場合、8 つの vCPU となります。
-
[vCPU の合計]: インスタンスタイプの vCPU の最大数。例えば、m6i.4xlarge
インスタンスタイプの場合、これは 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。
-
[変更] を選択して更新を適用します。
- AWS CLI
-
AWS CLI からインスタンスのアクティブな vCPU の数を変更するには次の手順に従います。
modify-instance-cpu-options --core-count
コマンドを使用して、 パラメータで実行される CPU コアの数と、--threads-per-core
パラメータでコアごとに実行されるスレッドの数を指定します。
次の例は指定したインスタンスで 8 つの vCPU を実行するために、m6i.4xlarge
インスタンスタイプで 2 つの設定候補を示しています。このインスタンスタイプのデフォルトは 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。
例 1: 4 つの CPU コアを 1 コアあたり 2 つのスレッドで実行し、合計 8 つの vCPU を実行します。
aws ec2 modify-instance-cpu-options \
--instance-id i-1234567890abcdef0
\
--core-count=4
\
--threads-per-core=2
例 2: コアごとに実行されるスレッドの数を 1
に変更して、同時マルチスレッドを無効にします。結果の設定では合計 8 つの vCPU (コアあたり 1 つのスレッドで 8 つの CPU コア、) も実行されます。
aws ec2 modify-instance-cpu-options \
--instance-id i-1234567890abcdef0
\
--core-count=8
\
--threads-per-core=1