Amazon EC2 インスタンスに関する CPU オプションを指定する - Amazon Elastic Compute Cloud

Amazon EC2 インスタンスに関する CPU オプションを指定する

インスタンスの起動中または起動後に CPU オプションを指定できます。

同時マルチスレッドを無効にする

ハイパースレッディングとも呼ばれる同時マルチスレッド (SMT) を無効にするにはコア 1 個あたり 1 つのスレッドを指定します。

Console
インスタンスの起動時に SMT を無効にするには
  1. コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する の手順に従い、必要に応じてインスタンスを設定します。

  2. [高度な詳細] を展開し、[CPU オプションの指定] チェックボックスをオンにします。

  3. [Core count (コア数)] では必要な CPU コア数を選択してください。この例ではr5.4xlarge インスタンスにデフォルトの CPU コア数を指定するには8 を選択してください。

  4. SMT を無効にするには[コアごとのスレッド] で、[1] を選択してください。

  5. [Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動) を選択してください。詳細については、「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。

AWS CLI
インスタンスの起動時に SMT を無効にするには

run-instances 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 コマンドを使用して、-CpuOptions パラメータの ThreadsPerCore1 の値を指定します。[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 オプションを変更する に示すプロセスに従い、コアごとに実行されるスレッドの数を 1 に変更します。

起動時の vCPU のカスタム数の指定

EC2 コンソールまたは AWS CLI からインスタンスを起動する時に、CPU コア数とコアあたりのスレッドの数をカスタマイズできます。このセクションの例では以下のデフォルト設定を持つ r5.4xlarge インスタンスタイプを使用します。

  • CPU コア: 8

  • コアあたりのスレッド数: 2

インスタンスはデフォルトでインスタンスタイプで使用できる vCPU の最大数で起動します。このインスタンスタイプでは合計 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。インスタンスタイプの詳細については「メモリ最適化インスタンス」を参照してください。

次の例では4 つの vCPU で r5.4xlarge インスタンスを起動します。

Console
インスタンス起動中に vCPU のカスタム数を指定するには
  1. コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する の手順に従い、必要に応じてインスタンスを設定します。

  2. [高度な詳細] を展開し、[CPU オプションの指定] チェックボックスをオンにします。

  3. 4 つの vCPU を取得するには次のように、2 つの CPU コアおよびコアごとに 2 つのスレッドを指定します。

    • [コアカウント] には 2 を選択してください。

    • [Threads per core (コアごとのスレッド)] には[2] を選択してください。

  4. [Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動) を選択してください。詳細については、「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。

AWS CLI
インスタンス起動中に vCPU のカスタム数を指定するには

run-instances AWS CLI コマンドを使用して、--cpu-options パラメータの CPU コア数およびスレッドの数を指定します。2 つの CPU コアおよびコアごとに 2 つのスレッドを指定すると、4 つの vCPU を取得できます。

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

また、4 つの CPU コアおよびコアごとに 1 つのスレッドを指定 (SMT を無効化) して、4 つの vCPU を取得することもできます。

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 コマンドを使用し、-CpuOptions パラメータに CPU コア数とスレッド数を指定します。2 つの CPU コアおよびコアごとに 2 つのスレッドを指定すると、4 つの vCPU を取得できます。

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

また、4 つの CPU コアおよびコアごとに 1 つのスレッドを指定 (SMT を無効化) して、4 つの vCPU を取得することもできます。

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

起動テンプレートでの vCPU のカスタム数の指定

起動テンプレートでインスタンスの CPU コア数とコアごとのスレッドの数をカスタマイズできます。このセクションの例では以下のデフォルト設定を持つ r5.4xlarge インスタンスタイプを使用します。

  • CPU コア: 8

  • コアあたりのスレッド数: 2

インスタンスはデフォルトでインスタンスタイプで使用できる vCPU の最大数で起動します。このインスタンスタイプでは合計 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。インスタンスタイプの詳細については「メモリ最適化インスタンス」を参照してください。

次の例ではvCPU が 4 つの r5.4xlarge インスタンスの設定を指定する起動テンプレートを作成します。

Console
起動テンプレートで vCPU のカスタム数を指定するには
  1. パラメータを指定して起動テンプレートを作成する」の手順に従い、必要に応じて起動テンプレートを設定します。

  2. [高度な詳細] を展開し、[CPU オプションの指定] チェックボックスをオンにします。

  3. 4 つの vCPU を取得するには次のように、2 つの CPU コアおよびコアごとに 2 つのスレッドを指定します。

    • [コアカウント] には 2 を選択してください。

    • [Threads per core (コアごとのスレッド)] には[2] を選択してください。

  4. [概要] パネルでインスタンスの設定を確認し、[起動テンプレートの作成] を選択してください。詳細については、「Amazon EC2 起動テンプレートにインスタンス起動パラメータを保存する」を参照してください。

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-0abcdef1234567890" }], "ImageId": "ami-0abcdef1234567890", "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-0abcdef1234567890" }], "ImageId": "ami-0abcdef1234567890", "InstanceType": "r5.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }], "CpuOptions": { "CoreCount":4, "ThreadsPerCore":1 } }
PowerShell
起動テンプレートで vCPU のカスタム数を指定するには

New-EC2LaunchTemplate を使用します。

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

EC2 インスタンスの CPU オプションを変更する

時間の経過とともにニーズが変化し、既存のインスタンスの CPU オプションの設定を変更したい場合があります。インスタンスで実行される各スレッドは仮想 CPU (vCPU) と呼ばれます。Amazon EC2 コンソール、AWS CLI、API、または SDK で、既存のインスタンスに対して実行される vCPU の数を変更できます。この変更を行う前に、インスタンスの状態を Stopped にする必要があります。

Console
インスタンスのアクティブな vCPU の数を変更するには
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. 左のナビゲーションペインで、[Instances] (インスタンス) をクリックしてください。これにより、現在の AWS リージョンに定義されているインスタンスのリストが開きます。

  3. [インスタンス] の一覧から、インスタンスを選択してください。またはインスタンスリンクを選択して、インスタンスの詳細ページを開くこともできます。

  4. インスタンスが実行中の場合はまず進む前に停止する必要があります。[インスタンスの状態] メニューから [インスタンスの停止] を選択してください。

  5. vCPU 設定を変更するには[アクション] メニューの [インスタンス設定] から [CPU オプションの変更] を選択してください。これにより、[CPU オプションの変更] ページが開きます。

  6. インスタンスの設定を変更するには次のいずれかの CPU オプションを選択してください。

    [デフォルトの CPU オプションを使用する]

    このオプションはインスタンスをインスタンスタイプのデフォルトの vCPU 数にリセットします。デフォルトではすべての CPU コアのすべてのスレッドを実行します。

    [CPU オプションを指定する]

    このオプションはインスタンスで実行されている vCPU の数の設定を有効にします。

  7. [CPU オプションを指定] を選択した場合、[アクティブな vCPU] 設定が表示されます。

    • 最初のセレクタは各 CPU コアに対して実行されるスレッドの数を設定します。同時マルチスレッドを無効にするにはコアごとに実行されるスレッドの数を 1 に変更できます。

    • 2 番目のセレクタはインスタンスで実行されている CPU の数を設定します。

    CPU オプションセレクタを変更すると、次のフィールドが動的に更新されます。

    • [アクティブな vCPU]: 行った選択に基づいて、CPU コアの数にコアあたりのスレッドを乗算します。例えば、2 つのスレッドと 4 つのコアを選択した場合、8 つの vCPU となります。

    • [vCPU の合計]: インスタンスタイプの vCPU の最大数。例えば、m6i.4xlarge インスタンスタイプの場合、これは 16 vCPU (それぞれ 2 つのスレッドを実行する 8 個のコア) です。

  8. [変更] を選択して更新を適用します。

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 1234567890abcdef0 \ --core-count=4 \ --threads-per-core=2

例 2: コアごとに実行されるスレッドの数を 1 に変更して、同時マルチスレッドを無効にします。結果の設定では合計 8 つの vCPU (コアあたり 1 つのスレッドで 8 つの CPU コア) も実行されます。

aws ec2 modify-instance-cpu-options \ --instance-id 1234567890abcdef0 \ --core-count=8 \ --threads-per-core=1
PowerShell
インスタンスのアクティブな vCPU の数を変更するには

Edit-EC2InstanceCpuOption コマンドレットを使用し、-CoreCount パラメータで実行する CPU コアの数を指定し、ThreadsPerCore パラメータでコアごとに実行するスレッドの数を指定します。

例 1: 4 つの CPU コアを 1 コアあたり 2 つのスレッドで実行し、合計 8 つの vCPU を実行します。

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

例 2: コアごとに実行されるスレッドの数を 1 に変更して、同時マルチスレッドを無効にします。結果の設定では合計 8 つの vCPU (コアあたり 1 つのスレッドで 8 つの CPU コア) も実行されます。

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