GCPインスタンスのスナップショットを定期的に取得する

GCPインスタンスのスナップショットを定期取得・削除してみる GCPで動作するインスタンスのスナップショットはGCPのコンソールからポチポチやると 簡単に取れたり不要なものを削除したりできるのだけれど、毎日コンソールを開けて手でポチポチやるのは大変なので自動化する。 その時のメモ。 ServerlessFrameworkでは、GoogleCloudFunctionも対応してるのでこれでいけるんじゃないかと思ったのだがeventがhttpしか選択できず cron的な使い方ができないので断念。。。 Google Function Events - Serverless.com 楽に実装できそうなLambdaに逃げることに。 GCPを操作するライブラリはNodeJSで書かれたgoogle-cloud-nodeを使用しました。 GoogleCloudPlatform/google-cloud-node - Github 下記のドキュメントにサンプルコードがあるのでそれを利用してます。 スナップショットの作成 https://googlecloudplatform.github.io/google-cloud-node/#/docs/compute/0.7.1/compute/disk?method=createSnapshot スナップショットの削除 https://googlecloudplatform.github.io/google-cloud-node/#/docs/compute/0.7.1/compute/snapshot?method=delete 実際に書いたコード 328/gcp-backup-cron - Github 1つのプロジェクトだけで利用するのではなく、複数のプロジェクトにも使い回しができるよう プロジェクト情報やインスタンス名は全て環境変数(serverless.yml)に記載するように気を使ってます。 インスタンスのスナップショットはポンポン消しちゃって大丈夫なのかなって疑問に思ってたんですが、 削除時に依存関係のあるデータは全て次のスナップショットに移動されるそうです。 スナップショットを削除する - GoogleCloudPlatform »