新人SEの松浦です。今回Cloud Composerでスナップショットを用いて環境を複製したので、その作業をまとめておくことにしました。
Cloud Composerとは?
Cloud Composer は、フルマネージドのワークフロー オーケストレーション サービスです。
クラウドとオンプレミス データセンターにまたがるワークフロー パイプラインの作成、スケジューリング、モニタリング、管理ができます。
https://cloud.google.com/composer/docs/composer-2/composer-overview?hl=ja
対象
Cloud Composerで同じ環境の予備を作成したい人
Cloud Composerの環境バージョンアップ等の動作確認のために複製した環境を使いたい人
スナップショットをとる前の準備
- DAGが停止していることを確認する。
環境のスナップショットをとる際に、DAGの実行状態なども保存するのでスナップショットを読み込んだときにDAGが重複実行されてしまう可能性があります。
以下のトグルスイッチがオフになっていることを確認してください。

- DAGのタスクが停止していることを確認する。
DAGを停止しただけでは、まだ内部でタスクが動いている可能性があります。
Runsの列を確認してsuccess,failed以外のアイコンがないかマウスオーバーして確認してください。

こちらの二つを確認してから、スナップショットを取得するようにしてください。
- スナップショット読み込み先の環境を作成しておく。
環境のスナップショットは、環境そのものは保存しません。
そのため、複製元の環境と同じ構成の環境を作成しておく必要があります。
以下のコマンドの環境名、リージョン、バージョン、環境用サービスアカウントを指定して作成してください。
#環境の作成
gcloud composer environments create 環境名 \
--location リージョン \
--image-version バージョン \
--service-account 環境用サービスアカウント
スナップショット取得
- スナップショットを取得。
複製したい環境のスナップショットを作成します。
取得にかかる時間はおおよそ20分ほどですが、DAGの数などによって前後します。
以下コードの環境名を複製したい環境、環境のリージョン、スナップショットの配置先を書き換えて、実行してください。
gcloud beta composer environments snapshots save 環境名 \
--location 環境のリージョン \
--snapshot-location "スナップショット配置先パス"
スナップショット読み込み
- スナップショットの読み込み
事前準備で作成しておいた環境にスナップショットを読み込む。
以下コードの読み込み先の環境、環境のリージョン、作成されたスナップショットのパスを書き換えて、環境に読み込んでください。
gcloud beta composer environments snapshots load 読み込み先の環境 \
--location 環境のリージョン \
--snapshot-path "作成されたスナップショットのパス"
スナップショットの読み込みが完了したら、DAGなどが勝手に動いていないかを確認してください。
まとめ
環境のスナップショットの利用方法について紹介いたしました。
スナップショットの動作について知っておけば、アップデートやメンテナンスの時に環境が破損するなど万が一の時の予防線になると思うので、ぜひ使いこなしてみてください。
ありがとうございました。
Google および Google Cloud Platform™ service は Google LLC の商標であり、この記事は Google によって承認されたり、Google と提携したりするものではありません。
コメント