インスタンス・テンプレートの作成
インスタンステンプレートを作成して、1台または複数の仮想サーバーをプロビジョニングするためのインスタンスの詳細を定義することができます。 作成したインスタンス・テンプレートを使用して、単一の仮想サーバー・インスタンスをプロビジョンすることも、インスタンス・グループの一部として複数のインスタンスを同時にプロビジョンすることもできます。
UI を使用したインスタンス・テンプレートの作成
インスタンス・テンプレートは、そのテンプレートから作成される仮想サーバー・インスタンスの詳細を定義します。 例えば、イメージ・テンプレートのプロファイル (vCPU および メモリー)、イメージ、接続されるボリューム、およびネットワーク・インターフェースを指定します。
インスタンス・テンプレートを作成するには、以下の手順を実行します。
- IBM Cloud コンソールで、ナビゲーションメニュー アイコン
インフラストラクチャ
コンピュート > インスタンステンプレート をクリックします。
- [新しいインスタンステンプレート ] をクリックし、表1に記載されている情報を入力してください。
- 情報を入力したら、**「インスタンス・テンプレートの作成 (Create instance template)」**をクリックします。
インスタンステンプレートを作成すると、そのテンプレートを使用して仮想サーバーインスタンスをプロビジョニングできることを確認するための検証手順が実行されます。
| フィールド | 値 |
|---|---|
| ロケーション | 場所は、リージョン (特定の地理的領域) およびゾーン (リージョン内のフォールト・トレラント・データ・センター) で構成されます。 仮想サーバーインスタンスを作成する地理的エリア、地域、およびゾーンを選択してください。 |
| 名前 | 仮想サーバー・インスタンスには、名前が必要です。 |
| リソース・グループ | インスタンスのリソース・グループを選択します。 |
| 画像 |
「イメージの変更」 をクリックしてイメージを選択します。 「イメージの選択」ページでは、ストック・イメージ、カスタム・イメージ、カタログ・イメージ、スナップショット、または既存のボリュームを選択できます。 インスタンスをプロビジョニングする地理的ロケーションがサポートしている場合は、以下のいずれかを選択できます:
イメージを選択したら、 Save をクリックします。
|
| プロフィール | 利用可能なすべての 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 |
すべての配置グループをリストします |
インスタンスの作成を計画しているゾーンで、使用するプロファイルが利用可能であることを確認します。
インスタンステンプレートを作成するために必要な情報を特定するには、次のコマンドを使用します。
-
ご使用のアカウントに関連付けられているリージョンをリストします。
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 -
ターゲット領域に切り替えます。
ibmcloud target -r <region-name> -
対象地域に関連付けられているゾーンを一覧表示してください。
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 -
ご使用のアカウントに関連付けられている 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 DefaultIBM Cloud VPC がない場合は、
ibmcloud is vpc-createコマンドを使用して作成できます。 IBM Cloud VPC の作成について詳しくは、IBM Cloud VPC の CLI リファレンスを参照してください。 -
インスタンス・テンプレートを作成するために使用できるプロファイルをリストします。
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 -
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リファレンス を参照してください。 -
インスタンス・テンプレートを作成するために使用できるイメージをリストします。
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 -
インスタンスに関連付けることができる使用可能な SSH 鍵をリストします。
ibmcloud is keysコマンドの出力は、次の例のようなものになります。
ID Name Type Length FingerPrint Resource group r006-89ec781c-9630-4f76-b9c4-a7d204828d61 my-key rsa 4096 gtnf+pdX2PYI9Ofq.. DefaultSSHキーをお持ちでない場合は、 ibmcloudのkey-createコマンド を使用してSSHキーを作成できます。
RSAとSHA-1 ED25519 は、使用可能なSSH鍵の2種類です。 ただし、Windows または VMware イメージでは SSH キータイプ ED25519 を使用できません。 これらのイメージに使用できるのは RSA SSH 鍵のみです。 詳しくは、 SSH 鍵の概要 を参照してください。
-
インスタンスに関連付けることができる使用可能な配置グループをすべてリストします。
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 仕様の資料 |
|---|---|---|
| VPC | GET /vpcs |
すべての VPC をリストします |
| ゾーン | GET /regions/<region>/zones |
地域内のすべてのゾーンをリストします |
| プロフィール | GET /instance/profiles |
すべてのインスタンス・プロファイルのリスト |
| サブネット | GET /subnets |
すべてのサブネットをリストします |
| 画像 | GET /images |
すべてのイメージをリスト表示する |
| キー | GET /keys |
すべての鍵をリストします |
| 配置グループ | GET /placement_groups |
すべての配置グループをリストします |
インスタンスの作成を計画しているゾーンで、使用するプロファイルが利用可能であることを確認します。
インスタンステンプレートを作成するために必要な情報を特定するには、次のコマンドを使用します。
-
ご使用のアカウントに関連付けられている 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 の作成 を参照してください。 -
ご使用のアカウントに関連付けられているリージョンをリストします。
curl -X GET "$vpc_api_endpoint/v1/regions?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
リージョンに関連付けられているゾーンをリストします。
curl -X GET "$vpc_api_endpoint/v1/regions/$region_name/zones?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
インスタンス テンプレートを作成するために利用可能なプロファイルを一覧表示します。
curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
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 資料-サブネットの作成 を参照してください。 -
インスタンステンプレートを作成するために利用可能なイメージを一覧表示します。
curl -X GET "$vpc_api_endpoint/v1/images?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
インスタンスに関連付けることができる使用可能な 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 鍵の概要 を参照してください。
-
インスタンスに関連付けることができる使用可能な配置グループをすべてリストします。
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-template で us-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インスタンステンプレートの必須情報を収集してください。
| インスタンス・テンプレートの詳細情報 | リスト・ブロック | 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 ブロックを使用して、以下の情報を収集します。
-
インスタンス・プロファイルの詳細を収集します。 選択したプロファイルに対して、以下のブロックを実行してください。 使用可能なプロファイルのリストについては、 x86 インスタンス・プロファイル を参照してください。 詳細については、Terraform のドキュメントにある「 ibm_is_instance_profiles 」の項目をご覧ください。 インスタンスプロファイルを使用するには、インスタンスプロファイルデータソースを参照してください。 詳細については、Terraform のドキュメントにある「 ibm_is_instance_profile 」の項目を参照してください。
data "ibm_is_instance_profile" "example_profile" { name = "bx2-2x8" } -
インスタンスを作成するために使用できるイメージをリストします。 ストック・イメージ、アカウントからのカスタム・イメージ、またはプライベート・カタログからアカウントに共有されたイメージを使用できます。 詳細については、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 でのプライベート・カタログ内のアカウント間イメージ参照の使用 を参照してください。
-
VPC リソースを作成するか、VPC データ・ソースを参照して既存の VPC を使用します。 詳しくは、データ・ソース ibm_is_vpc またはリソース ibm_is_vpc に関する Terraform 資料を参照してください。
data "ibm_is_vpc" "example_vpc" { name = "example-vpc" } -
サブネット・データ・ソースを参照して、サブネット・リソースを作成するか、既存のサブネットを使用します。 詳しくは、データ・ソース 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" } -
既存の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-template で us-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 リファレンスを参照してください。
次のステップ
インスタンステンプレートを作成した後、単一の仮想サーバーインスタンスをプロビジョニングすることも、インスタンスグループの一部として複数のインスタンスを同時にプロビジョニングすることもできます。 オプションで、インスタンス・グループにオートスケール・ポリシーを設定して、グループの仮想サーバー・インスタンスを動的に追加/削除することができます。 詳しくは、以下のトピックを参照してください。