gcutil から gcloud compute への移行


Compute Engine では、gcloud compute の一般提供が開始されている場合、すべてのユーザーに対して、gcutil から gcloud compute ツールに移行することをおすすめしています。gcloud compute は統合型のコマンドライン ツールで、gcutil から改善された多数の機能(下記)が含まれています。

  • タブ補完
  • インプレース アップグレード
  • 充実したマニュアルページ スタイルのヘルプ
  • 多様な出力形式

gcutil から gcloud compute への移行を支援するために、このガイドでは 2 つのツール間の主な違いについて簡単に説明します。gcloud compute ツールの詳細については、gcloud compute のドキュメントをご覧ください。

新しい gcloud コマンド

gcloud compute ツールには、既存の gcutil コマンドのすべてについて同等のコマンドがありますが、一部例外もあります。すべての gcloud コマンドのリストを入手するには、リファレンス ページにアクセスするか、gcloud compute --help を実行してください。以下の表は、よく使用される gcutil コマンドからの変更点について簡単にまとめたものです。

gcutil コマンド gcloud compute コマンド
gcutil addinstance INSTANCE
gcloud compute instances create INSTANCE

インスタンスを作成します。

  • デフォルトのゾーン / リージョンを設定できます。設定しなかった場合、gcloud compute からゾーン / リージョンの指定を求められます。
  • デフォルトのプロパティを使用して仮想マシンを作成します。以下は例です。
    • machine-type: n1-standard-1
    • image: debian-10

インスタンスの作成と起動をご覧ください。

gcutil コマンド gcloud compute コマンド
gcutil deleteinstance INSTANCE
gcloud compute instances delete INSTANCE \
       [--keep-disks {boot,all,none}]
備考

インスタンスを削除します。インスタンスの削除をご覧ください。

gcutil コマンド gcloud compute コマンド
gcutil ... --cache_flag_values
gcloud configs set project PROJECT
gcloud configs set compute/zone ZONE
gcloud configs set compute/region REGION
備考

プロジェクト、ゾーン、リージョンのデフォルト値を設定します。デフォルトのゾーンとリージョンの設定を参照してください。

gcutil コマンド gcloud compute コマンド
gcutil push/pull
gcloud compute scp
備考

ローカル コンピュータと仮想マシン間でファイルをコピーします。Google Cloud CLI を使用してファイルを転送するをご覧ください。

gcutil コマンド gcloud compute コマンド
gcutil deleteRESOURCE
gcloud compute RESOURCES delete

リソースを削除します。例:

gcloud compute instances delete example-instance
gcutil コマンド gcloud compute コマンド
gcutil getRESOURCES
gcloud compute RESOURCES describe

単一のリソースについて説明を表示します。例:

gcloud compute instances describe example-instance

gcutil コマンド gcloud compute コマンド
gcutil listRESOURCES
gcloud compute RESOURCES list

そのタイプのすべてのリソースを一覧表示します。たとえば、インスタンスを一覧表示する場合:

gcloud compute instances list

gcutil コマンド gcloud compute コマンド
gcutil setmetadata
gcloud compute instances add-metadata
gcloud compute instances remove-metadata
gcloud compute project-info add-metadata
gcloud compute project-info remove-metadata
備考

楽観的ロックはツールによって実行されるようになったので、手動でフィンガープリントを指定する必要はありません。カスタム インスタンス メタデータの設定を参照してください。

gcutil コマンド gcloud compute コマンド
gcutil … --dump_request_response

まだ提供されていません。

gcutil コマンド gcloud compute コマンド
gcutil … --log_level=DEBUG
gcloud … --verbosity debug

~/.config/gcloud/logs 内のすべてのコマンドについても、ログがファイルに格納されます。

gcutil コマンド gcloud compute コマンド
gcutil ssh INSTANCE --ssh_user
gcloud compute ssh USER@INSTANCE
備考

インスタンスへの接続を参照してください。

gcutil コマンド gcloud compute コマンド
gcutil … \
--image=projects/project-id/global/images/image
gcloud compute … --image image-name \
       --image-project image-project
備考

イメージからインスタンスを起動するを参照してください。

gcutil コマンド gcloud compute コマンド
gcutil deleteinstances --[no]delete_pd
gcutil deleteinstances --[no]delete_boot_pd
gcloud compute instances delete … \
       --delete-disks {all,none,boot}
gcloud compute instances delete … \
       --keep-disks {all,none,boot}

ディスクが自動削除されるようにマークされている場合は、--keep-disks フラグを使用して指定されない限り、自動的にディスクが削除されます。

デフォルトのインスタンス設定

gcloud compute でインスタンスを作成すると、仮想マシンのイメージとマシンタイプにいくつかのデフォルト値が指定されます。--image フラグと --machine-type フラグを省略した場合はこれらのデフォルト値が使用されますが、適切なフラグを指定すれば、設定を上書きすることもできます。仮想マシンのデフォルト設定は次のとおりです。

  • デフォルトのイメージ: 最新の debian-10 イメージ
  • デフォルトのマシンタイプ: n1-standard-1

たとえば、次のコマンドを実行したとします。

gcloud compute instances create example-instance --zone us-central1-a

この場合、gcloud compute は上記のイメージとマシンタイプを使用してインスタンスを作成します。

出力形式

デフォルトの出力形式は、実行したコマンドによって異なる形式が使用されるように変更されました。たとえば、describe コマンドを実行して単一のリソースに関する情報を取得する場合、出力レスポンスは YAML 形式になります。異なる出力形式(JSON やテキストなど)でレスポンスを返すには、--format フラグを次のように使用します。

gcloud compute instances list --format {json,yaml,text}

追加型になったメタデータ更新

設定やメタデータを更新する際に、フィンガープリントを提供する必要がなくなりました。デフォルトでは、メタデータの変更は常に追加型と見なされます。すべてのメタデータのバッチ更新を実行しなくても、単一のメタデータ エントリの追加や、エントリの更新を行うことができます。変更されるのは、渡されるメタデータキーだけです。

gcloud compute instances add-metadata example-instance \
         --metadata cookies=chocolate

イメージ プロジェクトの指定

以前、イメージを厳密に指定するには、プロジェクト名を含んだ部分的なイメージ URI を次のように指定する必要がありました。

gcutil addinstance example-instance \
         --image=projects/debian-cloud/global/images/debian-9

gcloud compute では、新しい --image-project フラグを使用してイメージ プロジェクトを指定する必要があります。

gcloud compute instances create example-instance \
         --image debian-9-stretch-vYYYMMDD
         --image-project debian-cloud

また、次のように完全な URI を指定することもできます。

gcloud compute instances create example-instance \
         --image https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-9-stretch-vYYYMMDD