Google Cloud で GPU インスタンスを使用して、機械学習関連のサービスを実行しています。Google Cloud には、GPU インスタンス用の予定外のメンテナンス プランがあります。インスタンスがメンテナンスのために停止する前に、Google Cloud API はインスタンスが停止される 1 時間前にこのインスタンスに通知を送信します。
GPU インスタンスの名前が「vm1」であるとします。「vm1」が後でメンテナンスを受けるという通知を受け取ったら、バックアップ GPU インスタンス「vm1-duplicate」を起動し、クライアントへのサービスがこのメンテナンスの影響を受けるようにします。そして、「vm1」のメンテナンスが完了したら、「vm1-duplicate」を停止して、追加コストが発生しないようにします。
Google Cloud で、何らかの条件/トリガー/イベントに基づいて VM の自動起動/停止をプログラムするエレガントな方法はありますか?
答え1
超簡単な解決策: VM に gcloud をインストールし (すでに存在しているはずです)、サービス アカウント [1] を作成し、小さなシェル スクリプトを作成して、15/30 分ごとに cron で実行します。
このスクリプトはイベントのhttpエンドポイント[2]を監視し、gcloudのコマンドラインを介してVM内から新しいVMを再起動します。自動再起動を停止し、新しいVMを起動したまま実行します。
動作する場合は、スクリプトがすでに配置され、cron が設定されている独自のイメージを作成することを検討してください。そうすれば、再生成が簡単になります。
[1] 必須ではないが、VMに資格情報を入れるのを避けるため
[2]https://cloud.google.com/compute/docs/gpus/gpu-host-maintenance