読者です 読者をやめる 読者になる 読者になる

Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

小技:GCPインスタンスのIPアドレス一覧

GCP (Google Cloud Platform)のPreemptible VM Instancesを活用し、無料枠内で4CPUのVM Instance 6台を2か月運用する予定ですが、Preemptible VM Instancesは24時間で自動的に停止するので、停止したVMを検出して自動再起動するようにしています。詳細は、以前の記事を参照願います。

これで、VMが止まることは気にならなくなったのですが、止まるたびにIPアドレスが変わり、/etc/hostsの書き換えが面倒なので、困っていました。

もちろん、IPアドレスを予約すれば問題ありませんが、出来るだけ低コストで通す方針なので、/etc/hosts用の情報を作成するスクリプト(1行)を作りました(下記)。

gcloud compute instances list |sort  | awk '{ print "\t", $6, "\t", $1 }'

これで、下記のような情報が表示されるので、これを/etc/hostsにペーストすればよいです。少し手間が省けました。

# セキュリティ上の理由でIPアドレスは変えてます
         104.198.13.124          gcp10
         104.199.124.23          gcp20
         104.196.113.211         gcp30
         104.196.201.22          gcp40
         130.211.133.67          gcp50
         104.197.214.33          gcp60

補足

GCPのコンソールからSSHの画面を開いたり(ブラウザのウィンドウでSSHの端末画面が表示される)、その画面のメニューからファイルのアップロード・ダウンロードもできるのですが、全VMから纏めてファイルをコピーするなどのスクリプトを使いたいので、/etc/hostsを書き換えています。

なお、静的IPアドレスを使う手もあるのですが、無料枠では1リージョン内で使える静的IPアドレスが1個なので、ちょっと足りません。(現状、価格が一番安いus-west1, us-east1, us-central1の3つリージョンのそれぞれで、2 VMずつ動かしてます)