クラウド エンジニアブログ

AWS環境におけるスナップショット管理の基本とベストプラクティス

2024年10月8日掲載

はじめに

ソニービズネットワークス 開発本部の池⽥です。

AWS環境でEC2インスタンスを運⽤する際、スナップショットの管理は⽋かせません。 皆さんは、EC2の管理においてどのようにスナップショットを活⽤していますか︖

スナップショットは、データ保護や復旧のための重要な⼿段であり、特にシステム障害やデータ損失が発⽣した場合に、データ保護と復元の⼿段として機能します。 弊社のお客様でもマルウェア感染によってデータが暗号化されてしまうトラブルがありましたが、予めスナップショットを取得していたことで迅速に復旧ができたケースもございます。

今回は、スナップショットの役割やAWSコンソールを使った管理⽅法、弊社が提供しているクラウドポータルにおける管理⽅法、について詳しく解説します。

スナップショットの基本について

Amazon Elastic Block Store (EBS)スナップショットは、EBSボリュームの状態を保存するためのバックアップです。

初回はフルバックアップとなり、以降のスナップショットは増分バックアップ形式で、変更部分のみが保存されます。 フルバックアップのバックアップ容量は、ソースボリュームのバックアップ容量ではなく、バックアップするデータのバックアップ容量によって決まります。 同様に、フルバックアップに関連するストレージコストは、ソースボリュームのバックアップ容量ではなく、スナップショットのバックアップ容量によって決まります。

例えば、下の図のように10GBのデータを使⽤しているボリュームサイズが15GBのAmazon EBSボリュームの最初のスナップショットを作成します。 ここで取得されるフルバックアップのバックアップ容量は10GBとなり、10GB分のスナップショットストレージの料⾦が請求されます。 これは、増分バックアップにおいても同様となります。また、この仕組みは、バックアップ容量を抑えつつ、⾼効率なデータ保護を実現することができます。

スナップショットはAmazon S3に保存されており、S3の⾼い耐久性(99.999999999%)によってデータの安全な保管が保証されています。 これにより、データが安全に保護され、リストアできる環境を整えることができます。

Amazon Elastic Block Store (EBS) スナップショットのイメージ

https://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/ebs-snapshots.html

EBSスナップショットとAmazon マシンイメージ(AMI)の違い

スナップショットの基本についてご説明させていただきましたが、お客様から度々、「AMIではなく、なぜEBSスナップショットでバックアップを取得するのか︖」というご質問を受けますので、次にそれぞれの違いについてを下記でご説明させていただきます。

まず結論になりますが⼤きく違う点は、EBSスナップショットとAMIでは運⽤⽅式が異なります。 AMIとは、インスタンスの必要情報がまとめられたテンプレートのようなもので、OSやアプリケーションの領域も含めた、インスタンスのイメージというものを取得できる機能です。 AMIからインスタンスを作成する場合、”複製”という⽅式になり、イメージと同様のインスタンスを⽴ち上げたい場合に使⽤します。イメージからインスタンスを複数⽴ち上げることも可能です。もちろん別のインスタンスのため、IPも変更されます。

⼀⽅、EBSスナップショットは”復元”という運⽤⽅式になります。 取得したスナップショットからディスクを”復元”し、復元したディスクをインスタンスに対してアタッチすることができます。 そのため、障害発⽣時に既存インスタンスのIP等を変更せずに、復旧することが実現できます。

上記からEBSスナップショットとAMIでは、複製と復元という運⽤⽅式で違いがありますので利⽤⽤途によって使い分ける必要がございます。

AWSコンソールでのスケジュール・リストア⼿順

では、実際にどのようにしてスナップショットを取得するのか︖、障害時にはどうリストアを⾏うのか︖予期せぬ障害やデータの破損が発⽣した際に、迅速にデータを復元できる⼿段を確保しておくことは、ビジネスの継続性を⾼めるために重要となります。

AWSコンソールでは、スナップショットの作成、スケジュールの設定、リストアを⾏うことが可能です。 Amazon Data Lifecycle Manager (DLM) を使⽤すると、スナップショットの取得を⾃動化でき、運⽤コストの最適化・ビジネスの継続性にもつながります。 また、DLMではpre(事前)・post(事後)スクリプトをSSMドキュメント等を⽤いて実⾏することができるため、スナップショットを取得する前に停⽌しなくてはいけないミドルウェアやソフトウェアがある場合においても対応することが可能です。

AWSコンソールにおいてのスケジュールの設定、リストアの⽅法について下記でご紹介させていただきます。

AWSコンソールからのスケジュール設定⼿順

  1. AWSコンソールにログインし、DLMのダッシュボードにアクセスします。
    AWSコンソールからのスケジュール設定手順-1
  2. 新しいライフサイクルポリシーの作成画面に遷移します。
    ターゲットリソース、説明、IAMロールなど必要な項⽬を⼊⼒し、”次へ”を押下します。
    AWSコンソールからのスケジュール設定手順-2
  3. スケジュールの設定画面に遷移されます。
    設定項⽬は下記となり、それぞれを適当に⼊⼒し、”ポリシーを確認”を押下します。
    ●必須項⽬
    – スケジュール名
    – 頻度
    毎日、週、月、年、cron式から選択できます。
    – 取得間隔(毎)
    スナップショットを取得する間隔を設定します。
    – 初めの取得時間(UTC)
    ポリシーを適用してから最初のバックアップを取得する時間(UTC)を設定します。
    – 保持タイプ 世代数 or 保持期間
    スナップショットの保持についての設定となります。
    ●任意項⽬
    – 可変タグ
    スケジュールによって作成されたスナップショットに適用されるタグを指定します。
    – 事前(pre)・事後(post)スクリプトSSMドキュメントを作成しておき、それを事前なのか事後なのか事前・事後に適用させるのかを選択し、設定します。
    AWSコンソールからのスケジュール設定手順-3
  4. 設定したポリシー内容を確認し、”ポリシーを作成”を押下することで完了となります。
    AWSコンソールからのスケジュール設定手順-4

AWSコンソールからのリストア⽅法

  1. インスタンスを停⽌
    スナップショットからのリストアを⾏う前に、EC2コンソールのインスタンス画面から対象インスタンスを選択後、”インスタンスの状態”から”インスタンスを停⽌”を押下し、インスタンスを停⽌します。
    AWSコンソールからのリストア方法-1
  2. ディスクをデタッチ
    左ペインからボリュームの画面に遷移し、停⽌したインスタンスから現在接続されているEBSボリュームを選択。”アクション”から”ボリュームのデタッチ”を選択します。
    AWSコンソールからのリストア方法-2
  3. スナップショットからディスクを復元
    左ペインからスナップショットの画面に遷移し、必要なスナップショットを選択し、”アクション”から”スナップショットからボリュームを作成”を選択します。
    AWSコンソールからのリストア方法-3
  4. 復元したディスクをアタッチ
    再度、左ペインからボリュームの画面に遷移し、作成したEBSボリューム選択後、”アクション”から”ボリュームのアタッチ”を押下し、EC2インスタンスと接続します。
    AWSコンソールからのリストア方法-4
  5. インスタンスを起動
    インスタンス画面に遷移し、対象のインスタンス選択後、”インスタンスの状態”から”インスタンスを開始”を押下し、インスタンスを再起動します。
    AWSコンソールからのリストア方法-5

クラウドポータルでのスケジュール・リストア⼿順

上記で、AWSコンソールを使⽤したスナップショットのスケジュールおよびリストア⼿順についてご説明させていただきましたが、弊社が提供するクラウドポータルでは、AWSコンソールと⽐べ、より直感的なユーザーインターフェースを通じて、初⼼者の⽅でもスムーズに操作を進めることができるようになっています。

具体的には、複雑な操作・設定を極⼒排除していることにより、スナップショットの定期的なスナップショットのスケジューリング、リストアも数クリックの操作だけで設定できるため、運⽤の負担を⼤幅に軽減できるよう設計されています。ここからは、クラウドポータルを使うとどういった⼿順になるのかをご紹介させていただきます。

クラウドポータルからのスケジュール設定⼿順

  1. クラウドポータルにログインし、AWS > EC2管理 > スナップショットを開きます。
    クラウドポータルからのスケジュール設定手順-1
  2. 対象インスタンスのスケジュール設定欄の”設定”を押下します。
    クラウドポータルからのスケジュール設定手順-2
  3. EBS情報とスケジュール設定画面が表⽰されるので設定を⼊⼒し、”設定”を押下します。
    スケジュールは、曜日設定 or 日にち設定を選択できます。
    クラウドポータルからのスケジュール設定手順-3
    曜日設定では、取得する曜日、時間、世代数、別リージョンコピーを選択でき、世代数は最⼤で360世代取得ができます。
    また、別リージョンにスナップショットをコピーすることにより、スナップショットを取得しているリージョンで障害が発⽣した場合でも、復元することが可能となり、耐障害性を⾼めることができます。別リージョンにコピーしたスナップショットにも適用されます。
    クラウドポータルからのスケジュール設定手順-4
  4. 日にち設定では、月で取得する日にち、曜日設定と同様に時間、世代数、別リージョンコピーを選択することができます。
    クラウドポータルからのスケジュール設定手順-5

クラウドポータルでのリストア⼿順

  1. クラウドポータルにログインし、AWS > EC2管理 > スナップショットを開きます。
    クラウドポータルでのリストア手順-1
    クラウドポータルでのリストア手順1-2
  2. 対象インスタンスのリストア管理欄の”詳細”を押下します。
    クラウドポータルでのリストア手順-2
  3. スケジュール設定と同様にEBS情報が表示され、その下に取得したスナップショットの⼀覧が表示されます。
    クラウドポータルでのリストア手順-3
  4. スナップショット⼀覧のリストア実行欄の”実行”を押下します。
    クラウドポータルでのリストア手順-4
  5. リストア実⾏画面が表⽰されます。
    実⾏⽅法としてEBS容量を変更せずに実⾏ or EBSを変更して実⾏することを選択することができます。変更する場合は、現状のEBS容量以上を取得する必要がございます。選択後、”実⾏”を押下していただくことでリストアを開始することができます。
    クラウドポータルでのリストア手順-5

このように、クラウドポータルではAWSコンソールに比べて直感的なUIで容易にスケジュール設定、リストアを実現することができます。

まとめ

スナップショットの管理は、AWS環境の安定運⽤に⽋かせません。
AWSコンソールやクラウドポータルを利⽤して、効率的かつ効果的にスナップショットを管理し、安⼼してAWS環境を運⽤しましょう。 スナップショットを定期的に取得し、適切なスケジュールで管理することで、データの保護とシステムの迅速な復元が確保されます。 今後も継続的にスナップショットのベストプラクティスを⾒直し、運⽤の最適化を図りましょう。

お役立ち資料をダウンロード

AWS運用管理・自動化ツール「クラウドポータル」

「AWS運用管理・自動化ツール「クラウドポータル」」のダウンロードをご希望のお客様は、
以下必要事項をご入力ください。

関連コラム

このコラムに関連する製品

  • AWS運用支援サービス

    手軽に運用できるツールから
    24時間365日有人監視まで3つのサービスで
    AWSの運用を支援

    詳細はこちら

  • AWS運用管理・自動化ツール「クラウドポータル」

    「はじめてでも運用できる」
    「もっと使いこなせる」
    独自開発ツール

    詳細はこちら

  • 運用内製化支援~セキュリティ改善サービス

    ベストプラクティスに沿った改善案を提案し、運用の内製化を支援します。


    詳細はこちら

このコラムに関連する
導入事例

AWS環境におけるスナップショット管理の基本とベストプラクティス

SHARE
シェアシェア ポストポスト
AWS環境におけるスナップショット管理の基本とベストプラクティス
SHARE
ポスト シェア