views4GCPのストレージサービスについてまとめてみた。アクセンチュアにて5年間システム開発を経験。CP300のアジア初取得者。Google基盤上でのシステム開発の普及を目標として日々活動中。TweetShareHatena注意この記事は2017年7月20日に更新されたもので、内容が古い可能性がありますのでご注意ください。Engine(GCE)では標準のバックアップツールとしてスナップショット機能が提供されています。今回はそのGCEにおけるデフォルトのバックアップ機能と言えるスナップショット機能の基本的な特徴や性能・価格などの詳細と、少し類似した機能にも見えるイメージとの違いやお得な使い方などをご紹介します。GCEを運用するには必須となってくる機能であるスナップショットについて、是非ここで理解しておいてください。目次GCEのスナップショットの主な特徴スナップショットとイメージの比較スナップショット機能のお得な使い方!GCEのスナップショットの主な特徴GCEのスナップショット機能の特徴は以下になります。取得にあたっては、通常のファイルコピーでは無く、非常に高速に取得可能です。あることからも世代管理が自動的にされ、必要な世代を選んでリストアすることも可能です。グローバルで利用可能(ディザスタリカバリ対応可能)取得したスナップショットはリージョンをまたいで複数箇所に保存され、どこのリージョンからでも利用(リストア)可能です。これを利用した高速なファイル転送も可能です。スナップショットを取得することで実質的にはリージョンごと壊滅するような事態においてもデータ損失無く安全に保管出来ます。他機能と同様、管理コンソールからWebUIで簡易に取得・リストアすることも出来ますし、コマンドやAPIによる自動化も可能です。GCEのスナップショット機能の公式の詳細機能説明については以下を参照ください。想定される用途としてそもそも違うのですが、GCEには同じような用途にも使えそうなイメージ機能がありますが、そのイメージ機能との比較をしてみます。イメージ機能はイメージテンプレートなどとして容易に起動しやすいようなベースのイメージを定義する機能として存在し、オートスケールする際のベースのイメージとして利用するためのものです。ディスクのイメージをバックアップ(取得する)と言う意味ではかなり似た機能になります。以下のように比較してみるとやはり普通のバックアップ用途としては金額的にも普通はスナップショットを利用するべきですね。いずれも対象はディスク単位なので、複数ディスクを厳密な同期を取って取得は困難。特段大きな差が無いかと思います。イメージの方が相当高額、またイメージは割当たディスク分まるまる必要だが、スナップショットは利用している領域分のみ。ちなみに通常のディスク(東京リージョン)は$0.052、SSDは$0.221ですのでディスクにコピーするよりスナップショットは安いです。スナップショットは完全にプロジェクト内に閉じた利用しか出来ない。どちらも一応可能だが、論理整合性は自分で取得する必要あり。スナップショットにはWindowsの場合VSSに対応してます。インスタンステンプレートとして指定可能なのはイメージのみ※VSS(ボリュームシャドーコピー)はWindowsの機能で論理的整合性を保つことでバックアップデータからの起動を保証出来るものです。スナップショット機能のお得な使い方!実はスナップショットは単純に大容量データのコピー機能として非常に優秀です。GCEのリージョン間をコピーするケースについて速度・費用面で大きなメリットがあります。以下に実際、東京リージョンから米国東リージョンにコピーを試した際の結果を示します※rsyncによるコピーにおいて、200GB、300GBの秒数は想定です。実行環境としては、コピー元・先ともにDebianでn1-standard4の1000GバイトのSSDを追加で割り当てて計測してます。1000Gバイトのディスクをスナップショットを取って、US側のサーバ側にディスクとして追加する、という手順でコピーすると、300Gバイトの実データをコピーするのに586秒で済んでしまいます。これは秒あたり約1950メガバイトという相当な転送速度に相当します。単純なrsyncでも100メガバイト/秒でUS迄転送できてるのですからそれでも相当なものですが、さ、さらに、ここがポイントです。実はrsyncによりリージョン間のコピーを行うと、データ転送量がかかるのです。これはインターネット経由と同じ課金になるので1Gバイトあたり0.12ドルかかります。100Gの転送を行うと1200円かかってしまうのです!しかし、スナップショットを利用するとこれがタダ!驚きですが、これが事実なんです。厳密にはコピーしている間のスナップショット等の保存料が必要ですが、コピーしている間だけとかだとほとんどかかりません。Driveを経由するとかすると同じ効果(大陸間跨ぎの費用がかからない)があるのですが。言うと、rsyncと比べると取得元先いずれのサーバのCPUリソースも消費しないという点です。バックアップ取得する際に通常はrsyncコマンドだとCPU負荷はそれなりに上がりますが、スナップショット取得においてはほとんど負荷となりません。繰り返しますが、スナップショットコピーは普通のrsyncと比べて、速度は5倍(300GBのケース)!費用はタダ!です。使わない手は無いでしょう。ちなみに、私が作成したコピーツールのソースも以下に公開しておきます。エラーハンドリングは引数以外考慮してないので、実務に使うにはご自分で工夫してください。使い方は簡単で、引数に、コピー元のディスクとコピー先のインスタンス名(ディスクとインスタンス名であることに注意)を指定するだけです。するとスナップショット取得、コピー先でディスク作成、コピー先のインスタンスにマウント、というところ迄自動的に行います。一覧からゾーンを探して動作します。クラウドシェルからの実行を想定してますが、そうでない場合はプロジェクトなどはデフォルトを設定しておく必要がありますのでご注意ください。0以上、GCEにおける基本中の基本であるスナップショットバックアップについて詳細とおいしい使い方について整理させてもらいました。皆様もGCPをご活用ください。使い方が分からない、不安だ、効率的な使い方は?などの不明点がありましたら、日本唯一のプレミアパートナー(2017年6月時点)であるクラウドエースにお問い合わせください。