top pageへ.

Programming Room.

Google Cloud Tips.

GCE Tips. 2024/04/01

 Google Compute Engine(GCE)に関するTipsです。


おしながき

確定的なインスタンステンプレート.

インスタンステンプレート.

 インスタンステンプレートはマシンタイプやディスクイメージなどのVMインスタンスのプロパティを含んで、通常のVMインスタンスや、マネージドインスタンスグループ(MIG)の個々のVMインスタンスを作成することができます。1つのインスタンステンプレートから同じ構成のVMインスタンスを複数作成することができるので、複数リソースを使用して並列処理したいときなどに使用します。


通常のインスタンステンプレートとの違い.

 通常のインスタンステンプレートはGCEのリソースを指定するだけでしかありません。確定的なインスタンステンプレートはさらに実行したいプログラム/スクリプトを含めて、何が実行されるのかを明示的に確定させたテンプレートです。通常のインスタンステンプレートは何が実行されるのかが曖昧なので動作が期待と異なる可能性がありますが、確定的なインスタンステンプレートではそのような曖昧さがなくなります。


確定的なインスタンステンプレートの作成手順.

 確定的なインスタンステンプレートはgcloudコマンドでしか作成できないようです。作成手順は複数の手順を経由する必要があるので、VMインスタンス作成からはじめると以下のとおりです。


1. VMインスタンスの作成.

 通常の手順でVMインスタンスを作成します。実行リソースを選択し、実行したいプログラム/スクリプトなどをインストールします。
 出来たら、いったんVMインスタンスを停止します。


2. イメージの作成.

 VMインスタンスのディスクからイメージを作成します。マシンイメージではありません。

  1. 「VMインスタンス」の一覧から作成したVMインスタンスをクリックして、VMインスタンスの詳細を表示します。
  2. VMインスタンスの詳細の「ストレージ」の「ブートディスク」で、作成したディスクをクリックします。
    またはサイドメニューの「ディスク」でディスクの一覧を表示し、作成したVMインスタンスのディスクをクリックします。
  3. 「ディスクの管理」が表示されるので「イメージを作成」をクリックします。
  4. 「イメージの作成」でイメージの設定を行います。必要なのは名前とロケーションの設定くらいです。ロケーションは、マルチリージョンのプロジェクトでもない限り「リージョン」を選択すれば十分です。またリージョンを選択した場合はさらにロケーションを選択を求められます。入力が完了したら「作成」をクリックします。
  5. イメージの作成が完了すると「イメージ」に遷移し、一覧が表示されます。

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

 最後はgcloudコマンドで作成したイメージからインスタンステンプレートを作成します。以下のコマンドで作成できます。色付きの箇所は変更してください。 マシンタイプは、"e2-standard-4"などです。

gcloud compute instance-templates create テンプレート名 --image-project プロジェクト名 --image 作成したイメージの名前 --machine-type=マシンタイプ

 GCPコンソールのサイドメニューから「インスタンステンプレート」を選択してインスタンステンプレートの一覧を表示します。作成したテンプレートがリストされているはずです。


その他.

マシンタイプの取得.

 上記手順6に登場するマシンタイプですが、以下コマンドで取得できます。実測で40秒くらいかかる上に、GCP上の全ゾーンで使えるマシンタイプが出てくるので非常に長いリストになります。

gcloud compute machine-types list

 --zonesオプションでゾーンを指定すると指定ゾーンのみがリストされるので、短くて結果が得られるまでも速くなります。東京リージョンのゾーンbなら以下のようになります。

gcloud compute machine-types list --zones=asia-northeast1-b

SpotVMの利用.

 価格の安いSpotVMを利用するようにインスタンステンプレートを構成できます。上記手順3で、gcloudコマンドに以下のオプションを追加します。

--provisioning-model=SPOT

インスタンステンプレートの編集/再作成.

 作成したインスタンステンプレートの内容を変更することは出来ません。再作成することになります。またすでに存在するインスタンステンプレートと同名で新しいインスタンステンプレートを作ることもできません。再作成する際は不要になった古いインスタンステンプレートを先に削除する必要があります。


▲page top.
Copyright 2005-2024, yosshie.