この記事はアイレット25卒社員によるAWSブログリレーのAWS Backup編です。

AWSブログリレーでは初学者や営業職の方などのこれからAWSについて学習する方向けに1記事1AWSサービスの概要やユースケースを解説するブログリレーとなっております。

AWSブログリレーについてはこちらの記事で詳しく記載しておりますので、よろしければ見ていただきたいです!

この記事はJapan AWS Top Engineersであるクラウドインテグレーション事業部 ソリューション開発セクション 畠山 大治さんの監修の下、執筆しております!

 

AWS Backupの概要

AWS環境のバックアップを取得・管理するためのサービスです。

EC2やRDS等の各サービスのコンソールからリソースのバックアップを取ることもできますが、AWS Backupでは複数のAWSサービスのバックアップをコンソール上で一元管理できるのが特徴です。

案件ごとや開発するシステムごとにまとめてバックアップを定期的にとることができるので、手間が省けたり、バックアップの設定漏れを減らすことができます。

どんな機能があるか

ダッシュボード

バックアップ・コピー・復元の3つのジョブタイプについてのステータスを時系列で視覚的に確認できる機能です。

バックアップを例にすると「失敗」「期限切れ」「完了したが問題が発生した」「完了済」などでグラフ上が色分けされているので直感的に把握がしやすいと感じました。

これまでになかった要素としてより詳細に状況を把握できるジョブのダッシュボードが搭載されています。

3つのジョブタイプをタブで選択でき、それぞれの詳細な情報がデフォルトのダッシュボードよりも確認できるようになっています。

バックアップボールト

AWS Backupの主軸の機能の一つで、バックアッププランで作成されるバックアップを保存する機能です。

リソースベースのポリシーを利用してアクセス管理を行っています。

他にもバックアップをカスタマーマネージドキーやAWSマネージドキーで暗号化することもできるので、安全にバックアップを保管できます。

バックアッププランやオンデマンドバックアップを設定する際にバックアップの保存先としてバックアップボールトを設定する必要があります。なので、バックアッププランとバックアップボールトはセットで活用するものになります。

バックアッププラン

AWS Backupの主軸の機能の一つで、「何を」「いつ」「どのように」バックアップするかを定義するバックアップの設計書のようなものです。

このバックアッププランに従ってAWS Backupが自動的にバックアップを取得・管理を行います。

逆にいうとこのバックアッププランを設定しないとAWS Backupを活用してバックアップを取ることはできません。

設定項目は以下の項目があります。(オプションを除く)

・スケジュール

・バックアップ期間

・ポイントタイムリカバリ

・ライフサイクル

・アドバンストバックアップ設定

注意点

バックアップを保管するバックアップボールトを適切に設定していないと正しくバックアップが行われません。

なので、作成順序としてはバックアップボールトを作成してからバックアッププランを作成するのが良いと思います

オンデマンドバックアップ

すぐに対象リソースのバックアップを生成したい時に活用する機能です。

バックアッププランとは違った種類のバックアップを生成する機能で、バックアッププランが標準的な定期実行の仕組みなのに対してオンデマンドバックアップは本番作業や災害対応などの今すぐにフルバックアップを取得したいといったケースのために提供されています。

バックアッププランとの違いの一つとして、オンデマンドバックアップはCLIからバックアップの即時実行ができます。

バックアッププランでもCLIからバックアッププランの作成・更新・削除はできるのですが、即時にバックアップを生成することができません。

こういった特徴から、用途に合わせてバックアップの生成を使い分けることができます。

ジョブ

バックアッププランやオンデマンドバックアップの実行結果として、生成されるバックアップの状態を管理する機能です。

バックアップの生成の段階で進行状態(CREATED, RUNNING, COMPLETED, FAILED)を確認することができます。

ダッシュボードとの違いについては、リソース単位でバックアップの状態がどうなっているかを確認できることが明確な違いがあります

復元テスト

復元テストプランを作成して、定期的に自動で復元テストを実行することができる機能です。

自動復元テストの流れとしては、復元テストプランを作成し、テスト対象リソースの選択を行うことで復元テストを行います。

注意点

復元を行う際は、本番リソースを上書きしないように別名/別サブネット/別アカウントで実行する必要があります。

ボールトロック

バックアプボールト内のバックアップをWORM (Write Once Read Many) にする機能です。

強制的な保護を行うためのもので、一度保存すると指定保持期間中は誰も削除できなくすることができます。

ボールトロックモード

ボールトロックには以下の二つのモードがあります。用途に合わせて使い分ける必要があります。

ガバナンスモード:管理者権限を持つユーザーであれば保持期間を短縮・削除ができるモード

コンプライアンスモード:一度設定すると管理者やrootアカウントでも保持期間の短縮や削除ができないモード

設定する際のルールとしては以下の二つがあります。

最低保持期間:例えば90日に設定すると90日間は削除できない

最大保持期間:保持期間の上限をを指定して無期限保持を防ぐことができる

リーガルホールド

バックアップを削除やライフサイクル以降から保護する機能です。

バックアップを一定期間必ず保持しないといけないケースがあり、そんな時にリーガルホールドを活用することで、バックアップボールトやポリシーの保持期間の設定に関係なくバックアップを保持し続けることができます。

注意点

リーガルホールドはIAM権限が必要になります。また、リーガルホールドを解除しない限り無期限保持になります。

そのため、保持しないといけない期間が終わるとリーガルホールドを解除する必要があります。

リーガルホールドとボールトロックの違いについて

違いのポイントは以下の3つがあります。以下の違いから用途に合わせて使い分ける必要があります

特徴 リーガルホールド バックアップボールトロック
適用単位 バックアップ単位 ボールト単位
保持期間 無期限 設定された保持期間
強制度 管理者が解除できる 管理者でも解除できない

バックアップの種類

フルバックアップ

データの変更に関係なく、全てのデータを毎回丸ごとコピーをするバックアップ方法です。

このバックアップ方法は一度の生成に時間がかかる点や大量のストレージ容量を占有することから一般的にはそれほど頻繁には活用されません。

メリット:生成に時間がかかりますが、復元はバックアップの種類の中で最も速くて簡単です。その理由として、1つのバックアップファイルさえあれば全て復元できるからです。

デメリット:先ほども触れましたが、バックアップの種類の中で最もバックアップの生成に時間がかかります。それに合わせて保存容量も大量に必要になります。

 

増分バックアップ

前回のバックアップ以降に変更された部分だけをコピーするバックアップ方法です。

メリット:バックアップの生成時間がバックアップの種類の中で、最も速く、保存容量も最小限で済みます。保存容量が少ないことからも、コスト効率がよく、何度も繰り返してバックアップを行うのに向いています。

デメリット:復元が最も複雑でかつ、時間がかかります。その理由としては、最初のフルバックアップとそれ以降の全ての増分バックアップファイルを順番に適用する必要があるからです。

 

差分バックアップ

前回のフルバックアップ以降に変更された全ての部分をコピーするバックアップ方法です。

メリット:復元は増分バックアップよりは早いです。理由としては、最初のフルバックアップと最新の差分バックアップの二つだけで済むからです。

デメリット:バックアップを繰り返すたびに、バックアップファイルのサイズがだんだん大きくなっていきます。

なのでバックアップの生成には増分バックアップよりも時間と容量が必要になります。

AWS Backupでは?

AWS Backupでは初回のバックアップでフルバックアップを生成し、2回目以降は増分バックアップを自動的に行います。

自分が思った疑問点はこれです「これ、用途に合わせてバックアップ方法を選択できないのか?」

答えとしては「ユーザーが手動でバックアップ方法を選択することはできない」です。

理由としては、AWSがコストとバックアップ時間を最適化するために、フルバックアップと増分バックアップを採用しているからです。

そこでまた自分が思った疑問点はこれです「じゃあバックアップを自分の思うようにコントロールするのはできないのか?」

答えとしては、「バックアップ方法を選択することはできないけど、他の方法でコントロールすることはできる」

バックアップの「方法」を選ぶ代わりに、「バックアッププラン」とその中の「ルール」をカスタマイズすることで、用途に合わせてバックアップをコントロールします。

これが実質的なコントロール方法となります。

例:日次バックアップと月次バックアップを分けたい場合

一つのバックアッププランの中に、2つの異なるルールを作成します。

  • ルール1:日次バックアップ用
    • スケジュール: 毎日 AM 2:00
    • ライフサイクル: 14日間で失効(有効期限切れにする)
    • 目的: 短期間のデータ保護、日々のオペレーションミスからの復旧
  • ルール2:月次バックアップ用
    • スケジュール: 毎月1日 AM 4:00
    • ライフサイクル: 7年間保持(1年後に低コストなコールドストレージへ移動)
    • 目的: 長期的なコンプライアンス要件や監査のためのアーカイブ

 

AWS Backupのメリット

・バックアップの自動化

バックアッププランを作成することで自動で定期的にバックアップの作成ができることがメリットの一つだと感じます。

・バックアップの一元管理

AWSサービスを複数サービスのバックアップを統一的に管理ができることがメリットだと考えています。

それぞれのサービスのコンソールからバックアップを取る必要がなくなることや、各サービスごとで異なる方法でバックアップを取る必要がなくなることが大きい

と感じます。

・コンプライアンス対応

ボールトロックやリーガルホールドを活用することで削除防止や改ざん防止を実現できることがメリットだと考えています。

それぞれのサービスでバックアップを生成するとボールトロックやリーガルホールドを活用できないので、削除防止や改ざん防止を実現するのが手間になってくると感じるのでオーバーヘッドが削減される点がメリットとして大きいと感じています。

AWS Backupの料金

AWS Backupは大きく分けて二つの項目から料金が発生します。

バックアップストレージ料金

バックアップデータを保存する容量に対して課金が発生します。保存先はBackupVaultになります。

このバックアップデータの保管先によって料金が異なります。

ストレージクラス 料金(/GB/月) 主な用途
標準ストレージ 約 $0.025 Webサイト、頻繁にアクセスするデータ
低コストストレージ 約 $0.0125 バックアップ、あまりアクセスしないデータ
Glacier Deep Archive 約 $0.002 長期アーカイブ、コンプライアンス

バックアップの状態や種類によって保管先を変更することでコスト最適化を図る必要があります。

バックアップデータ転送・コピー料金

クロスリージョンコピーやクロスアカウントコピーをすると追加課金が発生します。

この場合の発生する料金の内訳は以下のようになります。

コピー元のストレージ料金+コピー先のストレージ料金+転送料金

発生する料金は転送先のリージョンによって料金が異なってきます。

AWS Backupのユースケース

災害対策

リージョン障害やシステム破損に備えた冗長性確保のために活用されます

・東京リージョンでバックアップ取得

・大阪リージョンにクロスリージョンコピー

コンプライアンス対応

法令や業界標準で求められる保持要件を満たすために活用されることがあります

・3年間は保持する必要があるといった要件のときにボールトロックのコンプライアンスモードを有効化して3年間保持し続ける

コンプライアンスモードの運用のため、保存期間が終了するまでの間データの削除・上書きがされていないことを保証する

 

まとめ

AWS BackupはAWS環境のバックアップを生成するには切っても切り離せないサービスだと思います。

この記事を読んでAWS Backupについての理解が少しでも深まったり、AWS Backup活用しようと思って頂けると幸いです