CLI および API を使用した VPC リソースの作成
VPC の作成に加えて、インスタンス、サブネット、ブロック・ストレージ・ボリュームなどの VPC リソースを作成することもできます。
IBM Cloud コンソールを使用した VPC リソースの作成については、 「IBM Cloud コンソールを使用して VPC リソースを作成する 」を参照してください。
CLI を使用した VPC リソースの作成
IBM Cloud® のCLIを使用すると、 IBM Cloud® Virtual Private Cloud を作成および設定できます。
仮想プライベート・クラウド (VPC) とその他の接続リソースを作成および構成するには、この後に続くセクションのステップを以下の順序で実行します。
- VPC、およびネットワークを定義するサブネットを作成します。
- サブネット内のすべてのリソースをパブリック・インターネットと通信できるようにする場合は、パブリック・ゲートウェイに接続します。
- 仮想サーバー・インスタンスを作成します。 デフォルトでは、インスタンスにはブートボリュームが接続されています。 ほとんどの仮想サーバー・インスタンスでは、デフォルトのブート・ボリューム・サイズは 100 GB です。 z/OS 仮想サーバー・インスタンスのデフォルトのブート・ボリューム・サイズは 250 GB です。
- ストレージがさらに必要な場合は、ブロック・ストレージ・ボリュームを作成してインスタンスに接続します。
- インスタンスで許可する受信および送信トラフィックを定義するには、そのセキュリティグループを設定してください。
- インターネットからインスタンスにアクセスできるようにするには、浮動 IP アドレスを予約して関連付けます。
開始前に
CLI 環境がセットアップされていることを確認します。
IBM Cloud への
ログイン
ibmcloud login --sso -a cloud.ibm.com
このコマンドを実行すると、URL が返され、パスコードの入力を求めるプロンプトが表示されます。 ブラウザーでその URL にアクセスしてログインします。 成功すると、ワンタイム・パスコードが表示されます。 そのパスコードをコピーし、プロンプトに応答として貼り付けます。 認証ステップが終わると、アカウントの選択を求められます。 複数のユーザーを利用できる場合は、ログインに使用するユーザーを選択します。
リージョンの選択を求められたら、米国南部を選択します。
残りのプロンプトにすべて応答して、ログインを完了します。
vpc の作成
次のコマンドを使用して、my-vpc という名前の VPC を作成します。
ibmcloud is vpc-create my-vpc
返された出力から、後で使えるようにIDを変数に保存します。例えば、次のようにします
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
上記の例では、クラシック・アクセスが可能な VPC は作成されません。 VPC がクラシック・リソースにアクセスする必要がある場合は、 クラシック・インフラストラクチャーへのアクセスのセットアップ を参照してください。 VPCの「クラシックアクセス」のみを有効にできるのは、VPCを作成している間のみです。 また、クラシック・アクセス VPC は常にアカウントに 1 つしか作成できません。
プライベート・カタログの作成
このステップはオプションです。 プライベート・カタログからのイメージを共有する計画の場合は、最初にプライベート・カタログを作成する必要があります。 別のアカウントに属するカタログ・イメージを選択する場合は、検討すべき追加の考慮事項と制限事項があります。 プライベート・カタログでのアカウント間イメージ参照の使用 を参照してください。 プライベート・カタログを作成するには、チュートリアル「 CLI を使用したカタログへのソフトウェアのオンボーディング」を参照してください。
サブネットの作成
サブネットを作成する前に、そのサブネットを作成するゾーンとアドレス接頭部を選択します。 VPC 内の各ゾーンのアドレス接頭部をリストするには、次のコマンドを実行します。
ibmcloud is vpc-address-prefixes $vpc
次に、 us-south-3 ゾーンのデフォルトのアドレス接頭部を選択する必要があります。 コマンド出力から、対象のアドレス接頭部の CIDR ブロックをメモします。 サブネットを作成するときは、選択したゾーンのアドレス接頭部のいずれかに含まれる IP 範囲を指定する必要があります。
サブネットを作成した後にサイズを変更することはできません。
ibmcloud is subnet-create my-subnet $vpc us-south-3 --ipv4-cidr-block "10.0.1.0/24"
返された出力から、後で使えるようにIDを変数に保存します。例えば、次のようにします
subnet="0738-658756a4-1106-4914-969a-3b43b338524a"
サブネットを最初に作成した時点でのステータスは「 pending 」です。 サブネットにリソースを作成するには、そのサブネットの状況が available に変わっている必要があります。これには数秒かかります。 サブネットの状況を確認するには、次のコマンドを実行します。
ibmcloud is subnet $subnet
パブリック・ゲートウェイの接続
接続したすべてのリソースをパブリック・インターネットと通信できるようにするには、パブリック・ゲートウェイをサブネットに接続します。
パブリック・ゲートウェイを作成するには、次のコマンドを実行します。
ibmcloud is public-gateway-create my-gateway $vpc us-south-3
返された出力から、後で使えるようにIDを変数に保存します。例えば、次のようにします
gateway="0738-446c0c63-f0b1-4043-b30d-644f55fde391"
パブリック・ゲートウェイをサブネットに接続するには、次のコマンドを実行します。
ibmcloud is subnet-update $subnet --pgw $gateway
1 つの VPC 内でゾーンあたり 1 つのパブリック・ゲートウェイのみが許可されていますが、そのパブリック・ゲートウェイをゾーン内の複数のサブネットに接続できます。 ゾーンのパブリック・ゲートウェイを見つけるには、ibmcloud is public-gateways コマンドを実行し、VPC とゾーンの特定の値を探してください。
SSH 鍵の追加
IBM Cloud アカウントに公開 SSH 鍵を追加します。 このキーはインスタンスの作成時に指定するもので、後でそのインスタンスにログインする際に必要になります。 1 つの鍵を使用して、複数のインスタンスをプロビジョンできます。
IBM Cloud アカウントで使用可能な鍵を確認するには、次のコマンドを実行します。
ibmcloud is keys
鍵を追加するには、次のコマンドを実行します。 お使いのSSH鍵ファイルへのパスを指定してください。 RSA SSH 鍵の場合は、 id_rsa.pub ファイルへのパスを使用できます。 Ed25519 SSH 鍵の場合は、 id_ed25519.pub ファイルへのパスを使用できます。
ibmcloud is key-create my-key @$HOME/.ssh/id_rsa.pub
返された出力から、後で使えるようにIDを変数に保存します。例えば、次のようにします
key="0738-859b4e97-7540-4337-9c64-384792b85653"
インスタンスのプロファイルの選択
使用可能なインスタンス・プロファイルをすべてリストするには、次のコマンドを実行します。
ibmcloud is instance-profiles
変数として使用する予定のプロファイルを保存します。これは、後でインスタンスをプロビジョンするために使用されます。
使用するプロファイルが、インスタンスの作成を予定しているゾーンで利用可能であることを確認します。
一部のプロフィールは、以下のいずれかの理由で利用できない場合があります:
- 仮想サーバーのネットワークインターフェースの数がプロファイルの制限を超えています。 より多くのプロファイルから選択するために、ネットワーク・インターフェイスを削除することができます。 詳細については、「 仮想サーバーのサイズ変更 」を参照してください。
- 選択された画像には、プロファイルと互換性のない使用許可表現が含まれています。 このような場合は、希望するプロファイルに適合する使用許可表現を持つ画像を選択してください。 詳しくは、 カスタム画像への使用許可表現の追加を 参照してください。
インスタンスのイメージの選択
インスタンスは、ストック・イメージ、アカウントのカスタム・イメージ、またはプライベート・カタログからアカウントと共有されたイメージを使用して作成できます。 使用する予定のイメージに基づいて、以下のいずれかのコマンドを実行します。
-
インスタンスのアカウントからストック・イメージまたはカスタム・イメージを選択します。
-
使用可能なすべてのイメージをリストするには、
ibmcloud is imagesコマンドを実行します。 リストが長すぎる場合は、以下の例のようにフィルタリングすることを検討してください。$ ibmcloud is images | grep -i "debian.*available.*amd64.*public" r006-17cc6c08-f628-46f4-8bf4-a8edab749722 ibm-debian-10-13-minimal-amd64-4 available amd64 debian-10-amd64 10.x Buster/Stable - Minimal Install 1 public provider none Default - r006-b721bf3b-393b-4386-a618-d1ea8c004e1c ibm-debian-11-7-minimal-amd64-2 available amd64 debian-11-amd64 11.x Bullseye/Stable - Minimal Install 1 public provider none Default - r006-e66ebfcd-4aac-44e2-b504-1f6f4c003518 ibm-debian-12-0-minimal-amd64-1 available amd64 debian-12-amd64 12.x Bookworm/Stable - Minimal Install 1 public provider none Default -非推奨のイメージには、最新のサポートは含まれていません。
-
ibm-debian-12-0-minimal-amd64-1のようなイメージを選択し、後でインスタンスをプロビジョンするために使用する変数としてイメージ ID を保存します。image=$(ibmcloud is images | grep -i "ibm-debian-12-0-minimal-amd64-1" | cut -d" " -f1)
-
-
インスタンスのプライベート・カタログから共有されるイメージを選択します
別のアカウントに属するカタログ・イメージを選択する場合は、検討すべき追加の考慮事項と制限事項があります。 CLI のプライベート・カタログでのアカウント間イメージ参照の使用 を参照してください。
-
使用可能なすべてのプライベート・カタログ・イメージ・オファリングをリストするには、以下のコマンドを実行します。
ibmcloud is catalog-image-offeringsこのコマンドは、各イメージ・オファリングの ID と、イメージが存在するプライベート・カタログの ID を返します。
offering_idとcatalog_idを変数に保存します。これらの変数は、後でインスタンスをプロビジョンするときに使用します。offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889 catalog_id=71306253-8444-4cae-a45d-64d35e5393ec -
オファリングの
offering_crnと、オファリング内の各バージョンのoffering_version_crnを取得するには、以下のコマンドを実行します。ibmcloud is catalog-image-offering $catalog_id $offering_idインスタンスをプロビジョンするときに、
offering_crn値を使用してカタログ製品オファリングの最新バージョンのプライベート・カタログ管理イメージからインスタンスをプロビジョンすることも、offering_version_crn値を使用してカタログ製品オファリングの特定のバージョンからプロビジョンすることもできます。offering_crnとoffering_version_crnを変数に保存します。これらの変数は、後でインスタンスをプロビジョンするときに使用します。offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:offering:136559f6-4588-4af2-8585-f3c625eee09d" offering_version_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:version:136559f6-4588-4af2-8585-f3c625eee09d/8ae92879-e253-4a7c-b09f-8d30af12e518"
-
インスタンスの作成
新しく作成したサブネット内にインスタンスを作成します。 公開 SSH 鍵を渡して、インスタンスのプロビジョン後にログインできるようにします。
使用する予定のイメージに基づいて、以下のいずれかの CLI コマンドを実行します。
-
インスタンスのアカウントからストック・イメージまたはカスタム・イメージを使用してインスタンスを作成します。
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --image-id $image --keys $key -
最新のイメージ・バージョンのプライベート・カタログ管理イメージを使用してインスタンスを作成します。
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering $offering_crn --keys $key -
特定のバージョンのイメージからプライベート・カタログ管理イメージを使用してインスタンスを作成します。
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering-version $offering_version_crn --keys $key
新規インスタンスの作成後に、そのインスタンスに作成されたネットワーク・インターフェースに関する情報は返されません。
返された出力から、後で使用できるようにインスタンスのIDを変数に保存します。例えば、次のようにします
instance="0738-21179496-964e-4c00-8210-cf23d75750b3"
インスタンスを最初に作成した時点では、そのステータスは「 pending 」となっています。 続行する前に、インスタンスの状況が running になる必要があります。これには数分かかります。 インスタンスの状況を確認するには、次のコマンドを実行します。
ibmcloud is instance $instance
返された出力から、VNI(仮想ネットワーク・インターフェイス)のIDを変数に保存し、後で使えるようにする:
vni="0717-0b45c763-fada-4d44-8f46-e71154ec11e0"
Block Storage データボリュームの作成
ストレージがさらに必要な場合は、ブロック・ストレージ・ボリュームを作成して仮想サーバー・インスタンスに接続できます。 ブロック・ストレージ・ボリュームを作成するときには、コンピュート・ワークロードのパフォーマンスが最適になるプロファイルを選択します。 選択したボリューム・プロファイルに基づくボリューム容量と IOPS 範囲について詳しくは、 プロファイル を参照してください。
ボリューム・プロファイルのリストを表示するには、以下を実行します。
ibmcloud is volume-profiles
このコマンドを実行して、ブロック・ストレージのデータ・ボリュームを作成します。 ボリュームの名前、ボリューム・プロファイル、およびボリュームを作成するゾーンを指定します。 ブロック・ストレージ・データ・ボリュームをインスタンスに接続するには、インスタンスとブロック・ストレージ・データ・ボリュームを同じゾーンに作成する必要があります。
ibmcloud is volume-create my-volume custom us-south-3 --iops 1000 --capacity 500
返された出力から、後で使用できるようにボリュームのIDを変数に保存してください:
vol=0738-933c8781-f7f5-4a8f-8a2d-3bfc711788ee
このボリュームは、最初に作成された時点では「 pending 」の状態になります。 続行する前に、ボリュームの状況が available になる必要があります。これには数分かかります。
ボリュームの状況を確認するには、次のコマンドを実行します。
ibmcloud is volume $vol
Block Storage のデータボリュームをインスタンスにアタッチする
作成した変数を使用して、以下のコマンドを実行し、ボリュームを仮想サーバーインスタンスにアタッチします
ibmcloud is instance-volume-attachment-add my-volume-attachment $instance $vol --auto-delete true
デフォルトのセキュリティグループにルールを追加する
セキュリティー・グループを構成して、インスタンスで許可されるインバウンドとアウトバウンドのトラフィックを定義できます。 例えば、SSH トラフィックを許可するルールを追加できます。
VPC のセキュリティー・グループを見つけます。
ibmcloud is vpc-sg $vpc
返された出力から、後で使えるようにIDを変数に保存してください:
sg=0738-2d364f0a-a870-42c3-a554-000000981149
ここで、SSH トラフィックを許可するルールを作成します。
ibmcloud is sg-rulec $sg inbound tcp --port-min=22 --port-max=22
オプションで、ping トラフィックを許可するルールを追加することもできます。
ibmcloud is sg-rulec $sg inbound icmp --icmp-type 8 --icmp-code 0
Windows イメージの場合は、インスタンスに関連付けられたセキュリティー・グループで、インバウンドとアウトバウンドのリモート・デスクトップ・プロトコルのトラフィック (TCP ポート 3389) を許可してください。
インスタンス用のフローティングIP アドレスの作成
インターネットからインスタンスにアクセスできるようにするには、浮動 IP アドレスを作成します。
ibmcloud is floating-ip-reserve my-fip --vni $vni
以下に例を示します。
ibmcloud is floating-ip-reserve my-fip --vni $vni
Creating floating IP my-fip under account rnos's Account as user bob@ibm.com...
ID r006-a398f234-7785-4e28-8861-02a96c928fa3
Address 52.118.151.163
Name my-fip
CRN crn:v1:bluemix:public:is:us-south-1:a/b21af5a9874242b7851e780943d795a9::floating-ip:r006-a398f234-7785-4e28-8861-02a96c928fa3
Status pending
Zone us-south-1
Created 2026-03-04T10:48:37+05:30
Target ID Target type Name
0717-0b45c763-fada-4d44-8f46-e71154ec11e0 virtual_network_interface alto-uncrushed-disliking-dismiss
Resource group Default
返された出力から、 Address を変数に保存し、後で使用できるようにします:
address=52.118.151.163
インスタンスへのログイン
例えば、Linux では次の形式のコマンドを使用できます。
ssh -i $HOME/.ssh/id_rsa root@$address
ユーザー・ログイン「root」は、Fedora Core OS ではデフォルトで無効になっています。 ユーザー・ログイン「core」は、Fedora Core OS インスタンスへのログインに使用できます。
接続の継続を求めるプロンプトが出されたら、yes と入力します。
インスタンスへの SSH アクセスはセキュリティー・グループによってブロックされることがあります。 インスタンスのセキュリティー・グループで SSH アクセスが許可されていることを確認してください。
Windows イメージに接続するには、復号されたパスワードを使用してログインします。 手順については、Windows インスタンスへの接続を参照してください。
インスタンスのモニタリング
IBM Cloud コンソールで、インスタンスの CPU、ボリューム、メモリー、およびネットワーク使用量の経時変化をモニターできます。 モニター・データは IBM Cloud Monitoring に保管されるので、アカウントの Monitoring サービスのインスタンスから認証を受ける必要があります。 詳しくは、モニタリングの概説を参照してください。
IBM Cloud Hyper Protect Virtual Servers for IBM Cloud® Virtual Private Cloud インスタンスについては、 Hyper Protect Virtual Servers for VPC インスタンスはセキュア実行イメージを使用して作成され、セキュア実行インスタンスのメモリにはアクセスできないため、メモリ・メトリクスを収集できません。
VPN ゲートウェイの作成
ご使用の VPC を別のプライベート・ネットワークに安全に接続することを希望する場合は、サブネット上に VPN ゲートウェイを作成します。
VPN ゲートウェイを作成するには、次のコマンドを実行します。
ibmcloud is vpn-gateway-create my-vpn-gateway $subnet
返された出力から、VPNゲートウェイのIDを変数に保存し、後で使用できるようにします。例えば、次のようにします
vpn_gateway="0757-7e91085b-dc11-4707-aa4d-66e735e9a2bc"
VPNゲートウェイを最初に作成した時点では、そのステータスは「 pending 」となっています。 続行する前に、VPN ゲートウェイの状況が available になる必要があります。これには数分かかります。 VPN ゲートウェイの状況を確認するには、次のコマンドを実行します。
ibmcloud is vpn-gateway $vpn_gateway
ピア・アドレス 169.61.161.150 および事前共有鍵 mykey への VPN 接続を VPN ゲートウェイ上で作成するには、以下のコマンドを実行します。
ibmcloud is vpn-gateway-connection-create my-vpn-conn $vpn_gateway 169.61.161.150 mykey
この例で、 169.61.161.150 はピア・ゲートウェイ・アドレスです。これは、VPC 外部のネットワークの VPN ゲートウェイの IP アドレスを指定します。 mykey の値は、VPC 外部のネットワークに対する VPN ゲートウェイの認証キーです。 16進数の数字の列、または印刷可能なASCII文字で構成されたパスフレーズです。 ほとんどのピア・ゲートウェイのタイプに対応できるように、このストリングは以下の規則に従う必要があります。
- 数字、小文字または大文字、あるいは以下の特殊文字を組み合わせて使用できます:
- + & ! @ # $ % ^ * ( ) . , : - 文字列の長さは6~128文字でなければなりません。
- 先頭文字を
0xや0sにすることはできない。
VPN 接続の状況は、最初に作成された時点では down であり、接続が確立された後に up になります。 VPN ゲートウェイ上の VPN 接続の状況を確認するには、次のコマンドを実行します。
ibmcloud is vpn-gateway-connections $vpn_gateway
おめでとうございます!
IBM Cloud CLI から VPC を正常に作成して構成しました。 さらに別の CLI コマンドを試すには、CLI リファレンスを参照してください。
REST API を使用した VPC リソースの作成
REST API を使用して、 IBM Cloud® Virtual Private Cloud のリソースを作成および設定することができます。
仮想プライベート・クラウド (VPC) とその他の接続リソースを作成および構成するには、この後に続くセクションのステップを以下の順序で実行します。
- VPC、およびネットワークを定義するサブネットを作成します。
- サブネット内のすべてのリソースをパブリック・インターネットと通信できるようにする場合は、パブリック・ゲートウェイに接続します。
- 仮想サーバー・インスタンスを作成します。 デフォルトでは、100 GB のブート・ボリュームがインスタンスに接続されます。
- ストレージがさらに必要な場合は、ブロック・ストレージ・ボリュームを作成してインスタンスに接続します。
- インスタンスで許可する受信および送信トラフィックを定義するには、そのセキュリティグループを設定してください。
- インターネットからインスタンスにアクセスできるようにするには、浮動 IP アドレスを予約して関連付けます。
開始前に
IAM トークン、API エンドポイント、および API バージョンを表す変数を定義します。 手順については、API および CLI の環境のセットアップを参照してください。
API についての知識を身に付けるには、IBM Cloud コンソールのプロビジョニングのページの**「サンプル API 呼び出しの取得 (Get sample API call)」**をクリックしてください。 API 要求の正しい順序を確認し、アクションとその依存関係について理解を深めることができます。
vpc の作成
my-vpc という名前の IBM Cloud VPC を作成します。
curl -X POST "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-vpc"
}'
API 要求を行うたびに generation パラメーターを送信して、使用する世代を指定する必要があります。 第 2 世代の仮想サーバー・インスタンスの場合は、generation=2 と指定します。 詳細については、 Virtual Private Cloud API の「 Generation 」を参照してください
残りの呼び出しについては、新しく作成されたVPCのIDを把握しておく必要があります。 ID を変数に保存します。例えば、次のようにします。
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
変数が保存されたことを確認するには、 echo $vpc を実行し、応答が空でないことを確認してください。
上記の例では、クラシック・アクセスが可能な VPC は作成されません。 VPC がクラシック・リソースにアクセスする必要がある場合は、 クラシック・インフラストラクチャーへのアクセスのセットアップ を参照してください。 VPCの「クラシックアクセス」のみを有効にできるのは、VPCを作成している間のみです。 また、クラシック・アクセス VPC は常にアカウントに 1 つしか作成できません。
プライベート・カタログの作成
このステップはオプションです。 プライベート・カタログからのイメージを共有する計画の場合は、最初にプライベート・カタログを作成する必要があります。 別のアカウントに属するカタログ・イメージを選択する場合は、検討すべき追加の考慮事項と制限事項があります。 コンソールのプライベートカタログでクロスアカウント画像参照を使用するを 参照してください。 プライベート・カタログを作成するには、チュートリアル「 CLI を使用したカタログへのソフトウェアのオンボーディング」を参照してください。
サブネットの作成
サブネットを作成する前に、そのサブネットを作成するゾーンとアドレス接頭部を選択します。 VPC 内の各ゾーンのアドレス接頭部をリストするには、次のコマンドを実行します。
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/address_prefixes?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
それでは、「 us-south-3 」ゾーンのデフォルトのアドレスプレフィックスを選択してください。 応答のアドレス接頭部の CIDR ブロックをメモします。 サブネットを作成するときは、選択したゾーンのアドレス接頭部のいずれかに含まれる IP 範囲を指定する必要があります。
サブネットを作成した後にサイズを変更することはできません。
curl -X POST "$vpc_api_endpoint/v1/subnets?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-subnet",
"ipv4_cidr_block": "10.0.1.0/24",
"zone": { "name": "us-south-3" },
"vpc": { "id": "'$vpc'" }
}'
サブネットの ID を変数に保存します。
subnet="0738-35fb0489-7105-41b9-99de-033fae723006"
サブネット内にリソースをプロビジョンするには、そのサブネットの状況が Ready である必要があります。 作業を進める前に、サブネットのリソースを照会して、状況が Ready であることを確認してください。 状況が failed である場合は、サポートに連絡して詳細情報を提供してください。
別のサブネットのプロビジョンを試行することで、作業を進めてみることもできます。
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
パブリック・ゲートウェイの接続
接続したすべてのリソースをパブリック・インターネットと通信できるようにするには、パブリック・ゲートウェイをサブネットに接続します。
ゾーンにパブリック・ゲートウェイを作成するには、次のようにします。
curl -X POST "$vpc_api_endpoint/v1/public_gateways?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-gateway",
"zone": { "name": "us-south-3" },
"vpc": { "id": "'$vpc'" }
}'
パブリック・ゲートウェイの ID を変数に保存します。
gateway="0738-ad0cded3-53a3-4d4a-9809-8c59b50d2b80"
パブリック・ゲートウェイをサブネットに接続します。
curl -X PUT "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"id": "'$gateway'"
}'
1 つの VPC 内でゾーンあたり 1 つのパブリック・ゲートウェイのみが許可されていますが、そのパブリック・ゲートウェイをゾーン内の複数のサブネットに接続できます。 ゾーンのパブリック・ゲートウェイを見つけるには、ibmcloud is public-gateways コマンドを実行し、VPC とゾーンの特定の値を探してください。
その後、以下のコマンドを実行して、サブネットに接続されたパブリック・ゲートウェイを取得して表示できます。
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
SSH 鍵の追加
IBM Cloud アカウントに公開 SSH 鍵を追加します。 このキーはインスタンスの作成時に指定するもので、後でそのインスタンスにログインする際に必要になります。 1 つの鍵を使用して、複数のインスタンスをプロビジョンできます。
curl -X POST "$vpc_api_endpoint/v1/keys?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-key",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
}'
SSH 鍵の ID を変数に保存します。例えば、次のようにします。
key="0738-35fb0489-7105-41b9-8764-033fae723006"
インスタンスのプロファイルの選択
API を呼び出して、すべてのプロファイルをリストします。 次のコマンドを実行すると、使用可能なプロファイルが一覧表示されます。
curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
プロファイルの名前を変数に保存します。この変数は、後でインスタンスをプロビジョンするときに使用します。 以下に例を示します。
profile_name="b2-2x8"
使用するプロファイルが、インスタンスの作成を予定しているゾーンで利用可能であることを確認します。
一部のプロフィールは、以下のいずれかの理由で利用できない場合があります:
- 仮想サーバーのネットワークインターフェースの数がプロファイルの制限を超えています。 より多くのプロファイルから選択するために、ネットワーク・インターフェイスを削除することができます。 詳細については、「 仮想サーバーのサイズ変更 」を参照してください。
- 選択された画像には、プロファイルと互換性のない使用許可表現が含まれています。 このような場合は、希望するプロファイルに適合する使用許可表現を持つ画像を選択してください。 詳しくは、 カスタム画像への使用許可表現の追加を 参照してください。
インスタンスのイメージの選択
インスタンスは、ストック・イメージ、アカウントのカスタム・イメージ、またはプライベート・カタログからアカウントと共有されたイメージを使用して作成できます。 使用する予定のイメージに基づいて、以下のいずれかの API 呼び出しを実行します。
-
インスタンスのアカウントからストック・イメージまたはカスタム・イメージを選択します。
次のコマンドを実行すると、使用可能なイメージが一覧表示されます。
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization:$iam_token"イメージの ID を変数に保存します。この変数は、後でインスタンスをプロビジョンするときに使用します。 以下に例を示します。
image_id="0738-660198a6-52c6-21cd-7b57-e37917cef586" -
インスタンスのプライベート・カタログから共有されるイメージを選択します。
別のアカウントに属するカタログ・イメージを選択する場合は、検討すべき追加の考慮事項と制限事項があります。 API のプライベート・カタログでのアカウント間イメージ参照の使用 を参照してください。
インスタンスは、カタログ製品オファリングの最新バージョンのプライベート・カタログ・イメージからプロビジョンすることも、カタログ製品オファリングの特定のバージョンからプロビジョンすることもできます。
最新バージョンのカタログ製品オファリングからプライベート・カタログ・イメージを選択するには、 カタログ管理 API-オファリングの取得 を参照してください。 オファリング CRN を見つけ、後で使用するために変数に保存します。
offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:offering:00111601-0ec5-41ac-b142-96d1e64e6442-global"特定のバージョンのカタログ製品オファリングからプライベート・カタログ・イメージを選択するには、 カタログ管理 API-オファリングの取得 を参照してください。 次に、 「オファリングの取得」>「Kinds」>「バージョン」>「CRN」 に移動して、バージョンの CRN を取得し、後で使用するために変数に保存します。
version_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:version:00111601-0ec5-41ac-b142-96d1e64e6442-global/ec66bec2-6a33-42d6-9323-26dd4dc8875d-global"
インスタンスの作成
新しく作成したサブネット内にインスタンスを作成します。 公開 SSH 鍵を渡して、インスタンスのプロビジョン後にログインできるようにします。 使用する予定のイメージのタイプに応じて、以下のいずれかの API 呼び出しを実行します。
-
インスタンスのアカウントからストック・イメージまたはカスタム・イメージを選択します。
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "image": { "id": "'$image_id'" } }' -
最新バージョンのカタログ製品オファリングのプライベート・カタログ・イメージを使用して、インスタンスを作成します。
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "catalog_offering": { "offering": { "crn": "'$offering_crn'" } }' -
特定のバージョンのカタログ製品オファリングからのプライベート・カタログ・イメージを使用して、インスタンスを作成します。
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "catalog_offering": { "version": { "crn": "'$version_crn'" } }'
インスタンスの ID を変数に保存します。例えば、次のようにします。
instance="0738-35fb0489-7105-41b9-99de-033fae723006"
インスタンスを作成すると、その状況は stopped になります。 続行する前に、インスタンスの状況が running になる必要があります。これには数分かかります。 インスタンスの状況を照会して、running であることを確認してください。
curl -X GET "$vpc_api_endpoint/v1/instances/$instance?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
GET/instance API 呼び出しで返されたインスタンスの 1 次ネットワーク・インターフェースの ID を保存します。例えば、次のようにします。
network_interface="0738-7710e766-dd6e-41ef-9d36-06f7adbef33d"
このインスタンスを照会するまで、1 次ネットワーク・インターフェースの ID を取得することはできません。
(オプション) Block Storage データボリュームの作成とアタッチ
Block Storage のデータボリュームを作成し、それを仮想サーバーインスタンスに補助ストレージとして接続することができます。 以下の例のような要求を使用して、データ・ボリュームを作成します。 この手順では、ボリューム・プロファイルを表示し、ボリュームを作成し、ボリュームIDを変数に保存し、ボリュームのステータスを確認し、ボリューム・アタッチメントを作成します。
ボリューム・プロファイルのリストを表示します。
curl -X GET "$vpc_api_endpoint/v1/volumes/profiles?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
プロファイルには、general-purpose (3 IOPS/GB)、5iops-tier、10-iops-tier、custom を指定できます。 選択したボリューム・プロファイルに基づくボリューム容量と IOPS 範囲について詳しくは、 プロファイル を参照してください。
データ・ボリュームを作成します。
curl -X POST "$vpc_api_endpoint/v1/volumes?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-volume",
"iops": 1000,
"capacity": 100,
"zone": {
"name": "us-south-3"
},
"profile": {
"name": "custom"
}
}'
ボリュームのIDを変数に保存します:
volume_id="0738-640774d7-2adc-4609-add9-6dfd96167a8f"
このボリュームは、最初に作成された時点では「 pending 」の状態になります。 続行する前に、ボリュームの状況が available になる必要があります。これには数分かかります。
ボリュームの状態を確認します:
curl -X GET "$vpc_api_endpoint/v1/volumes/$volume_id?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
新しいデータボリュームを仮想サーバーインスタンスに接続するために、ボリュームアタッチメントを作成します。 先ほど作成したインスタンス ID 変数を要求で使用します。 ボリューム ID 変数を使用して、ボリュームを指定します。
ボリューム接続を作成します。
curl -X POST "$vpc_api_endpoint/v1/instances/$instance/volume_attachments?version=$version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-volume-attachment",
"volume": {
"id": "'$volume_id'"
}
}'
デフォルトのセキュリティグループにルールを追加する
セキュリティー・グループを構成して、インスタンスで許可されるインバウンドとアウトバウンドのトラフィックを定義できます。 例えば、SSH トラフィックを許可するルールを追加できます。
VPC のセキュリティー・グループを見つけます。
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/default_security_group?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
セキュリティー・グループの ID を変数に保存します。例えば、次のようにします。
sg=0738-2d364f0a-a870-42c3-a554-000000981149
次に、インスタンスに接続できるように、SSHの受信トラフィックを許可するルールを作成します:
curl -X POST "$vpc_api_endpoint/v1/security_groups/$sg/rules?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"direction": "inbound",
"protocol": "tcp",
"port_min": 22,
"port_max": 22
}'
Windows イメージの場合は、インスタンスに関連付けられたセキュリティー・グループで、インバウンドとアウトバウンドのリモート・デスクトップ・プロトコルのトラフィック (TCP ポート 3389) を許可してください。
フローティングIP アドレスの作成
インターネットからインスタンスにアクセスできるようにするには、浮動 IP アドレスを作成します。 このインスタンスの 1 次ネットワーク・インターフェースをこの浮動 IP アドレスのターゲットとして使用します。
curl -X POST "$vpc_api_endpoint/v1/floating_ips?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-floatingip",
"target": {
"id":"'$network_interface'"
}
}
'
浮動 IP アドレスの ID を変数に保存します。例えば、次のようにします。
floating_ip="0738-35fb0489-7105-41b9-99de-033fae723006"
インスタンスへのログイン
インスタンスに接続するには、作成したフローティングIPを使用してください。 浮動 IP アドレスを取得するには、次のコマンドを実行します。
curl -X GET "$vpc_api_endpoint/v1/floating_ips/$floating_ip?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Linux の場合は、浮動 IP のaddressを使用して、インスタンスに SSH で接続します。
ssh -i <private_key_file> root@<floating ip address>
ユーザー・ログイン「root」は、Fedora Core OS ではデフォルトで無効になっています。 ユーザー・ログイン「core」は、Fedora Core OS インスタンスへのログインに使用できます。
Windows イメージに接続するには、復号されたパスワードを使用してログインします。 手順については、Windows インスタンスへの接続を参照してください。
インスタンスのモニタリング
IBM Cloud コンソールで、インスタンスの CPU、ボリューム、メモリー、およびネットワーク使用量の経時変化をモニターできます。 モニター・データは IBM Cloud Monitoring に保管されるので、アカウントの IBM Cloud Monitoring インスタンスから認証を受ける必要があります。 詳しくは、IBM Cloud Monitoring を参照してください。
(オプション): リソースの削除
リソースはいつでも削除できます。 ただし、リソースが他のリソースによって必要とされる場合、そのリソースを削除することはできません。 例えば、VPC は、インスタンス、サブネット、パブリック・ゲートウェイが含まれている場合には削除することはできません。 VPC およびそのすべてのリソースを削除する方法については、「 REST API を使用した VPC の削除 」を参照してください。
おめでとうございます!
REST API を使用して、VPC の作成と設定を正常に完了しました。 さらに別の API コマンドを試すには、Virtual Private Cloud の API を参照してください。