GCEのプリエンプティブサーバの障害収束

2018-10-16 13:00:08

 今日プリエンプティブインスタンスを起動したら、何事もなかったかのように動作しました。ということで障害は復旧したようです。生涯は二ヶ月に一回ぐらいのペースでこれが起こっています。その頻度で障害が起こると、気軽にプリエンプティブインスタンスを利用できません。勘弁して欲しいです。


 このからみで障害発生時にインスタンスを移動させるためのスクリプトを組んでいたのですが、その副産物でスナップショットを作成しつつ、指定した数だけ残すというスクリプトを作りました。

#!/bin/bash
INSTANCE=$1
SNAPCOUNT=3
zone=`gcloud compute instances list --filter=$INSTANCE --format="value(zone)"`
if [ -z "$zone" ]; then
 echo "$INSTANCE"のインスタンスがありません
 exit
fi
gcloud compute disks snapshot $INSTANCE --zone=$zone --snapshot-names=$INSTANCE-`date "+%Y%m%d%H%M%S"`
gcloud compute snapshots list --filter=$INSTANCE --format="value(name,creationTimestamp)" --sort-by=~creationTimestamp |cut -f 1| sed "1,${SNAPCOUNT}d" |\
while read name;do
        gcloud compute snapshots delete --quiet $name
done

 これを一日に一回ぐらいcronで回せば、指定した数の日数分だけバックアップを遡ることが出来るようになります。指定数を超えたらそのぶんは削除するので、スナップショットをとりすぎて無駄に課金されることはありません。

 スナップショットは差分バックアップなので、ある程度増えても問題はありませんが、作りすぎるとやっぱり無駄は生じます。