views4GCPのストレージサービスについてまとめてみた。Exp:2509はじめまして!SRE所属です、よろしくお願いします。~スナップショット編~本記事ではGCEを運用するにあたって、最低限まずはやっておくべきことを紹介します。1インスタンス作成2スナップショット作成3インスタンス障害発生4インスタンス復旧5復旧できたか確認まとめGCEではOSから上のレイヤーは利用者の責任範囲GCPではセキュリティとマネジメントを、Googleと利用者で共有するモデル(責任共有モデル)を取っています。Engine)の場合、ネットワークやハードウェアなどの下層レイヤーはGoogleの責任範囲、OSから上のレイヤーは利用者の責任範囲です。GCEではOSから上のレイヤーは利用者自身で運用する必要があります!!GCEインスタンスでも、カーネルパニックやファイルシステム破損など、OS起因の障害は発生する可能性があります。障害が発生すると大変です。インスタンスの復旧ができなくなり、急いでGoogleサポートに問い合わせしても「サポート範囲外となってしまいます」と言われ。いう状態に陥ってしまうかもです。GCE運用の最初の一歩として、まずは障害対策をしておきましょう。最低限の障害対策1スナップショットでバックアップを取得スナップショットは、インスタンスが使用しているディスクのバックアップを取得する機能です。(参考GCEのスナップショットバックアップ機能詳細とお得な使い方!)2回目以降スナップショットを取得する場合は、前回との差分のみを取得するため、短時間かつ低コストでバックアップできるのが特徴です。Storage)上に保管されます。スナップショットを取得しておくことで、万が一インスタンスに障害が発生した場合でも、スナップショットからインスタンスの複製を新たに作成することで復旧できます。ここで注意していただきたいのは、スナップショットはあくまでディスクのバックアップであることです。復旧前と同じインスタンスを複製するには、ディスク以外のインスタンスに紐づく値(インスタンス名、ネットワーク、セキュリティなど)も、復旧前のインスタンスと同じにする必要があります。複数ディスクを使用している場合は、それぞれのスナップショットを作成する必要があります。その他、便利機能としてスナップショットのスケジュール機能というスナップショットを定期的に自動で取得する機能があります。(2019/05/16時点でベータ版)自動化スクリプトを作成して、タスクスケジューラーを利用して定期的にスナップショットを取得する、などの対応の手間が省けますのでお勧めの機能です。スナップショットの設計をするにあたっては、スナップショットのベストプラクティスも参考にしてください。2復旧計画と手順書を作成クラウドだから運用設計は必要ない、という考えは誤りです!スナップショットから復旧する手順をあらかじめ作成しましょう。本番環境の場合、障害復旧は1分1秒でも早く実施したいはずです。手順が確立されていないと、テンパること間違いなしです。手順をあらかじめ作成しておけば、復旧までの時間をなるべく短くできます。手順書のテストをしておらず、実際に障害が起きても手順書が役に立たない!なんてことがないように、テストも忘れずにしておきましょう。GCEであればインスタンスの作成/削除やスナップショットの作成などが簡単にできますので、テストも楽チンです。気になるのはお値段です。スナップショットは1ストレージ料金と2ネットワーク料金がかかります。(公式ドキュメント)1月額ストレージ料金ストレージ料金は設定ディスクではなく、使用したディスクに対してのみ請求がかかります。公式ドキュメントの例をお借りすると、5TBの設定ディスクのうち、2TBを使用していたとすると、2TB分の料金のみ請求されます。2回目以降は変更された増分のみの料金がかかります。(低コスト!)2ネットワーク料金スナップショットとソースディスクのロケーションが同じ場合はネットワーク料金はかかりません!(ディスクのロケーションとは異なる場所でスナップショットを作成したり復元したりする場合はネットワーク費用が発生します)3試算してみるディスクもスナップショットもリージョンは東京(asia-northeast1)とします。ディスク使用量が1000G、差分が1日50G発生(ディスク使用量は変化なし)、7日でローテートすると仮定すると、使用量は1300GBです。料金計算ツールを用いて確認すると、1年間で約60,000円程度でした!手間もそれほどかからず、お値段もお手頃ですので、是非とも活用したいところです。スナップショットのイメージを掴んでいただくために、コンソールからスナップショットを取得して、インスタンスを復旧してみます。(公式ドキュメント)1インスタンス作成スナップショットを取得するためのインスタンスを作成します。インスタンスにsshログインし、正しくスナップショットが取得できているか確認する用のファイルを作成します。lssnapshot.txt2スナップショット作成スナップショットをコンソールから作成します。スナップショットの画面から「スナップショットの作成」を選択します。ソースディスクに先ほど作成したインスタンスを指定して作成します。3インスタンス障害発生インスタンスで障害が発生したと仮定し、インスタンスを削除します。先ほど作成したスナップショットから、インスタンスを作成します。スナップショットの画面からスナップショット名を選択します。スナップショットの詳細が表示されますので、「インスタンスの作成」を選択します。ブートディスクにスナップショットが指定されているのが確認したのち、インスタンスを作成します。ブートディスク以外の設定は変更可能ですので、名前やサービスアカウントやファイヤーウォールの設定などは、復旧前のインスタンスで指定した値を設定する必要があります。スナップショットが取得できているか確認するために、インスタンスにsshログインしファイルがあるかどうか確認します。lssnapshot.txtファイルがありますので、正しく復旧できていることがわかります。まとめGCE運用の第一歩として、障害対策を紹介しました。(スナップショットの取得はあくまで最初の一歩です。GCEを運用するにあたっては、冗長化、モニタリング、ロギング、セキュリティなど考慮することが他にもあります。