Google Cloud の外部静的 IP が使用されていない場合は通知を受け取るため、それらを解放してコストを節約できます。
Google Cloud Platform (GCP) の請求書を確認していて、次のことに気づきました。
それはGoogleのせいではなく、私のせいです。静的 IP を予約しましたが、VM を削除した後に解放するのを忘れました。それは私だけではないと思います。
GCP コンソールを見回しましたが、静的 IP が使用されていない場合に警告するオプションが見つかりませんでした。製品の機能に関するリクエストかもしれません。
しかし、私は過ちを繰り返すつもりはありません。
Google Cloud SDK
が提供する
gcloud
CLI のおかげで、スクリプト内でほぼ何でも行うことができます。毎日実行され、静的 IP が使用されていないときに通知するスクリプトを作成しようと考えました。通知を受け取る方法は複数ありますが、最初の便利な方法は電子メールです。しかし、私はメールサーバーを実行していないので、代替手段を見つける必要がありました。
数分以内に検索すると、 Pushbullet が 見つかりました。これは、Chrome、Firefox、Safari、Opera、Android、iOS、および Windows にアラートをプッシュするために使用できる通知システムです。ほとんどすべて。他に何が必要ですか?
サーバー上でメール サーバーが実行されていない場合、または gcloud コマンドを実行したい場所にある場合に通知を受け取るには、Pushbullet が前提条件になっていると推測できます。
Pushbullet に移動する場合は、無料アカウントを作成し、通知を受け取る場所を設定して、[設定] に移動してアクセス トークンを生成します。
アクセス トークンが準備されており、サーバー上で gcloud コマンドが機能していると仮定します。
これが小さなスクリプトです。以下の内容のファイルを作成します。たとえば
<span class="s1">gcp-unused-ip-monitor.sh</span>
します。
#!/bin/bash
if gcloud compute addresses list | grep EXTERNAL | grep RESERVED ; then
curl -u $Access_TOKEN: https://api.pushbullet.com/v2/pushes -d type=note -d title="Google Cloud IP NOT_INUSE" -d body="Some external IP is not in use"
else :
fi
$Access_TOKEN を 実際の値で更新することを忘れないでください。
ファイルを保存し、実行権限を付与して実行可能にします。
chmod 755 gcp-unused-ip-monitor.sh
スクリプトを手動で実行してアラートを確認します。未使用の IP がある場合は、アラートが表示されます。
上記の通知は、Pushbullet をアラートに設定した Chrome からのものです。ただし、上で述べたように、アラートをモバイル デバイスまたは別のブラウザにプッシュすることができます。お好みのものをお選びください。
これで、動作するスクリプトが完成しました。次に、これを毎日自動的に実行する必要があります。
スクリプトを毎日実行するようにスケジュールするには、UNIX ベースの OS で利用できる Crontab を使用しましょう。
crontab -e で crontab を編集し、以下を追加します
0 0 * * * $PATH/gcp-unused-ip-monitor.sh > /dev/null
$PATH をスクリプトが配置されているパスに更新します。上記の cron エントリは、毎深夜にスクリプトを実行します。好みに応じて実行時間を調整できます。
どれくらい簡単ですか?
アラートを受け取ったら、GCP コンソールに移動し、NOT IN USE IP を確認して解放できます。
この小さなスクリプトで少しでも節約できることを願っています。
