[ GCP ] メガネと学ぶ GCP (5) スナップショットとイメージを操作する

[ GCP ] メガネと学ぶ GCP (5) スナップショットとイメージを操作する

本記事では、VMインスタンスのスナップショットとイメージを生成する方法、及び作成したスナップショットとイメージから新しいVMインスタンスを作成する方法についてまとめます。

インスタンスのスナップショットの取得

スナップショットってなに?

一般的にスナップショットとは、ある時点でのソースコードやファイル、データベースファイルなどの状態を抜き出したもののことです。一般的にはバックアップなどに使用されます。
GCPのComputeEngineでは、スナップショットの対象はディスクになります。

※参考元
https://www.idcf.jp/words/snapshot.html

Q. 毎回ファイルを丸ごと抜き出していたら、莫大な容量になるのでは?

GCPのComputeEngineのスナップショット機能では、初回のみデータ全量がスナップ対象となりますが、2回目以降は前回からの増分のみをスナップします。従ってスナップショット時のデータは全て抜き出せていますが、実際に都度取得しているデータ量はデータ全量とはならず容量を無駄に圧迫することはありません。

 

 

ではまずは、スナップショットを取得して見ます。

(1) GCPコンソールのメニュからComputeEngineを選択し、その中の「スナップショット」をクリックします。

(2) スナップショットの管理画面に遷移するので、「スナップショットを作成」をクリックします。

(3) スナップショットの設定をいくつか行います。

  • 「ソースディスク」には、スナップショットを取る対象のディスクを指定します。スナップショットはディスクに対して取得されます。
  • 「場所」にはスナップショットを保存するリージョンを指定します。マルチリージョンを選択すると取得されたスナップショットが複数のリージョンに保存され、シングルリージョンではディスクが存在するリージョンにスナップショットが保存されます。

設定を終えたら、「スナップショットを作成」を押下します。

(4) 少し待つと、スナップショットが作成されます。

 

スナップショットの増分取得

同じディスクに対してスナップショットを取る場合ですが、新規にスナップショットを作成するのと同様の操作を行います。ただし、以下の点に留意が必要です。

  • 対象ディスクは、初回にスナップショットをとったディスクと同様のものを指定する。
  • 保存リージョンは、初回にスナップショットを保存した場所と同様のタイプを指定する。

初回にシングルリージョン保存をして、増分はマルチリージョン保存にするなどはできないようです。(後者が新規スナップ扱いされました)

上記操作を行って増分スナップショットを取ると次のようになります。
今回は何も操作していないので増分が0です。0であるということは、前回のスナップと比較した上でスナップを取得していることがわかります。

 

スナップショットから新規インスタンスを作成する

取得したスナップショットはバックアップとして使える他、新規に作成するVMインスタンスのディスクに指定することもできます。

ここでは新規にインスタンスを立ち上げるとき、先ほど取得したスナップショットをディスクに指定して見たいと思います。

 

(1) GCPコンソールのメニューからComputeEngineを選択し、VMインスタンスをクリックします。

(2) 新規インスタンス作成のボタンをクリックします。

(3) ブートディスク項目の「変更」ボタンをクリックします。

(4) 「スナップショット」タブで過去に取得したスナップショットを選択できるので、対象のスナップショットを指定します。

(5) インスタンスを作成すると、スナップショット元のインスタンスと同様のディスク内容を持ったインスタンスが生成されます。

 

(6) コピーのベースになったtest1インスタンスに作成したファイルが、スナップショットベースで作成した test2-based-on-snap インスタンスにも存在することから、間違いなくディスクがコピーされていることがわかります。

 

インスタンスのイメージを作成する

イメージってなに?

イメージファイルとは一般的に、記憶装置に記録されたデータをファイルやディレクトリ構造を保ったまま保存したデータのことです。

GCPのComputeEngineでは、インスタンスの構成なども含めてバックアップされたファイルのことをイメージと言います。

スナップショットとの違いは?

スナップショットとの違いは保存データの範囲です。スナップショットはインスタンスのディスクについてのみバックアップを取得する機能ですが、イメージはさらに多くの情報を保存します。

※参考
https://www.weblio.jp/content/%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB

 

ではイメージを作成して見ます。

(1) GCPコンソールのComputeEngineメニューを選択し、「イメージ」をクリックします。

(2) イメージ管理画面の上部にある「イメージを作成」ボタンをクリックします。

(3) 作成するイメージについての設定を行います。

  • ソース
    イメージのベースになるソースの種類を選択します。ディスク、スナップショット、イメージ、CloudStrageファイルが選択できます。なお起動中のインスタンスのディスクを選択する場合、停止させてからイメージを生成するのが望ましいようです。
  • ソースディスク(名称は可変)
    「ソース」項目で設定したタイプに従い、実際のソースファイルを選択します。

(4) 作成ボタンを押すことで、イメージが生成されます。

 

イメージからインスタンスグループを作成する

イメージからインスタンスを作成する方法は、スナップショットからインスタンスを作成する方法と変わりません。ので割愛します。

ただインスタンスグループのテンプレートを作るときにはスナップショットが使えずイメージのみ利用可能だったので、そこだけ簡単に確認しておきます。

(1) GCPコンソールのComputeEngineメニューを選択し、「インスタンステンプレート」をクリックします。

(2) 「インスタンステンプレートを作成」をクリックします。

(3) 「ブートディスク」項目の「変更」ボタンをクリックします。

(4) 「カスタムイメージ」タブを選択し、作成したイメージにチェックを入れます。

(5) 「作成」ボタンを押下し、テンプレートを生成します。

(6) ComputeEngineメニュの「インスタンスグループ」を選択し、グループ作成画面を開きます。

(7) 作成したテンプレートを指定し、「作成」ボタンをクリックします。

(8) イメージをベースにしたテンプレートを使用したインスタンスグループが作成されます。

※ インスタンスグループの作成詳細については過去の記事で扱っているので、操作詳細は割愛しています。

 

まとめ

今回は、インスタンスのスナップショットとイメージの操作についてまとめて見ました。

バックアップという括りでは両者は同じですが、ディスクの中身だけをコピーしたいのか、そうではないのかで使い分けが必要になりそうですね。

以上です。ここまでご覧いただき、ありがとうございました!

 

参考

https://cloud.google.com/compute/docs/disks/create-snapshots?hl=ja
https://cloud.google.com/compute/docs/images?hl=ja
https://www.apps-gcp.com/gce-snapshot-backup/
https://www.skyarch.net/blog/?p=11522
https://www.nyamucoro.com/entry/2018/11/23/005317

GoogleCloudPlatformカテゴリの最新記事