EBSスナップショットによる高可用性バックアップ戦略 ── 定期バックアップとData Lifecycle Managerによる自動化

目次

概要

Amazon EBS(Elastic Block Store)ボリュームは、EC2インスタンスに接続されるブロックストレージです。EBSボリュームは単一のアベイラビリティゾーン(AZ)内でレプリケートされているため、同一AZ内のハードウェア障害には耐えられますが、AZ全体の障害が発生した場合にはデータにアクセスできなくなるリスクがあります。

ビジネス継続性の観点からは、AZ障害に備えたバックアップ戦略が不可欠です。EBSスナップショットを活用すれば、ボリュームのバックアップをAmazon S3に保存し、任意のAZでボリュームを復元できるため、高可用性を確保できます。

本記事では、EBSスナップショットの仕組みと復元方法を解説し、Amazon Data Lifecycle Managerを使ったスナップショットの自動スケジュール設定を実践します。

EBSスナップショットをフォレンジクス用途で使用する方法については、EC2インスタンスのデジタルフォレンジクス ── EBSスナップショットによる証拠保全と分析を参照してください。

EBSボリュームからスナップショットを作成し、S3に保存され、別AZでボリュームを復元する流れを示す全体構成図
EBSボリュームからスナップショットを作成し、S3に保存され、別AZでボリュームを復元する流れを示す全体構成図
クラウドおさる

EBS ボリュームは 1 つの AZ の中でしか複製されぬので、AZ ごと倒れると手が届かなくなるのでござる。この記事では、スナップショットから別の AZ にボリュームを戻せることと、Data Lifecycle Manager で取得を自動にするところまで、弊猿と一緒に確かめるでござるな。

この記事のメリット

  • EBSスナップショットの仕組み(増分バックアップ、S3への保存、複数AZへの自動保存)を正確に理解できる
  • スナップショットからのボリューム復元手順を習得し、AZ障害時のリカバリ方法を把握できる
  • Amazon Data Lifecycle Managerによるスナップショットの自動スケジュール設定を実践できる
  • RPO・RTOの考え方を理解し、バックアップ戦略の設計に活かせる
  • SCS試験でEBSの高可用性に関する問いに正確に答えられるようになる

執筆者とキャラクター紹介

執筆者:土肥(とひ)

株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。

土肥

クラウドおさる

クラウドおさる

はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。

クラウドおさる

基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。

クラウドおさる

猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。

技術解説

EBSスナップショットの仕組み

EBSスナップショットは、EBSボリュームのポイントインタイムバックアップです。主な特徴は以下の通りです。

  • 増分バックアップ: 初回はボリュームの全データをバックアップしますが、2回目以降は前回のスナップショットから変更されたブロックのみを保存します。これにより、ストレージコストと作成時間が削減されます
  • S3への保存: スナップショットはAmazon S3に保存されます。S3はリージョン内の複数のAZにデータを自動的にレプリケートするため、単一AZの障害からデータを保護できます
  • ボリューム利用への影響なし: スナップショットの作成中もEBSボリュームは通常通り利用できます。ただし、整合性のあるスナップショットを取得するためには、可能であればI/Oを一時停止するか、ボリュームをデタッチすることが推奨されます
  • リージョン間コピー: スナップショットは別のAWSリージョンにコピーでき、リージョン障害への備えとしても活用できます
EBSスナップショットの増分バックアップの仕組み ── 初回は全ブロック、2回目以降は変更ブロックのみを保存する様子
EBSスナップショットの増分バックアップの仕組み ── 初回は全ブロック、2回目以降は変更ブロックのみを保存する様子

スナップショットの保存先と可用性

EBSスナップショットはAmazon S3に保存されますが、ユーザーのS3バケットには表示されません。S3はリージョン内の3つ以上のAZにデータを自動的にレプリケートするため、スナップショットは作成時点で複数AZに保護されています。

この仕組みにより、スナップショットから任意のAZに新しいEBSボリュームを作成できます。たとえば、ap-northeast-1a のEBSボリュームからスナップショットを作成し、そのスナップショットから ap-northeast-1c に新しいボリュームを作成することが可能です。

スナップショットからのボリューム復元

スナップショットからEBSボリュームを復元する際のポイントは以下の通りです。

  • 任意のAZを指定可能: 元のボリュームとは異なるAZにボリュームを作成できます
  • ボリュームタイプの変更が可能: 復元時にボリュームタイプ(gp3、io2など)を変更できます
  • サイズの変更が可能: 元のボリュームよりも大きなサイズで復元できます(縮小は不可)
  • 即時利用可能: 復元されたボリュームはすぐに使用できますが、バックグラウンドでS3からデータがロードされるため、初回アクセス時にレイテンシが発生する場合があります。EBS高速スナップショット復元(Fast Snapshot Restore)を有効にすることで、この初回アクセスのレイテンシを解消できます

RPO(目標復旧時点)とRTO(目標復旧時間)

バックアップ戦略を設計する際には、RPOとRTOの2つの指標を考慮する必要があります。

  • RPO(Recovery Point Objective): 障害発生時に許容できるデータ損失の最大期間です。たとえば、RPOが1時間の場合、1時間ごとにスナップショットを作成する必要があります
  • RTO(Recovery Time Objective): 障害発生からサービスを復旧するまでの最大許容時間です。スナップショットからのボリューム復元とEC2インスタンスへのアタッチにかかる時間がRTOに影響します

スナップショットの取得頻度を高めるほどRPOは短くなりますが、その分ストレージコストが増加します。ビジネス要件に応じて適切なバランスを設計することが重要です。

高可用性を実現する方式の比較

EBSボリュームの高可用性を確保するための方式を比較します。

方式目的AZ障害への対応自動化備考
EBSスナップショットの定期バックアップポイントインタイムバックアップ任意のAZに復元可能手動または自動化ツールと組み合わせ増分バックアップでコスト効率が高い
Amazon Data Lifecycle Managerスナップショットの自動スケジュール管理任意のAZに復元可能スケジュール・保持ポリシーを自動管理スナップショットの作成・削除を自動化
AWS Backup(クロスリージョンレプリケーション)リージョン障害への備え別リージョンに復元可能バックアッププラン・ボールトで一元管理リージョン間でのデータ保護が必要な場合に有効
EBS暗号化 + KMS保存データの暗号化可用性への直接的な効果なし–セキュリティ対策であり、可用性対策ではない

EBSの暗号化はデータの機密性を保護するためのセキュリティ機能であり、可用性やバックアップの代替にはなりません。高可用性を確保するためには、スナップショットによるバックアップが必要です。

クラウドおさる

EBS 暗号化は機密性を守る仕組みで、可用性やバックアップの代わりにはならぬのでござる。猿山のバナナ倉庫に立派な錠前を付けても、倉庫ごと崖崩れに遭えば中身は戻らぬでござろう。可用性の話に暗号化が混じっていたら、取り違えに気をつけるでござるぞ。

Amazon Data Lifecycle Managerの位置付け

Amazon Data Lifecycle Manager(DLM)は、EBSスナップショットの作成・保持・削除を自動化するサービスです。DLM自体がバックアップデータを保存するのではなく、EBSスナップショットのライフサイクルを管理するスケジュール自動化ツールとして機能します。

DLMの主な機能は以下の通りです。

  • スケジュール設定: 1時間、2時間、3時間、4時間、6時間、8時間、12時間、24時間単位でスナップショット作成を自動化できます
  • 保持ポリシー: スナップショットの保持数または保持期間を指定し、古いスナップショットを自動削除できます
  • タグベースのターゲット指定: 特定のタグが付与されたEBSボリュームを対象にポリシーを適用できます(「カスタムポリシー」を選んだ場合。「デフォルトポリシー」を選ぶとリージョン内のすべてのボリュームが対象になります)
  • クロスリージョンコピー: 作成したスナップショットを自動的に別リージョンにコピーする設定も可能です
フリーランス案件
クラウドおさる
クラウドキャリアフリーランス

AWS の実務経験があるなら、単価を上げにいく

AWS に特化したフリーランスエージェントです。以下は取り扱い案件の一例です。設計・SRE・セキュリティ・生成 AI の領域で、専門を掛け合わせるほど単価が上がります。

横にスクロールできます。掲載時点の情報のため、募集が終了している場合があります。条件の近い案件をご紹介しますので、お気軽にご相談ください。

実践

前提条件

  • リージョンは ap-northeast-1(東京)を使用します
  • 以下のリソースが作成済みであること
リソース種別リソース名用途
EC2インスタンスbackup-test-instanceスナップショット検証用
EBSボリューム(インスタンスにアタッチ済みのルートボリューム)スナップショット作成対象

手順1: EBSボリュームの手動スナップショット作成

まず、EBSボリュームから手動でスナップショットを作成します。

  • AWSマネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します
  • 上部の検索バーに EC2 と入力し、表示された「EC2」を選択します
  • 左側ナビゲーションの「インスタンス」→「インスタンス」を選択します
  • インスタンス一覧で backup-test-instance のインスタンスIDをクリックし、詳細画面の「ストレージ」タブを選択します
  • 「ブロックデバイス」セクションに表示されているボリュームID(vol-xxxxxxxx)を確認し、リンクをクリックしてEBSボリュームの詳細画面に遷移します
EC2インスタンスのストレージタブ ── ブロックデバイスにアタッチ済みのEBSボリュームIDが表示されている状態
EC2インスタンスのストレージタブ ── ブロックデバイスにアタッチ済みのEBSボリュームIDが表示されている状態
  • ボリュームの詳細画面で、右上の「アクション」→「スナップショットの作成」を選択します
  • 「スナップショットを作成」画面で以下を入力します
  • 説明: backup-test-snapshot-manual
  • 「タグ」セクションで「新しいタグを追加」をクリックし、キー Name、値 backup-test-snapshot-manual
スナップショットの作成画面 ── 説明とタグを入力した状態
スナップショットの作成画面 ── 説明とタグを入力した状態
  • ページ下部の「スナップショットを作成」をクリックします
  • 左側ナビゲーションの「Elastic Block Store」→「スナップショット」を選択します
  • 作成したスナップショット backup-test-snapshot-manual の「スナップショットのステータス」が「完了済み」になるまで待ちます
スナップショット一覧画面 ── backup-test-snapshot-manual のステータスが「完了済み」になっている状態
スナップショット一覧画面 ── backup-test-snapshot-manual のステータスが「完了済み」になっている状態

手順2: スナップショットからの新しいボリューム作成(別AZ指定)

作成したスナップショットから、元のボリュームとは異なるAZに新しいボリュームを作成します。

  • 左側ナビゲーションの「Elastic Block Store」→「スナップショット」を選択します
  • backup-test-snapshot-manual のチェックボックスを選択し、右上の「アクション」→「スナップショットからボリュームを作成」を選択します
  • 「ボリュームの作成」画面で以下を設定します
  • ボリュームタイプ: 汎用 SSD (gp3)(デフォルト)
  • サイズ (GiB): デフォルトのまま(元のボリュームと同じサイズ)
  • アベイラビリティーゾーン: 元のボリュームとは 異なるAZ を選択します(例: 元が ap-northeast-1a の場合は ap-northeast-1c を選択)
  • その他の項目はデフォルトのままにします
  • 「タグ – オプション」で「新しいタグを追加」をクリックし、キー Name、値 backup-test-volume-restored
スナップショットからボリュームを作成する画面 ── アベイラビリティゾーンで別AZを選択し、タグを入力した状態
スナップショットからボリュームを作成する画面 ── アベイラビリティゾーンで別AZを選択し、タグを入力した状態
  • 「ボリュームの作成」をクリックします
  • 左側ナビゲーションの「Elastic Block Store」→「ボリューム」を選択します
  • 作成されたボリューム backup-test-volume-restored が、指定したAZに作成されていることを確認します
  • 「ボリュームの状態」が「使用可能」になっていることを確認します
EBSボリューム一覧画面 ── backup-test-volume-restored が別AZに作成され、ボリュームの状態が「使用可能」になっている状態
EBSボリューム一覧画面 ── backup-test-volume-restored が別AZに作成され、ボリュームの状態が「使用可能」になっている状態

これにより、スナップショットから任意のAZにボリュームを復元できることが確認できます。AZ障害が発生した場合でも、スナップショットから別のAZにボリュームを復元し、新しいEC2インスタンスにアタッチすることでサービスを復旧できます。

クラウドおさる

スナップショットから、元とは別の AZ に backup-test-volume-restored を作れたでござるな。スナップショットは S3 に保存されてリージョン内の複数 AZ に守られているから、復元先の AZ を選べるのでござる。

手順3: Data Lifecycle Managerでスナップショットの自動スケジュール設定

Amazon Data Lifecycle Managerを使って、EBSスナップショットの自動作成を設定します。

まず、対象のEBSボリュームにDLMポリシーのターゲットとなるタグを追加します。

  • 左側ナビゲーションの「Elastic Block Store」→「ボリューム」を選択します
  • backup-test-instance にアタッチされているボリュームのボリュームIDをクリックし、詳細画面を開きます
  • 下部の「タグ」タブを選択し、「タグを管理」をクリックします
  • 「新しいタグを追加する」をクリックし、以下のタグを入力します
  • キー: DLMBackup、値: true
  • 「変更を保存」をクリックします

次に、Data Lifecycle Managerのポリシーを作成します。

  • 左側ナビゲーションの「Elastic Block Store」→「ライフサイクルマネージャー」を選択します
  • 「Data Lifecycle Manager」画面で「ライフサイクルポリシーを作成」をクリックします
ライフサイクルマネージャーの画面 ── ライフサイクルポリシーを作成ボタンが表示されている状態
ライフサイクルマネージャーの画面 ── ライフサイクルポリシーを作成ボタンが表示されている状態

「ポリシータイプを選択」画面で以下を選択し、「次へ」をクリックします。

  • カスタムポリシー(タグでターゲットを絞るポリシー)
  • EBS スナップショットポリシー

「デフォルトポリシー」を選ぶと、そのリージョンにあるすべてのボリュームがバックアップ対象になります。特定のボリュームだけを対象にしたい場合は必ず「カスタムポリシー」を選びます。

「設定を指定」画面で以下を設定します。

  • ターゲットリソースタイプ: ボリューム
  • ターゲットリソースタグ: キー DLMBackup、値 true を入力して「追加」をクリック
  • 説明(ポリシーの説明): daily-ebs-backup-policy
  • IAMロール: デフォルトロール(AWSDataLifecycleManagerDefaultRole が自動で作成・使用されます)
  • ポリシーのステータス: 有効
ライフサイクルポリシーの作成画面 ── ポリシーの説明とターゲットリソースタグを入力した状態
ライフサイクルポリシーの作成画面 ── ポリシーの説明とターゲットリソースタグを入力した状態

「次へ」をクリックし、「スケジュール 1 を設定」画面で以下を設定します。

  • スケジュール名: daily-snapshot-schedule
  • 頻度: 毎日
  • 毎: 24 時間
  • 開始時刻: 17:00(UTC。日本時間 26:00 = 翌 2:00)。動作確認をすぐに行いたい場合は、現在時刻の数分後を指定します
  • 保持タイプ: カウント
  • 保持: 7(7世代分のスナップショットを保持)
スケジュール設定画面 ── 頻度を24時間ごと、保持する数を7に設定した状態
スケジュール設定画面 ── 頻度を24時間ごと、保持する数を7に設定した状態
  • その他の項目はデフォルトのままにします
  • 「ポリシーを確認」をクリックし、内容を確認して「ポリシーを作成」をクリックします

ポリシーの作成が完了すると、ライフサイクルマネージャーの一覧に daily-ebs-backup-policy が「有効」で表示されます。

ライフサイクルマネージャー一覧画面 ── daily-ebs-backup-policy が有効な状態で表示されている
ライフサイクルマネージャー一覧画面 ── daily-ebs-backup-policy が有効な状態で表示されている

手順4: 自動作成されたスナップショットの確認

DLMポリシーが正しく動作していることを確認します。スナップショットは開始時刻ちょうどに作成されるとは限らず、開始時刻を過ぎてからしばらくして作成されるため、時間をおいてから確認します。

  • 左側ナビゲーションの「Elastic Block Store」→「スナップショット」を選択します
  • 新しく増えたスナップショットのスナップショットIDをクリックし、詳細画面を開きます
  • DLMによって自動作成されたスナップショットは、以下の特徴で識別できます
  • 「説明」が Created for policy: <ポリシーID> schedule: <スケジュール名> になっています
  • 下部の「タグ」タブに aws:dlm:lifecycle-policy-id、aws:dlm:lifecycle-schedule-name、dlm:managed が自動的に付与されています
DLMが自動作成したスナップショットの詳細画面 ── 説明とDLM関連のタグが確認できる状態
DLMが自動作成したスナップショットの詳細画面 ── 説明とDLM関連のタグが確認できる状態

これにより、Data Lifecycle Managerによるスナップショットの自動作成が正しく動作していることが確認できます。保持ポリシーにより、7世代を超えたスナップショットは自動的に削除されるため、ストレージコストも管理されます。

クラウドおさる

AZ 障害への備えを問われたら、スナップショットの保存先と復元先の AZ、そして取得と世代管理の自動化を DLM が担うことを結び付けて考えるのでござる。リージョン障害まで備えるのか、暗号化のような可用性以外の対策が紛れていないか、という観点も見落とせぬでござるぞ。

まとめ

EBSボリュームの高可用性を確保するには、EBSスナップショットによる定期的なバックアップが有効です。

要素内容
スナップショットの保存先Amazon S3(リージョン内の複数AZに自動レプリケート)
バックアップ方式増分バックアップ(変更ブロックのみ保存)
復元先同一リージョン内の任意のAZ
自動化Amazon Data Lifecycle Managerでスケジュール・保持ポリシーを管理
RPOの考え方スナップショットの取得頻度で決まる
RTOの考え方スナップショットからのボリューム復元・インスタンスへのアタッチ時間で決まる

バックアップ戦略を設計する際のポイントは以下の通りです。

  • EBSスナップショットはS3に保存されるため、AZ障害に対して耐性がある
  • スナップショット作成中もボリュームは利用可能なため、運用への影響が小さい
  • Data Lifecycle Managerを活用することで、手動作業なしで定期バックアップと世代管理を実現できる
  • EBS暗号化はセキュリティ対策であり、高可用性やバックアップの代替にはならない
  • リージョン障害にも備える場合は、AWS Backupによるクロスリージョンレプリケーションを検討する

参照先

フリーランス案件
クラウドおさる
クラウドキャリアフリーランス

AWS の実務経験があるなら、単価を上げにいく

AWS に特化したフリーランスエージェントです。以下は取り扱い案件の一例です。設計・SRE・セキュリティ・生成 AI の領域で、専門を掛け合わせるほど単価が上がります。

横にスクロールできます。掲載時点の情報のため、募集が終了している場合があります。条件の近い案件をご紹介しますので、お気軽にご相談ください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次