Contenu connexe Similaire à [Cloud OnAir] Google Cloud で実現するバックアップ ディザスタリカバリのベストプラクティス 2019年4月25日 放送 (20) Plus de Google Cloud Platform - Japan (20) [Cloud OnAir] Google Cloud で実現するバックアップ ディザスタリカバリのベストプラクティス 2019年4月25日 放送6. Cloud OnAir
● RPO(Recovery Point Objective:目標復旧時点)
○ 障害が発生してデータが失われた際に、どこまで障害発生時刻に近
い時間のデータを復旧目標にするかという指標
● RTO(Recovery Time Objective:目標復旧時間)
○ 障害が発生した際に、どれだけ早く復旧するかという指標
● RLO(Recovery Level Objective:目標復旧レベル)
○ RTO の範囲内にどの水準まで業務を復旧させるかという指標
バックアップ、リストアの非機能要件
11. Cloud OnAir
● 仮想マシン(VM)のサービス
● CPU やメモリなどのリソースを柔軟に変更可能
● ライブマイグレーションを標準実装。
Google 都合による計画停止無し
● SLA 99.99%
● 使えば使うほど下がっていく料金体系
● データは永続ディスクに保存
○ 予め冗長化されており、 RAID などの
ハードウェア耐障害性設計は不要
Compute Engine (GCE)
永続ディスクのバックアップを
どう取るか?
12. Cloud OnAir
Compute Engine の永続ディスクをバックアップする方法は
大きく分けて三種類
Compute Engine のバックアップ
バックアップ
永続ディスクまるごと
ファイル単位
スナップショット
イメージ
Cloud Storage に
コピー
14. Cloud OnAir
● 増分 & 圧縮保存のため、イメージ作
成に比べ短時間で作成でき、
かつ安価に保管
スナップショットの特徴 (1)
初回はフルバックアップのためサイ
ズが大きいが、二回目以降は増分
のみの取得のためサイズが小さい
https://cloud.google.com/compute/docs/disks/
create-snapshots
15. Cloud OnAir
スナップショットの特徴 (2)
● スナップショットを別リージョンに保存
可能(データ転送料不要)
● 更にスナップショットから直接
インスタンスを作成したり、
イメージに変換してインスタンスを作
成することも可能
Region A
Region B
Compute Engine
Persistent
Disk Snapshot
Persistent
Disk
Disk Image
17. Cloud OnAir
● スナップショットの整合性は、厳密には担保されない
○ 大量の書き込みが発生している最中にはなるべく実施しない
○ 厳密な整合性を必要とする場合、ディスクバッファをフラッシュしてからス
ナップショットを取得
■ 参考 (https://cloud.google.com/compute/docs/disks/create-snapshots?authuser=3&hl=ja)
○ Windows VM の場合、VSS スナップショットを使用して整合性を
確保(ブートディスクには不向き)
■ 参考
(https://cloud.google.com/compute/docs/instances/windows/creating-windows-persistent-disk-snapshot)
● ディスク単位でのバックアップのため、特定ファイルのみのバックアップ/ リスト
ア用途には利用できない
スナップショットの注意点
18. Cloud OnAir
Cloud Storage (GCS) とは?
● Restful API でオブジェクトを操作する
オブジェクトストレージサービス
● 様々な用途に応じたストレージクラス
○ 価格設定や可用性、性能が異なる
● 11 9’s の年間耐久性
● オブジェクトのバージョニング(世代管理)に対応
● 指定保持期間が過ぎたオブジェクトをより低頻度
アクセスのストレージに移行したり削除が出来る
ライフサイクル管理機能
● 高い可用性を活かしてファイルベースの
バックアップ先として活用可能
Cloud Storage を使ったファイルバックアップ
19. Cloud OnAir
● gsutil コマンドを使用
● 大量のファイルを転送する場合、
マルチスレッドコピーで転送効率を上げる
● 定期的に実行する場合はOS 側でスクリプトの
作り込みが必要
● その他、 GCS への保存に対応する
各種サードパーティの製品群を利用可能(→ P50)
GCE から GCS へのファイルバックアップ
# ファイル単位でのコピー
gsutil cp [FILE_NAME] gs://[BACKET_NAME]
# ディレクトリ単位でのコピー
gsutil cp -r [DIRECTORY] gs://[BACKET_NAME]
gsutil -m cp -r [DIRECTORY] gs://[BACKET_NAME]
20. Cloud OnAir
Compute Engine バックアップのベストプラクティス
リージョンA
リージョンB
Compute
Engine
Cloud
Storage
Persistent
Disk Snapshot
Persistent
Disk
● 世代管理を有効化(バージョニング)
うっかり上書きしてしまったファイルを取り出
せるように!
● 一定日数を経過したファイルは
削除もしくはNearline / Coldline に
退避(ライフサイクル)
バックアップの肥大化による使用料増をなる
べく少なく!
ファイル単位のバックアップは
gsutil コマンドで
Cloud Storage へ
永続ディスク全体のバックアッ
プはスナップショットで別リー
ジョンへ
● スナップショットスケジュール(BETA)で処理
を自動化
常に最新のスナップショットが取れている状
態を作る
21. Cloud OnAir
● 厳密な整合性を求める場合、取得前にディスクバッファをフ
ラッシュする(各 OS 側の機能)
● ディスク I/O が頻発する時間帯の実施は避ける
Compute Engine バックアップのベストプラクティス
方法
頻度・スケジュール
注意点
永続ディスク全体
ファイル単位
● イメージではなくスナップショットで取得
● 別リージョンに保管(DR 観点)
● Cloud Storage バケットに保管
● バージョニングを有効化して世代管理
● スクリプトが必要
永続ディスク全体
ファイル単位
● スナップショットスケジュールで自動的・定期的に実行
● RPO の要件を満たすよう取得頻度を調整
● スケジューリングは OS 側(cron 等)
永続ディスク全体
ファイル単位 ● HTTPS を使ったオブジェクト(≒ファイル)単位の転送のた
め、大量の転送を行う際はマルチスレッドコピーを使用するな
どの工夫が必要
25. Cloud OnAir
リストア方法のメリットとデメリット
リストア方法 メリット デメリット
バックアップから復元 ・元のインスタンス上に復元が可能
・自動的に2つのリージョンに保管
される
・復元ポイントはバックアップ完了の
タイミングになる
・別リージョンに復元する際は
別インスタンスになるため、 DB
クライアントからの接続先が変わる
バックアップ+
ポイントインタイム
リカバリ
・バイナリログに記録されている
任意のポジションを指定して
復元することが可能
・バイナリログには通常の
ストレージ料金が別途加算
・書き込みのパフォーマンスが若干低下
・リージョン障害には耐えることが
出来ない
・バックアップが必ず必要
・クローンを作成して復元するため、 DB
クライアントからの接続先が変わる
26. Cloud OnAir
シーン別 Cloud SQL バックアップのベストプラクティス
リージョン障害の際もバックアップからデー
タベースを復旧させたい
自動バックアップ
あの変更が加えられる直前のデータに
戻したい(リージョン障害は諦める )
自動バックアップ+PITR
32. Cloud OnAir
どうやって遠隔地にデータを同期する ?
というのは簡単だが ?
国際専用線や国際WAN は非常に高額 データ転送コスト
レイテンシーも大きく同期にも時間が掛かる レイテンシー
どうやって遠隔地にインフラを構築する ?
普段は稼働しないインフラなのに投資しなければならない 二重投資
そのインフラ、誰が面倒見るの? 監視、運用保守
いざ切り替える、となったとき手順は大丈夫? 切替オペレーション
そもそもどこにインフラを置く? ファシリティ
35. Cloud OnAir
クラウド特有の場所の概念と障害の影響範囲
リージョン ∋ ゾーン ∋ 各リソース
・asia-northeast1 (東京)
・us-west2 (ロサンゼルス)
・…
・asia-northeast1-a
・asia-northeast1-b
・asia-northeast1-c
・...
・GCE VM インスタンス
・Cloud SQL インスタンス
・...
障害の程
度
重度 軽度
・かなりの部分の障害を設計で緩和可能な領域
(HA 構成の採用やロードバランサー / フェイルオーバー
クラスタの活用、リージョナルリソースの活用など)
・都市 / 地方レベルの障害
・DR の設計が重要
36. Cloud OnAir
どうやって遠隔地にデータを同期する ?
DR にまつわる悩み
国際専用線や国際WAN は非常に高額 データ転送コスト
レイテンシーも大きく同期にも時間が掛かる.. レイテンシー
どうやって遠隔地にインフラを構築する ?
普段は稼働しないインフラなのに投資しなければならない 二重投資
そのインフラ、誰が面倒見るの? 監視、運用保守
いざ切り替える、となったとき手順は大丈夫? 切替オペレーション
そもそもどこにインフラを置く? ファシリティ
38. Cloud OnAir
どうやって遠隔地にデータを同期する ?
DR にまつわる悩み
国際専用線や国際WAN は非常に高額 データ転送コスト
レイテンシーも大きく同期にも時間が掛かる レイテンシー
どうやって遠隔地にインフラを構築する ?
普段は稼働しないインフラなのに投資しなければならない 二重投資
そのインフラ、誰が面倒見るの? 監視、運用保守
いざ切り替える、となったとき手順は大丈夫? 切替オペレーション
そもそもどこにインフラを置く? ファシリティ
39. Cloud OnAir
スナップショットを使えば、DR 発動時以外 VM インスタンスは不要
● スナップショットの保存コストのみ
● Cloud SQL インスタンスも同様
DR 環境に必要なファシリティは全て Google 側が所有
平常時は起動せず、ハードウェアの保守は全て Google が行うため、DR 発
動時の正常起動を担保するための運用監視は不要
DR もリソースオンデマンド
40. Cloud OnAir
どうやって遠隔地にデータを同期する ?
DR にまつわる悩み
国際専用線や国際WAN は非常に高額 データ転送コスト
レイテンシーも大きく同期にも時間が掛かる レイテンシー
どうやって遠隔地にインフラを構築する ?
普段は稼働しないインフラなのに投資しなければならない 二重投資
そのインフラ、誰が面倒見るの? 監視、運用保守
そもそもどこにインフラを置く? ファシリティ
いざ切り替える、となったとき手順は大丈夫? 切替オペレーション
43. Cloud OnAir
Cloud Deployment Manager
● リソースをテンプレートで管理し、
多数同時に並行デプロイ
● リソース間の依存関係を認識し、構築順序を自
動コントロール
● 構築内容をコミットする前に、実行結果を事前
確認することが可能(dry-run)
● よく使われる GCP サービスのほとんどに対応
復旧(構築)作業のテンプレート化
44. Cloud OnAir
Cloud Deployment Manager による復旧作業シナリオ(例)
Cloud Load Balancing
Compute Engine
Cloud SQL
復旧させる構成 前提:
・本番とは別リージョンに復旧させる
・別リージョンにスナップショットは取得済み
・Cloud SQL はバックアップ有効/取得済み
・障害が発生しているリージョンは1つ
・テンプレートは記載済み
事前準備
1. スナップショットからブート
ディスクイメージを作成
2. ディスクイメージに
合わせてテンプレートを修
正
デプロイ
3. Deployment Manager で
テンプレートから
デプロイ
切替準備
4. Cloud SQL インスタンスに
バックアップから
データを復元
5. アプリからの DB 接続先を
変更
切替
6. DNSの切替
45. Cloud OnAir
どうやって遠隔地にデータを同期する ?
DR にまつわる悩みが解決
国際専用線や国際WAN は非常に高額 データ転送コスト
レイテンシーも大きく同期にも時間が掛かる レイテンシー
どうやって遠隔地にインフラを構築する ?
普段は稼働しないインフラなのに投資しなければならない 二重投資
そのインフラ、誰が面倒見るの? 監視、運用保守
そもそもどこにインフラを置く? ファシリティ
いざ切り替える、となったとき手順は大丈夫? 切替オペレーション
47. Cloud OnAir
オンプレミスにおける障害の影響範囲
地方 ∋
ビル /
データセンター
∋ 各リソース
・首都圏、近畿圏、中京圏 等
・自社ビル
・コロケーション事業者の建屋 等
・物理サーバ、仮想サーバ
・ストレージ機器、ネットワーク機器 等
障害の程
度
重度 軽度
・冗長化
(RAID/FTサーバ/HA等)
・ファシリティが冗長化されていない環境では、
ファシリティが停止した時点でデータ復旧の手段を失う
・バックアップセンター等ファシリティレベルの冗長化が必須
49. Cloud OnAir
VERITAS - NetBackup
https://www.veritas.com/ja/jp/solution/google-cloud-pla
tform
CARONITE
https://www.carbonite.com/
CloudBerry Lab - CloudBerry Backup
https://www.cloudberrylab.com/
Actifio
https://www.actifio.com/technology/integrations/google
-cloud/#sthash.9kvuFZHF.dpbs
GCP へのデータバックアップをサポートする製品群
Pure Storage
https://www.purestorage.com/products/objectengine.html
rubrik
https://www.rubrik.com/partners/technology-partners/goo
gle-cloud-platform/
DELL EMC
https://www.dellemc.com/en-us/data-protection/cloud.ht
m
NetApp
https://www.netapp.com/us/cloud-marketplace/google-cloud-p
latform.aspx
他にも多くの製品が Google Cloud へのデータバックアップをサポート
https://cloud.google.com/storage/partners/
50. Cloud OnAir
オンプレミス環境の DR 対策は、クラウドに移行済みの環境と
比べてハードルが高く、全てをオンプレミスで担うのは困難
データのバックアップ先など部分的にクラウドを取り入れることで、安価かつ
堅牢なバックアップ環境が手に入る
オンプレミスから GCP へのデータバックアップをサポートする
サードパーティ製品を活用すれば、データ移行がより容易に
ここまでのまとめ
52. Cloud OnAir
耐障害性を高める GCP の機能やサービス
機能名
リージョン永続ディスク
(BETA)
複数ゾーン間でレプリケーションされた永続ディスク
単一ゾーン障害の際には強制的にスタンバイ VM にアタッチすることで
データを引き継いでサービスを継続することが可能
Compute Engine と Kubernetes Engine で利用可能
Cloud Load Balancing 単一のエニーキャストアドレスが世界中のリージョンに分散されたバックエ
ンドインスタンスのフロントとして機能する、グローバルなロードバラン
サー。バックエンドを複数リージョンにまたがって配置しておけば、リージョ
ン単位での障害の際にもサービスを停止する
こと無く提供し続けることが可能