インスタンス・テンプレートの作成

インスタンステンプレートを作成して、1台または複数の仮想サーバーをプロビジョニングするためのインスタンスの詳細を定義することができます。 作成したインスタンス・テンプレートを使用して、単一の仮想サーバー・インスタンスをプロビジョンすることも、インスタンス・グループの一部として複数のインスタンスを同時にプロビジョンすることもできます。

UI を使用したインスタンス・テンプレートの作成

インスタンス・テンプレートは、そのテンプレートから作成される仮想サーバー・インスタンスの詳細を定義します。 例えば、イメージ・テンプレートのプロファイル (vCPU および メモリー)、イメージ、接続されるボリューム、およびネットワーク・インターフェースを指定します。

インスタンス・テンプレートを作成するには、以下の手順を実行します。

  1. IBM Cloud コンソールで、ナビゲーションメニュー アイコンメニューアイコン インフラストラクチャ VPC アイコン コンピュート > インスタンステンプレート をクリックします。
  2. [新しいインスタンステンプレート ] をクリックし、表1に記載されている情報を入力してください。
  3. 情報を入力したら、**「インスタンス・テンプレートの作成 (Create instance template)」**をクリックします。

インスタンステンプレートを作成すると、そのテンプレートを使用して仮想サーバーインスタンスをプロビジョニングできることを確認するための検証手順が実行されます。

インスタンステンプレートの選択
フィールド
ロケーション 場所は、リージョン (特定の地理的領域) およびゾーン (リージョン内のフォールト・トレラント・データ・センター) で構成されます。 仮想サーバーインスタンスを作成する地理的エリア、地域、およびゾーンを選択してください。
名前 仮想サーバー・インスタンスには、名前が必要です。
リソース・グループ インスタンスのリソース・グループを選択します。
画像

「イメージの変更」 をクリックしてイメージを選択します。 「イメージの選択」ページでは、ストック・イメージ、カスタム・イメージ、カタログ・イメージ、スナップショット、または既存のボリュームを選択できます。 インスタンスをプロビジョニングする地理的ロケーションがサポートしている場合は、以下のいずれかを選択できます:

  • x86 アーキテクチャ

  • 非推奨 s390x アーキテクチャ

イメージを選択したら、 Save をクリックします。

  • ストック画像 :利用可能なストック画像から選択することができます。 詳細は以下を参照:

  • x86 仮想サーバーイメージ

  • 非推奨s390x 仮想サーバーイメージ

  • カスタムイメージ :カスタム・イメージ:カスタム・イメージは、自分でカスタマイズして IBM Cloud Object Storage にアップロードした画像を、 IBM Cloud VPC にインポートすることができます。 ブート・ボリュームから作成されたカスタム・イメージを使用することもできます。 カスタムイメージの詳細については、 カスタムイメージを使い始めるを 参照してください。

  • カタログ画像 :カタログイメージは、プライベートカタログにインポートされるカスタムイメージです。 カタログイメージの詳細については、 プライベートカタログでカスタムイメージを使用する際のVPCの考慮 事項を参照してください。

  • スナップショット :利用可能なスナップショットから選択できます。 詳細については、 「VPC 向け Block Storage スナップショットについて」を 参照してください。

  • 既存のボリューム :既存のボリュームから選択できます。 指定するボリュームはアタッチされていない状態でなければならず、かつインスタンスプロファイルと同じアーキテクチャのオペレーティングシステムがインストールされている必要があります。
    s390x アーキテクチャは非推奨となっています。 オンプレミスの展開モデルに移行できます。 詳しくは Linux on IBM Z and LinuxONE. 非推奨の詳細については、 サービス非推奨のお知らせを ご覧ください。

プロフィール 利用可能なすべての vCPU とRAMの組み合わせから選択するには、 プロファイルの変更をクリックします。 プロファイルファミリーには、「Balanced」、「Compute」、「Memory」、「Ultra High Memory」、「Very High Memory」、「Storage Optimized」、「GPU」、「Flex」、「Confidential Compute」、および「High Frequency」があります。

使用するプロファイルが、インスタンスを作成する予定のゾーンで利用可能であることを確認してください。

詳しくは、プロファイルを参照してください。

仮想サーバーのネットワークインターフェースの数がプロファイルの制限を超えているため、一部のプロファイルが利用できない場合があります。 より多くのプロファイルから選択するために、ネットワーク・インターフェイスを削除することができます。 詳細については、「 仮想サーバーのサイズ変更 」を参照してください。

選択した画像に含まれる使用許諾条件が、そのプロファイルと互換性がないため、一部のプロファイルが利用できない場合があります。 このような場合は、希望するプロファイルに適合する使用許可表現を持つ画像を選択してください。 詳しくは、 カスタム画像への使用許可表現の追加を 参照してください。

コアあたりのスレッド数 「コアあたりのスレッド数」を設定することで、ワークロードを柔軟に最適化できます。 すべてのプロファイルで「コアあたりのスレッド数」が表示されますが、これを編集できるのは「 High Frequency 」プロファイルファミリーのみです。 「高周波」プロファイルの場合、デフォルト値は 2 ですが、1 に調整することも可能です。
SSH 鍵 既存の SSH 公開鍵を選択するか、 「SSH 鍵の作成」 をクリックして新規 SSH 鍵を作成する必要があります。 RSA SSH 鍵のみを作成できます。 のためにED25519 SSH キーの場合は、キー情報をアップロードする必要があります。 SSH 鍵の作成について詳しくは、 UI を使用した SSH 鍵の作成 を参照してください。 SSH 鍵は、実行中になったインスタンスにセキュアに接続するために使用されます。

注:** 英数字の組み合わせは100文字までです。 SSH 鍵は RSA か Ed25519 のどちらかである。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519 は、Windows イメージや VMware イメージでは使用できません。

詳細については、「 SSH 鍵の使い方(入門 )」を参照してください。

ブート・ボリューム すべてのプロファイルのデフォルトのブート・ボリューム・サイズは 100 GB です。 第一世代のボリューム・プロファイルを使用している場合は最大 250 GB、 sdp プロファイルを使用している場合は最大 32,000 GB と、イメージの必要性に応じてより大きなブート・ボリューム容量を指定できます。 ユーザー・タグを指定することもできます。
データ・ボリューム インスタンスのプロビジョン時に含める 2 次データ・ボリュームを 1 つ以上追加できます。 ボリュームを追加するには、 「作成」 をクリックします。 ボリュームに対して、お客様管理の暗号化とユーザー・タグを指定できます。
仮想プライベート・クラウド インスタンスを作成する IBM Cloud VPC を指定します。 既存の VPC を使用することも、新規 VPC を作成することもできます。 新規 VPC を作成するには、**「新規 VPC (New VPC)」**をクリックします。
ネットワーク・インターフェース IBM Cloud VPC へのネットワーキング接続を定義します。 デフォルトでは、インスタンス・テンプレートに新しいオプション 「仮想ネットワーク・インターフェースを使用したネットワーク接続 (Network attachment with a virtual network interface)」 が選択されています。 あるいは、レガシー・オプションの 「インスタンス・ネットワーク・インターフェース」 を選択することもできます。 仮想サーバーのプロビジョン時に選択したどのタイプのネットワーク・インターフェース・オプションも、仮想サーバーのライフサイクルを通して持続します。 ネットワークインターフェースの種類を選択した後、編集アイコン 編集アイコン をクリックすると、サブネットや関連するセキュリティグループなど、ネットワークインターフェースの詳細を更新することができます。
ユーザー・データ 一般的な構成タスクを自動的に実行するユーザー・データや、スクリプトを実行するユーザー・データを追加することができます。 詳しくは、ユーザー・データを参照してください。
メタデータ デフォルトでは無効になっていますが、このテンプレートから作成されたインスタンスが、自身に関するメタデータを収集できるようにします。 トグルをクリックして、メタデータサービスを有効にしてください。 詳細については、 VPCのメタデータについてを 参照してください。
専用ホストに追加 仮想サーバー インスタンスを専用ホストに追加して、単一テナント スペースにインスタンスを作成できます。 専用インスタンスをプロビジョンするには、専用ホストを使用可能にしておくか、作成する必要があります。
配置グループに追加 インスタンスの配置グループを選択できます。 配置グループを有効にするには、トグルをクリックします。 次に、インスタンスの配置グループを選択または作成します。 配置グループを追加すると、インスタンスは配置グループの戦略に従って配置されます。 詳しくは、配置グループについてを参照してください。
ダイナミックなボリューム帯域割当 トグルをクリックして、接続されたデータボリュームに対する プールされたボ リューム帯域幅割り当てを 有効にします。 この機能は、一部の コンピュートプロファイルで サポートされています。
ホスト障害時の自動再始動 この設定は、デフォルトで有効になっています。 ホスト障害の自動再始動を無効にするには、トグルをクリックします。 詳しくは、『ホスト障害リカバリー・ポリシー』を参照してください。

CLI を使用したインスタンス・テンプレートの作成

インスタンス・テンプレートは、そのテンプレートから作成される仮想サーバー・インスタンスの詳細を定義します。 たとえば、インスタンステンプレートのプロファイル( vCPU およびmemory)、イメージ、アタッチされたボリューム、およびネットワークインターフェースを指定します。 コマンド・ライン・インターフェース (CLI) を使用して、IBM Cloud VPC で 1 つ以上のインスタンス・テンプレートを作成できます。

プライベート・カタログから共有されるカスタム・イメージを使用して仮想サーバー・インスタンスを作成する方法について詳しくは、 プライベート・カタログ・イメージからのプロビジョン を参照してください。

開始前に

IBM Cloud® の CLI 環境IBM Cloud VPC をセットアップしておきます。

インスタンス・テンプレート作成のための情報の収集

インスタンス・テンプレートを作成する準備ができましたか? 実行する前に ibmcloud is instance-template-create コマンドを実行する前に、インスタンス テンプレートとコマンド オプションに含める必要がある詳細を収集する必要があります。 たとえば、VPC の ID または名前、インスタンス テンプレートを作成するゾーンの名前が必要です。 また、使用するインスタンス プロファイルの名前と、テンプレートを作成するサブネットの ID または名前も必要です。

インスタンス・テンプレートに必要な以下の詳細情報を収集します。

必要なインスタンステンプレートの詳細
インスタンス・テンプレートの詳細情報 リスト表示するコマンド VPC CLI リファレンス資料
VPC ibmcloud is vpcs すべての VPC をリストします
ゾーン ibmcloud is zones 地域内のすべてのゾーンをリストします
プロフィール ibmcloud is instances すべての仮想サーバー・インスタンスをリストします
サブネット ibmcloud is subnets すべてのサブネットをリストします
画像 ibmcloud is image すべてのイメージをリスト表示する
ibmcloud is keys すべての鍵をリストします
配置グループ ibmcloud is placement-groups すべての配置グループをリストします

インスタンスの作成を計画しているゾーンで、使用するプロファイルが利用可能であることを確認します。

インスタンステンプレートを作成するために必要な情報を特定するには、次のコマンドを使用します。

  1. ご使用のアカウントに関連付けられているリージョンをリストします。

    ibmcloud is regions
    

    以下の例を参照してください。

    $ ibmcloud is regions
    Listing regions under account Test Account as user test.user@ibm.com...
    Name       Endpoint                              Status
    au-syd     https://au-syd.iaas.cloud.ibm.com     available
    br-sao     https://br-sao.iaas.cloud.ibm.com     available
    ca-tor     https://ca-tor.iaas.cloud.ibm.com     available
    eu-de      https://eu-de.iaas.cloud.ibm.com      available
    eu-es      https://eu-es.iaas.cloud.ibm.com      available
    eu-gb      https://eu-gb.iaas.cloud.ibm.com      available
    jp-osa     https://jp-osa.iaas.cloud.ibm.com     available
    jp-tok     https://jp-tok.iaas.cloud.ibm.com     available
    us-east    https://us-east.iaas.cloud.ibm.com    available
    us-south   https://us-south.iaas.cloud.ibm.com   available
    
  2. ターゲット領域に切り替えます。

    ibmcloud target -r <region-name>
    
  3. 対象地域に関連付けられているゾーンを一覧表示してください。

    ibmcloud is zones
    

    次の例では、コマンドは リージョン us-south で実行され、出力にはそのリージョン内にある利用可能なゾーンが表示されます。

    $ ibmcloud is zones
    Listing zones in target region us-south under account Test Account as user test.user@ibm.com...
    Name         Region     Status
    us-south-1   us-south   available
    us-south-2   us-south   available
    us-south-3   us-south   available
    
  4. ご使用のアカウントに関連付けられている IBM Cloud VPC をリストします。

    ibmcloud is vpcs
    

    この例では、以下の出力のような応答が表示されます。

    ID                                          Name                         Status      Classic access   Default network ACL                   Default security group                 Resource group
    r006-0d37163a-701d-4ad6-9ece-a3e34cf28935   cdl                          available   false            acl-test-1                            pedicure-budding-providing-excluded    Default
    r006-212def4b-93f0-4b9a-a331-94178b99d474   cli-test-1                   available   false            surprise-pacifier-cubicle-demystify   foyer-alongside-rug-zen                Default
    

    IBM Cloud VPC がない場合は、ibmcloud is vpc-create コマンドを使用して作成できます。 IBM Cloud VPC の作成について詳しくは、IBM Cloud VPC の CLI リファレンスを参照してください。

  5. インスタンス・テンプレートを作成するために使用できるプロファイルをリストします。

    ibmcloud is instance-profiles
    

    コマンドの出力は、次の例のようなものになります。

    Name               vCPU Manufacturer   Architecture   Family              vCPUs   Memory(GiB)   Bandwidth(Mbps)   Volume bandwidth(Mbps)   GPUs   Storage(GB)
    bx2-2x8            intel               amd64          balanced            2       8             4000              1000                     -      -
    bx2d-2x8           intel               amd64          balanced            2       8             4000              1000                     -      1x75
    bx2-4x16           intel               amd64          balanced            4       16            8000              2000                     -      -
    bx2d-4x16          intel               amd64          balanced            4       16            8000              2000                     -     1x150
    bx2-8x32           intel               amd64          balanced            8       32            16000             4000                     -      -
    bx2d-8x32          intel               amd64          balanced            8       32            16000             4000                     -     1x300
    bx2-16x64          intel               amd64          balanced            16      64            32000             8000                     -      -
    bx2d-16x64         intel               amd64          balanced            16      64            32000             8000                     -      1x600
    
  6. IBM Cloud VPC に関連付けられているサブネットをリストします。

    ibmcloud is subnets
    

    コマンドの出力は、次の例のようなものになります。

    ID                                          Name                       Status      Subnet CIDR       Addresses   ACL                                   Public Gateway   VPC                     Zone         Resource group
    0717-cd4f74f1-bfae-423a-886b-9163256ec4a9   subnet-south-1             available   10.240.0.0/24     124/256     acl-test-1                            -                cdl                     us-south-1   Default
    0727-9447a2c3-efb8-44d2-a180-115531e0b0d3   cdl                        available   10.240.64.0/24    238/256     acl-test-1                            -                cdl                     us-south-2   Default
    

    インスタンスグループのパフォーマンスを最大限に引き出すには、サブネットのサイズを32以上にするようにしてください。

    使用可能なサブネットがない場合は、ibmcloud is subnet-create コマンドを使用してサブネットを作成できます。 サブネットの作成に関する詳細については、『 IBM Cloud VPC 』のCLIリファレンス を参照してください。

  7. インスタンス・テンプレートを作成するために使用できるイメージをリストします。

    ibmcloud is images
    

    コマンドの出力は、次の例のようなものになります。

    ID                                          Name                                                Status       Arch    OS name                              OS version                                               File size(GB)   Visibility   Encryption   Resource group   Catalog Offering User Data Format   Remote Account ID
    r006-3fa3bea4-7f9c-4eeb-8248-ab1f6e03185b   my-test-image                                       available    amd64   centos-7-amd64                       7.x - Minimal Install                                    1               private      none         Default          -                cloud_init
    r006-c55167af-ea8c-4c27-871f-ccc9c868753e   ibm-centos-stream-8-amd64-1                         available    amd64   centos-stream-8-amd64                8                                          2               public       none         Default          -                cloud_init       811f8abfbd32425597dc7ba40da98fa6
    
  8. インスタンスに関連付けることができる使用可能な SSH 鍵をリストします。

    ibmcloud is keys
    

    コマンドの出力は、次の例のようなものになります。

    ID                                          Name     Type   Length   FingerPrint          Resource group
    r006-89ec781c-9630-4f76-b9c4-a7d204828d61   my-key   rsa    4096     gtnf+pdX2PYI9Ofq..   Default
    

    SSHキーをお持ちでない場合は、 ibmcloudのkey-createコマンド を使用してSSHキーを作成できます。

    RSAとSHA-1 ED25519 は、使用可能なSSH鍵の2種類です。 ただし、Windows または VMware イメージでは SSH キータイプ ED25519 を使用できません。 これらのイメージに使用できるのは RSA SSH 鍵のみです。 詳しくは、 SSH 鍵の概要 を参照してください。

  9. インスタンスに関連付けることができる使用可能な配置グループをすべてリストします。

    ibmcloud is placement-groups
    

    コマンドの出力は、次の例のようなものになります。

    Listing placement groups for generation 2 compute in all resource groups and region us-east under account vpcdemo as user    yaohaif@cn.ibm.com...
    ID                                            Name                             State    Strategy       Resource Group
    c5f1f366-b92a-4080-991a-aa5c2e33d96b          placement-group-region-us-east   stable   power_spread       5018a8564e8120570150b0764d39ebcc
    placement-group-cccc-cccc-cccc-cccccccccccc   vsi-placementGroup1              stable   host_spread    5018a8564e8120570150b0764d39ebcc
    placement-group-bbbb-bbbb-bbbb-bbbbbbbbbbbb   vsi-placementGroup2              stable   power_spread     5018a8564e8120570150b0764d39ebcc
    placement-group-aaaa-aaaa-aaaa-aaaaaaaaaaaa   vsi-placementGroup3              stable   power_spread   1d18e482b282409e80eff354c919c6a2
    

CLI からインスタンステンプレートを作成する

上記の値が判明したら、これらの値を使用して instance-template-create コマンドを実行します。 また、インスタンスの名前も指定する必要があります。

ibmcloud is instance-template-create INSTANCE_TEMPLATE_NAME VPC ZONE_NAME PROFILE_NAME SUBNET --image IMAGE

次のコマンド例は、IDで指定されたVPCに _my-instance-templateという_名前のインスタンス・テンプレートを作成します。 r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b. テンプレートは us-south-3 ZONEで作成され bx2-2x8 PROFILEを使用します。 SUBNETはIDで定義されます。 0726-298acd6c-e71e-4204-a04f-fe4a4dd89805. IMAGEはIDで指定する。 r006-534ef2ac-6158-45b3-9657-57629fa85305.

ibmcloud is instance-template-create my-instance-template r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b us-south-3 bx2-2x8 0076-2249dabc-8c71-4a54-bxy7-953701ca3999 --image r006-534ef2ac-6158-45b3-9657-57629fa85305 --placement-group r006-953db18c-068c-4a11-9b07-645684b444b2
Creating instance template my-instance-template under account Test Account as user test-user@ibm.com...

ID                          0727-0fdac0fb-ad59-4d7b-9f03-604ddc1db002
Name                        my-instance-template
CRN                         crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance-template:0727-0fdac0fb-ad59-4d7b-9f03-604ddc1db002
Resource group              Default
Image                       r006-3fa3bea4-7f9c-4eeb-8248-ab1f6e03185b
VPC                         r006-212def4b-93f0-4b9a-a331-94178b99d474
Zone                        us-south-2
Profile                     bx2-2x8
Boot volume                 Name   Capacity   Profile           IOPS   Attachment name                      Auto delete   Tags
                            -      100        general-purpose   0      illude-education-spotted-reanalyze   true          -

Primary Network Interface   Name      Subnet ID                                   Security Groups                             Allow source IP spoofing   Reserved IP Address   Reserved IP ID   Reserved IP Name   Reserved IP Auto Delete
                            primary   0727-944126da-e46d-4104-8ba4-ab5a5832864b   r006-2295f00e-8af0-4736-be11-94677955b6b2   false                      -                     -                -                  -

Placement                   ID
                            r006-9994e3ab-18ae-49a7-95cf-25c77e09fa76

Created                     2023-03-29T22:02:59+05:30

以下の例では、IDで指定されたVPCに my-gen3-instance-template という名前のインスタンス・テンプレートを作成します。 r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b. テンプレートは us-south-3_ ZONEで作成され cx3d-8x20 PROFILEを使用します。 SUBNETはIDで定義されます。 00726-298acd6c-e71e-4204-a04f-fe4a4dd89805. IMAGEはIDで指定する。 r006-534ef2ac-6158-45b3-9657-57629fa85305. 選択した コンピューティングプロファイル がデータボリュームのプール型帯域幅割り当てをサポートしている場合、オプション --storage_qos_modes を含めることもできます。

ibmcloud is instance-template-create my-gen3-instance-template r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b us-south-3 cx3d-8x20 00726-298acd6c-e71e-4204-a04f-fe4a4dd89805 --image r006-534ef2ac-6158-45b3-9657-57629fa85305 --storage_qos_modes pooled

ibmcloud is instance-template-create コマンドの他の例については、VPC の CLI リファレンスを参照してください。

インスタンステンプレートを作成すると、そのテンプレートを使用して仮想サーバーインスタンスをプロビジョニングできることを確認するための検証手順が実行されます。 さらに詳しい情報が必要な場合は、 コマンド ibmcloud is help instance-template-create を実行するとヘルプが表示されます。

API を使用してインスタンステンプレートを作成する

インスタンス・テンプレートは、そのテンプレートから作成される仮想サーバー・インスタンスの詳細を定義します。 たとえば、インスタンステンプレートのプロファイル( vCPU およびmemory)、イメージ、アタッチされたボリューム、およびネットワークインターフェースを指定します。 アプリケーションプログラミングインターフェース(API)を使用することで、 IBM Cloud VPC 内に1つまたは複数のインスタンステンプレートを作成できます。

プライベート・カタログから共有されるカスタム・イメージを使用して仮想サーバー・インスタンスを作成する方法について詳しくは、 プライベート・カタログ・イメージからのプロビジョン を参照してください。

開始前に

IAM トークン、API エンドポイント、および API バージョンを表す変数を定義します。 手順については、API および CLI の環境のセットアップを参照してください。

必要なアクセス権限があることを確認してください。 これらのメソッドを呼び出すには、リストされている条件に応じて、以下のアクションを含む 1 つ以上の IAM アクセス役割が割り当てられている必要があります。 Cloud Identity and Access Management ダッシュボード「ユーザー」 ページにアクセスして、アクセス権限を確認できます。

API についての知識を身に付けるには、IBM Cloud コンソールのプロビジョニングのページの**「サンプル API 呼び出しの取得 (Get sample API call)」**をクリックしてください。 API 要求の正しい順序を確認し、アクションとその依存関係について理解を深めることができます。

インスタンス・テンプレート作成のための情報の収集

インスタンス・テンプレートを作成する準備ができましたか? 作成する前に POST リクエスト /instance/templates メソッドを使用する場合は、インスタンス テンプレートに含める詳細を知っておく必要があります。 たとえば、VPCのIDまたは名前、およびインスタンスを作成したいゾーンの名前が必要です。 また、使用するインスタンスプロファイルの名前と、テンプレートを作成するサブネットのIDまたは名前も必要です。 以下の API 呼び出しを行って、以下の必要なインスタンス・テンプレートの詳細を収集します。

必要なAPIインスタンステンプレートの詳細
インスタンスの詳細 リスト方法 API 仕様の資料
VPC GET /vpcs すべての VPC をリストします
ゾーン GET /regions/<region>/zones 地域内のすべてのゾーンをリストします
プロフィール GET /instance/profiles すべてのインスタンス・プロファイルのリスト
サブネット GET /subnets すべてのサブネットをリストします
画像 GET /images すべてのイメージをリスト表示する
キー GET /keys すべての鍵をリストします
配置グループ GET /placement_groups すべての配置グループをリストします

インスタンスの作成を計画しているゾーンで、使用するプロファイルが利用可能であることを確認します。

インスタンステンプレートを作成するために必要な情報を特定するには、次のコマンドを使用します。

  1. ご使用のアカウントに関連付けられている IBM Cloud VPC をリストします。

    curl -X GET "$vpc_api_endpoint/v1/vpcs?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    利用可能なものがなければ、 POST /vpcs メソッドを使用して IBM Cloud VPC を作成することができます。 IBM Cloud VPCの作成について詳しくは、 IBM Cloud API 資料-VPC の作成 を参照してください。

  2. ご使用のアカウントに関連付けられているリージョンをリストします。

    curl -X GET "$vpc_api_endpoint/v1/regions?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  3. リージョンに関連付けられているゾーンをリストします。

    curl -X GET "$vpc_api_endpoint/v1/regions/$region_name/zones?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  4. インスタンス テンプレートを作成するために利用可能なプロファイルを一覧表示します。

    curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  5. IBM Cloud VPC に関連付けられているサブネットをリストします。

    curl -X GET "$vpc_api_endpoint/v1/subnets?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    インスタンスグループのパフォーマンスを最大限に引き出すには、サブネットのサイズを32以上にするようにしてください。

    利用可能なサブネットがない場合は、 POST /subnets メソッドを使用してサブネットを作成できます。 IBM Cloud VPCの作成について詳しくは、 IBM Cloud API 資料-サブネットの作成 を参照してください。

  6. インスタンステンプレートを作成するために利用可能なイメージを一覧表示します。

    curl -X GET "$vpc_api_endpoint/v1/images?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  7. インスタンスに関連付けることができる使用可能な SSH 鍵をリストします。

    curl -X GET "$vpc_api_endpoint/v1/keys?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    SSHキーをお持ちでない場合は、 ibmcloudのkey-createコマンド を使用してSSHキーを作成できます。

    使用可能な SSH 鍵がない場合は、 POST /keys メソッドを使用して SSH 鍵を作成できます。 IBM Cloud VPCの作成について詳しくは、 IBM Cloud API 資料-キーの作成 を参照してください。

    RSAとSHA-1 ED25519 は、使用可能なSSH鍵の2種類です。 ただし、Windows または VMware イメージでは SSH キータイプ ED25519 を使用できません。 これらのイメージに使用できるのは RSA SSH 鍵のみです。 詳しくは、 SSH 鍵の概要 を参照してください。

  8. インスタンスに関連付けることができる使用可能な配置グループをすべてリストします。

    curl -X GET "$vpc_api_endpoint/v1/placement_groups?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

API を使用したインスタンス・テンプレートの作成

これらの値を知ったら、それを使って POST リクエスト /instance/templates 方法。 また、インスタンスの名前も指定する必要があります。

以下の例では、 _my-instance-templateという_名前のインスタンス・テンプレートを us-south-1 という名前のインスタンス・テンプレートを作成し bx2-2x8 プロファイルを使用します。

curl -X POST "$vpc_api_endpoint/v1/instance/templates?version=2023-07-13&generation=2"
  -H "Authorization: Bearer $iam_token"
  -d '{
    "zone": {"name": "us-south-1"},
    "resource_group": {"id": "db8e8d865a83e0aae03f25a492c5b39e"},
    "name": "my-instance-template",
    "vpc": {"id": "r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b"},
    "user_data": "",
    "profile": {"name": "bx2-2x8"},
    "keys": [{"id": "r006-68f8333a-1169-42da-ba01-75268bac8362"}],
    "volume_attachments": [],
    "boot_volume_attachment": {
      "volume": {
        "name": "my-instance-template-boot-1720804230000",
        "capacity": 100,
        "profile": {"name": "general-purpose"}},
      "delete_volume_on_instance_delete": true
    },
    "metadata_service": {
      "enabled": true,
      "protocol": "https",
      "response_hop_limit": 1},
    "primary_network_attachment": {
      "name": "eth0",
      "virtual_network_interface": {
        "allow_ip_spoofing": false,
        "auto_delete": true,
        "enable_infrastructure_nat": true,
        "primary_ip": {"auto_delete": true,
        "subnet": {"id": "0726-298acd6c-e71e-4204-a04f-fe4a4dd89805"},
        "security_groups": [{"id": "r006-ccdd1f58-f0f2-4ea0-8774-a24bbe61b5d9"}],
        "protocol_state_filtering_mode": "auto"}
    },
    "network_attachments": [],
    "image": {"id": "r006-534ef2ac-6158-45b3-9657-57629fa85305"}}`

次の例では、インスタンス・テンプレートを作成します。 my-gen3-instance-templateus-south-3 で命名され cx3d-8x20 プロファイルを使用します。 選択した コンピュートプロファイルが データボリュームのプール帯域幅割り当てをサポートしている場合、プロパティ --storage_qos_modes も含めることができます。

curl -X POST "$vpc_api_endpoint/v1/instance/templates?version=2024-07-12&generation=2"
  -H "Authorization: Bearer $iam_token"
  -H "Content-Type: application/json" \
  -H "accept: application/json" \
  -d '{
  "zone": {"name": "us-south-3"},
  "resource_group": {"id": "db8e8d865a83e0aae03f25a492c5b39e"},
  "name": "my-gen3-instance-template",
  "vpc": {"id": "r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b"},
  "user_data": "",
  "profile": {"name": "cx3d-8x20"},
  "keys": [{"id": "r006-68f8333a-1169-42da-ba01-75268bac8362"},
  "volume_attachments": [
    {"volume": {
        "name": "my-data-volume-1",
        "capacity": 3000,
        "profile": {"name": "5iops-tier"}},
      "delete_volume_on_instance_delete": false},
    {"volume": {
        "name": "my-data-volume-2",
        "capacity": 3000,
        "profile": {"name": "5iops-tier"}},
      "delete_volume_on_instance_delete": false},
    {"volume": {
        "name": "my-data-volume-3",
        "capacity": 3000,
        "profile": {"name": "5iops-tier"}},
      "delete_volume_on_instance_delete": false}
  ],
  "boot_volume_attachment": {
    "volume": {
      "name": "my-gen3-instance-template-boot-1720803726000",
      "capacity": 100,
      "profile": {"name": "general-purpose"}
    },
    "delete_volume_on_instance_delete": true
  },
  "metadata_service": {
    "enabled": false,
    "response_hop_limit": 1},
  "primary_network_attachment": {
    "name": "eth0",
    "virtual_network_interface": {
      "allow_ip_spoofing": false,
      "auto_delete": true,
      "enable_infrastructure_nat": true,
      "primary_ip": {"auto_delete": true},
      "subnet": {"id": "0726-298acd6c-e71e-4204-a04f-fe4a4dd89805"},
      "security_groups": [
        {"id": "r006-ccdd1f58-f0f2-4ea0-8774-a24bbe61b5d9"}],
      "protocol_state_filtering_mode": "auto"}
  },
  "network_attachments": [],
  "image": {"id": "r006-534ef2ac-6158-45b3-9657-57629fa85305"},
  "enable_secure_boot": false
  "storage_qos_modes": "pooled"
}'

/instance/templates メソッドのその他の例については、 インスタンス・テンプレートの作成 API の資料を参照してください。

Terraform を使用したインスタンス・テンプレートの作成

Terraform を使用して、 IBM Cloud VPC に 1 つ以上のインスタンス・テンプレートを作成できます。

プライベート・カタログから共有されるカスタム・イメージを使用して仮想サーバー・インスタンスを作成する方法について詳しくは、 Terraform を使用したインスタンスの作成 を参照してください。

開始前に

Terraform for VPC をセットアップしたことを確認します。

インスタンス・テンプレート作成のための情報の収集

インスタンス・テンプレートを作成する準備ができましたか? 含める前に ibm_is_instance_template構成にリソースを追加するには、インスタンス テンプレートに含める詳細を知っておく必要があります。 たとえば、VPCのIDまたは名前、およびインスタンステンプレートを作成するゾーンの名前が必要です。 また、使用するインスタンスプロファイルの名前と、テンプレートを作成するサブネットのIDまたは名前も必要です。

以下のTerraformインスタンステンプレートの必須情報を収集してください。

必要なTerraformインスタンステンプレートの詳細
インスタンス・テンプレートの詳細情報 リスト・ブロック VPC Terraform データ ソースのリファレンス ドキュメント
インスタンス・プロファイル ibm_is_instance_profiles 「ibm_is_instance_profiles」
画像 ibm_is_images 「ibm_is_images」
VPC ibm_is_vpc ibm_is_vpc(ibm_is_vpc)
サブネット ibm_is_subnets ibm_is_subnets(ibm_is_subnets)
ゾーン ibm_is_zone IBM ゾーン(ibm_is_zone)
ibm_is_ssh_keys IBM _is_ssh_keys
配置グループ ibm_is_placement_groups 「ibm_is_placement_groups」

インスタンステンプレートを作成するために必要な情報を判断するには、以下のガイドを参照してください。

DataSource ブロックを使用して、以下の情報を収集します。

  1. インスタンス・プロファイルの詳細を収集します。 選択したプロファイルに対して、以下のブロックを実行してください。 使用可能なプロファイルのリストについては、 x86 インスタンス・プロファイル を参照してください。 詳細については、Terraform のドキュメントにある「 ibm_is_instance_profiles 」の項目をご覧ください。 インスタンスプロファイルを使用するには、インスタンスプロファイルデータソースを参照してください。 詳細については、Terraform のドキュメントにある「 ibm_is_instance_profile 」の項目を参照してください。

    data "ibm_is_instance_profile" "example_profile" {
       name = "bx2-2x8"
    }
    
  2. インスタンスを作成するために使用できるイメージをリストします。 ストック・イメージ、アカウントからのカスタム・イメージ、またはプライベート・カタログからアカウントに共有されたイメージを使用できます。 詳細については、Terraformのドキュメントにある「 ibm_is_image 」の項目を参照してください。 プライベートカタログから共有されたイメージを使用する場合は、Terraformのドキュメントを参照してください。 ibm_cm_バージョン または ibm_cm_offering_インスタンス

    • インスタンスのアカウントからストック・イメージまたはカスタム・イメージを選択します。
    data "ibm_is_image" "example_image" {
       name = "ibm-centos-7-6-minimal-amd64-2"
    }
    
    • インスタンスのプライベート・カタログから共有されているイメージを選択します。 詳細については、Terraformのドキュメントにある「 ibm_is_images 」の項目を参照してください。
    data "ibm_is_images" "example_images" {
       catalog_managed = true
    }
    

    別のアカウントに属するカタログ・イメージを選択する場合は、さらに検討すべき考慮事項と制限があります。 Terraform でのプライベート・カタログ内のアカウント間イメージ参照の使用 を参照してください。

  3. VPC リソースを作成するか、VPC データ・ソースを参照して既存の VPC を使用します。 詳しくは、データ・ソース ibm_is_vpc またはリソース ibm_is_vpc に関する Terraform 資料を参照してください。

    data "ibm_is_vpc" "example_vpc" {
       name = "example-vpc"
    }
    
  4. サブネット・データ・ソースを参照して、サブネット・リソースを作成するか、既存のサブネットを使用します。 詳しくは、データ・ソース ibm_is_subnet またはリソース ibm_is_subnet に関する Terraform 資料を参照してください。

    data "ibm_is_subnet" "example_subnet" {
       name            = "example-subnet"
       vpc             = ibm_is_vpc.example_vpc.id
       zone            = "us-south-1"
       ipv4_cidr_block = "10.240.0.0/24"
    }
    
  5. 既存のSSHキーを使用するには、SSHキーデータソース ibm_is_ssh_key を参照してください。 使用可能な SSH 鍵がない場合は、リソース ibm_is_ssh_key を使用して SSH 鍵を作成します。

    RSAとSHA-1 ED25519 は、使用可能なSSH鍵の2種類です。 ただし、Windows または VMware イメージでは SSH キータイプ ED25519 を使用できません。 これらのイメージに使用できるのは RSA SSH 鍵のみです。 詳しくは、 SSH 鍵の概要 を参照してください。

    resource "ibm_is_ssh_key" "example_sshkey" {
       name       = "example-sshkey"
       public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR"
    }
    

Terraformでインスタンステンプレートを作成する

これらの値がわかったら、それを使って ibm_is_instance_template リソース ブロック。 また、インスタンスの名前も指定する必要があります。

以下の例では、リージョンに _my-instance-templateという_名前のインスタンステンプレートを作成します。 us-south-1 リージョンに bx2-8x32 プロファイルを使用します。

resource "ibm_is_instance_template" "my-instance-template" {
  name    = "my-instance-template"
  image   = r006-3fa3bea4-7f9c-4eeb-8248-ab1f6e03185b
  profile = "bx2-8x32"

  primary_network_interface {
    subnet            = 0727-944126da-e46d-4104-8ba4-ab5a5832864b
    allow_ip_spoofing = true
  }

  placement_group = r006-9994e3ab-18ae-49a7-95cf-25c77e
  vpc             = r006-212def4b-93f0-4b9a-a331-94178b99d474
  zone            = "us-south-1"
  keys            = [363f6d70-0000-0001-0000-00000013b96c]

  boot_volume {
    name                             = "example-boot-volume"
    delete_volume_on_instance_delete = true
  }
}

次の例では、インスタンス・テンプレートを作成します。 my-gen3-instance-templateus-south-3 で命名され cx3d-8x20 プロファイルを使用します。 選択した コンピュートプロファイルが データボリュームのプール帯域幅割り当てをサポートしている場合、 storage_qos_modes オプションも含めることができます。

resource "ibm_is_instance_template" "example" {
  name                = "my-gen3-instance-template"
  image               = r006-534ef2ac-6158-45b3-9657-57629fa85305
  profile             = "cx3d-8x20"
  primary_network_interface {
    subnet            = 0d933c75-492a-4756-9832-1200585dfa79
    allow_ip_spoofing = true
  }
  vpc                 = r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b
  zone                = "us-south-3"
  keys                = [363f6d70-0000-0001-0000-00000013b96c]
  storage_qos_modes   = [pooled]
  boot_volume {
    name                             = "example-boot-volume"
    delete_volume_on_instance_delete = true
  }
  volume_attachments {
    delete_volume_on_instance_delete = false
    name                             = "example-data-vol-01"
    volume_prototype {
      profile = "5iops-tier"
      capacity = 3000
    }
  }
  volume_attachments {
    delete_volume_on_instance_delete = false
    name                             = "example-data-vol-02"
    volume_prototype {
      profile = "5iops-tier"
      capacity = 3000
    }
  }
}

ibm_is_instance_template のその他の例については、 ibm_is_instance_template Terraform リファレンスを参照してください。

次のステップ

インスタンステンプレートを作成した後、単一の仮想サーバーインスタンスをプロビジョニングすることも、インスタンスグループの一部として複数のインスタンスを同時にプロビジョニングすることもできます。 オプションで、インスタンス・グループにオートスケール・ポリシーを設定して、グループの仮想サーバー・インスタンスを動的に追加/削除することができます。 詳しくは、以下のトピックを参照してください。