Google Cloud Platform を使用する際、Web ブラウザ上からだけではなく、コマンドラインから出来ると何かと便利。Cloud SDK を使用すれば実現できます。ここでは、Compute Engine のインスタンスを作成するまでの手順を示します。
Cloud SDK のインストール
まず、Cloud SDK を PC にインストールします。手順は Document に詳しく記載されているので、そちらをご参照ください。
例えば、macOS の場合の流れを要約すると、下記の通りとなります。
- SDK のダウンロード
- tarボールを任意の場所に展開
- 次のコマンドを実行。
$ ./google-cloud-sdk/install.sh
- 次のコマンドを設定し、初期設定を実施。
$ gloud init
利用できるコンポーネント
次のツールがデフォルトで用意されています。gcloud も、もちろん入っています。
- gcloud
- bq
- gsutil
現在のコンポーネントインストール状況を確認するには、次のコマンドを実行します。
$ gcloud components list
脱線しますが、例えば kubectl をインストールするには、次のコマンドを実行します。
$ gcloud components install kubectl
gcloud コマンドによるインスタンスの作成
インスタンスを作成する手順をざっくりと示します。なお、gcloud コマンドの詳細は公式リファレンスをご参照ください。
準備
前提としてプロジェクトを作成し、課金を有効にしておく必要があります。
gcloud コマンドのコンフィグを確認するには次のコマンドを実行します。
$ gcloud config list
プロジェクトの設定
もし、プロジェクトが別のものになっていた場合は、次のコマンドでセットします。
$ gcloud config set project プロジェクト名
ゾーンの設定
次のコマンドで利用できるゾーンの一覧を確認します。
$ gcloud compute zones list
NAME REGION STATUS NEXT_MAINTENANCE TURNDOWN_DATE
asia-east1-b asia-east1 UP
asia-east1-a asia-east1 UP
...
次のコマンドでゾーンを設定します。ゾーン名は「us-central1-a」など。
$ gcloud config set compute/zone ゾーン名
イメージとマシンタイプの確認
利用できるイメージをマシンタイプを確認します。
$ gcloud compute images list
NAME PROJECT FAMILY DEPRECATED STATUS
centos-6-v20180104 centos-cloud centos-6 READY
centos-7-v20180104 centos-cloud centos-7 READY
...
$ gcloud compute machine-types list
NAME ZONE CPUS MEMORY_GB DEPRECATED
f1-micro us-central1-f 1 0.60
g1-small us-central1-f 1 1.70
n1-highcpu-16 us-central1-f 16 14.40
n1-highcpu-2 us-central1-f 2 1.80
n1-highcpu-32 us-central1-f 32 28.80
インスタンスの作成
次のコマンドでインスタンスを作成します。イメージは centos-7 、マシンタイプは最小の f1-micro を指定しています。ディスクサイズ無指定時は10GBとなります。
$ gcloud compute instances create インスタンス名 ¥
--image-family centos-7 ¥
--image-project centos-cloud ¥
--machine-type f1-micro
※ --image エイリアスも使えるのですが、将来削除予定とワーニングが出力されます。
WARNING: Image aliases are deprecated and will be removed in a future version. Please use --image-family=centos-7 and --image-project=centos-cloud instead.
ちなみに作成にかかる時間を time コマンドで計測すると 16 秒ほどでした。
real 0m16.389s
user 0m0.620s
sys 0m0.131s
インスタンス作成時に有用なオプション
インスタンス作成の際には、他にも有用なオプションがあります。
オプション | 内容 |
---|---|
--deletion-protection | インスタンスの削除をプロテクト |
--no-address | グローバルアドレスを付与しない |
--preemptible | プリエンプティブインスタンスにする |
インスタンスへのログイン
インスタンスができたのでログインしてみましょう。次のコマンドでログインできます。
$ gcloud compute ssh インスタンス名
インスタンスへのオペレーション
インスタンスの利用状況確認、起動、停止、削除などのオペレーションも、gcloud コマンドを通してできます。
利用状況の確認
# インスタンスの一覧
$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
test-instance us-central1-a f1-micro 10.128.0.2 35.x.x.x RUNNING
...
# リージョンごとの利用状況
$ gcloud compute regions list
NAME CPUS DISKS_GB ADDRESSES RESERVED_ADDRESSES STATUS TURNDOWN_DATE
asia-east1 0/8 0/2048 0/8 0/1 UP
asia-northeast1 0/8 0/2048 0/8 0/1 UP
...
インスタンスの起動停止
# インスタンスの起動
$ gcloud compute instances start インスタンス名
# インスタンスの停止
$ gcloud compute instances stop インスタンス名
インスタンスの削除
$ gcloud compute instances delete インスタンス名