Amazon S3 バックアップ
AWS Backup は、S3 のデータを、単独で保存する、または他のデータベース、ストレージ、コンピューティングのための AWS サービスと一緒に保存する、アプリケーションの一元化されたバックアップと復元をサポートします。S3 バックアップでは、多くの機能を使用できます (Backup Audit Manager を含む)。
AWS Backup では、単一のバックアップポリシーを使用してアプリケーションデータのバックアップの作成を一元的に自動化できます。AWS Backup は、バックアップを自動的に整理する異なる AWS サービスおよびサードパーティアプリケーションを 1 つの一元化、暗号化された場所 (バックアップボールトと呼ばれる) に配置することで、一元化されたエクスペリエンスを通じてアプリケーション全体のバックアップを管理できます。S3 の場合は、継続的バックアップを作成し、S3 に保存されているアプリケーションデータを復元し、ワンクリックでバックアップをポイントインタイムに復元できます。
AWS Backup では、オブジェクトデータ、タグ、アクセス制御リスト (ACL)、ユーザー定義のメタデータなど、S3 バケットの次のタイプのバックアップを作成できます。
-
継続的バックアップでは、過去 35 日間の任意のポイントインタイムに復元できます。S3 バケットの継続的バックアップは、1 つのバックアッププランでのみ設定してください。
サポートされているサービスのリストと、AWS Backup を使って連続バックアップを取る方法については「ポイントインタイムリカバリ」を参照してください。
-
定期的バックアップでは、データのスナップショットを使用して、指定した期間 (最大 99 年間) データを保持できます。定期的バックアップは、1 時間、12 時間、1 日、1 週間、または 1 年間などの頻度でスケジュールできます。AWS Backup は、バックアッププランで定義したバックアップウィンドウ中に定期的バックアップを行います。
AWS Backup によってバックアッププランがリソースにどのように適用されるかを理解するには、「バックアッププランの作成」を参照してください。
S3 バックアップにはクロスアカウントコピーとクロスリージョンコピーを使用できますが、継続的バックアップのコピーにはポイントインタイムリストア機能はありません。
S3 バケットの継続的バックアップと定期的バックアップは、どちらも同じバックアップボールトにある必要があります。
どちらのバックアップタイプでも、最初のバックアップはフルバックアップで、後続のバックアップは増分バックアップです。
注記
Amazon S3 AWS Backup で使用するには、S3 バケットで S3 バージョニングを有効にする必要があります。データ保護のベストプラクティスとして AWS では S3 バージョニングを推奨しているため、この前提条件を維持しています。
S3 バージョンの場合、「ライフサイクルの有効期限を設定する」ことをお勧めします。ライフサイクルの有効期限を設定しないと、S3 のコストが増加する可能性があります。AWS Backup は、S3 データの期限切れでないすべてのバージョンをバックアップして保存します。S3 ライフサイクルポリシーの設定について詳しくは、このページの指示に従ってください。
S3 バックアップタイプの比較
S3 リソースのバックアップ戦略には、継続的バックアップのみ、定期的 (スナップショット) バックアップのみ、あるいはその両方の組み合わせが含まれます。以下の情報は、組織にとって最適な方法を選択するのに役立ちます。
継続的バックアップの場合のみ、次の項目が該当します。
-
既存データの最初のフルバックアップが完了すると、S3 バケットデータの変更は発生時に追跡されます。
-
変更履歴により、継続的バックアップの保持期間中は PITR (ポイントインタイムリストア) を使用できます。復元ジョブを実行するには、復元するポイントインタイムを選択します。
-
各継続的バックアップの保持期間は最大 35 日間です。
定期的 (スナップショット) バックアップ(定期的またはオンデマンド)の場合のみ、次の項目が該当します。
-
AWS Backup が S3 バケット全体をスキャンし、各オブジェクトの ACL とタグを取得し、前のスナップショットにはあったが、作成中のスナップショットには見つからなかったすべてのオブジェクトについて HEAD リクエストを開始します。
-
バックアップはポイントインタイム整合性があります。
-
記録されるバックアップ日時は、バックアップジョブが作成された日時ではなく、AWS Backup がバケットのトラバースを完了した日時です。
-
バケットの最初のバックアップはフルバックアップです。それ以降の各バックアップは増分となり、前回のスナップショットからのデータの変化を表します。
-
定期的バックアップによって作成されたスナップショットの保持期間は最大 99 年です。
継続的バックアップと定期的/スナップショットバックアップの組み合わせの場合に、次の項目が該当します。
-
既存データ (各バケット) の最初のフルバックアップが完了すると、バケット内の変更は発生時に追跡されます。
-
継続的復旧ポイントからポイントインタイムリストアを実行できます。
-
スナップショットはポイントインタイム整合性があります。
-
スナップショットは継続的復旧ポイントから直接取得されることから、バケットを再スキャンする必要がないため、処理を速められます。
-
スナップショットと継続的復旧ポイントはデータ系列を共有するため、スナップショットと継続的復旧ポイント間のデータの保存は重複しません。
サポートされている S3 ストレージクラス
AWS Backup は、以下の S3 ストレージクラスに保存されているすべての S3 データをバックアップできます。
-
S3 Standard
-
S3 Standard – Infrequent Access (IA)
-
S3 1 ゾーン - IA
-
S3 Glacier インスタント取得
-
S3 Intelligent-Tiering (S3 INT)
ストレージクラス S3 Intelligent-Tiering (INT) 内のオブジェクトのバックアップは、それらのオブジェクトにアクセスします。このアクセスにより、S3 Intelligent-Tiering がトリガーされ、これらのオブジェクトは Frequent Access に自動的に移行されます。
S3 Standard - Infrequently Access (IA) クラスや S3 One Zone-IA クラスを含む Infrequent Access 階層にアクセスするバックアップは、Frequent Access の S3 ストレージ料金 (Infrequent Access または Archive Instant Access 階層に適用) に移行します。
Glacier Instant Retrieval を除き、アーカイブされたストレージクラスはサポートされていません。
Amazon S3 のストレージ料金に関する詳細については、「Amazon S3 の料金
Amazon S3 の AWS Backup に関する考慮事項
S3 リソースをバックアップする際には、以下の点を考慮する必要があります。
-
フォーカスしたオブジェクトメタデータのサポート: – AWS Backup では、タグ、アクセスコントロールリスト (ACL)、ユーザー定義メタデータ、元の作成日、バージョン ID などのメタデータをサポートします。これにより、元の作成日、バージョン ID、ストレージクラス、および ETag を除くバックアップデータとメタデータをすべて復元できます。
-
S3 オブジェクトを復元するときは、元のオブジェクトがチェックサム機能を使用していなくても、チェックサム値が適用されます。
-
S3 オブジェクトキー名は、ほとんどの UTF-8 エンコード可能な文字列で構成できます。Unicode 文字
#x9
|#xA
|#xD
|#x20 to #xD7FF
|#xE000 to #xFFFD
|#x10000 to #x10FFFF
を使用できます。このリストにない文字を含むオブジェクトキー名は、バックアップから除外される場合があります。
-
コールドストレージの移行 – AWS Backup ライフサイクル管理ポリシーを使用して、バックアップ有効期限のタイムラインを定義します。S3 バックアップのコールドストレージ移行はサポートされていません。
-
同時に作成された、同じオブジェクトの複数のバージョンを含む S3 バケットのバックアップはサポートされていません。
-
定期的バックアップでは、AWS Backup は、オブジェクトメタデータへのすべての変更を追跡するよう最善の努力をします。ただし、1 分以内にタグまたは ACL を複数回更新すると、AWS Backup `では、すべての中間状態がキャプチャされない場合があります。
-
AWS Backup では、SSE-C 暗号化オブジェクトのバックアップをサポートしていません。また AWS Backup は、バケットのポリシー、設定、名前、アクセスポイントなどのバケット設定のバックアップもサポートしていません。
-
AWS Backup では、AWS Outposts 上の S3 のバックアップはサポートされていません。
-
CloudTrail ログ記録 – データ読み取りイベントをログに記録する場合は、別のターゲットバケット対する CloudTrail ログが必要になります。CloudTrail ログを、それを記録するバケットに保存すると、無限ループにより予期しない料金が発生する可能性があります。
詳細については、「CloudTrail ユーザーガイド」の「データイベント」を参照してください。
-
サーバーアクセスログ記録 – サーバーアクセスログ記録を有効にする場合は、ログを別のターゲットバケットに配信する必要があります。これらのログを、それを記録するバケットに保存すると、無限ループが発生します。詳細については、「Amazon S3 サーバーアクセスログを有効にします」を参照してください。
S3 バックアップ完了ウィンドウ
以下の表は、S3 バケットの最初のフルバックアップの完了時間の目安となるように、さまざまなサイズのサンプルバケットを示しています。バックアップ時間は、各バケットのサイズ、内容、構成、設定によって異なります。
バケットサイズ | プロジェクト数 | 初期バックアップが完了するまでの推定時間 |
---|---|---|
425 GB (ギガバイト) | 1 億 3500 万 | 31 時間 |
800 TB (テラバイト) | 6 億 7000 万 | 38 時間 |
6 PB (ペタバイト) | 50 億 | 100 時間 |
370 TB (テラバイト) | 75 億 | 180 時間 |
Amazon S3 のバックアップと復元のアクセス許可とポリシー
S3 リソースをバックアップ、コピー、復元するには、ロールに適切なポリシーが必要です。これらのポリシーを追加するには、「AWS 管理ポリシー」を参照してください。S3 バケットのバックアップと復元に使用するロールに、AWSBackupServiceRolePolicyForS3Backup と AWSBackupServiceRolePolicyForS3Restore を追加します。
十分なアクセス許可がない場合は、組織の管理者 (admin) アカウントの管理者に、目的のロールにポリシーを追加するよう依頼してください。
詳細については、「IAM ユーザーガイド」の「管理ポリシーとインラインポリシー」を参照してください。https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html
AWS Backup for S3 は Amazon EventBridge を介した S3 イベントの受信に依存しています。S3 バケット通知設定でこの設定を無効にすると、設定がオフになっているバケットの継続的バックアップは停止します。詳細については、「EventBridge の使用」を参照してください。
S3 バックアップのベストプラクティスとコストに関する考慮事項
ベストプラクティス
3 億個を超えるオブジェクトを含むバケットの場合:
-
3 億個を超えるオブジェクトを含むバケットでは、バケットの最初のフルバックアップ時にバックアップ速度が 1 秒あたり最大 17,000 オブジェクトに達することがあります (増分バックアップでは速度が異なります)。3 億個未満のオブジェクトを含むバケットは、1 秒あたり 1,000 オブジェクトに近い速度でバックアップされます。
-
継続的バックアップが推奨されます。
-
バックアップのライフサイクルを 35 日以上に予定している場合は、継続的バックアップが保存されているのと同じボールトにあるバケットのスナップショットバックアップを有効にすることもできます。
コストに関する考慮事項
-
S3 ライフサイクルポリシーには、「期限切れのオブジェクト削除マーカーを削除」というオプション機能があります。この機能をオフにすると、削除マーカー (場合によっては数百万単位) がクリーンアッププランなしで期限切れになります。この機能のないバケットをバックアップすると、時間とコストに影響する問題が 2 つ生じます。
-
削除マーカーはオブジェクトと同様にバックアップされます。オブジェクトと削除マーカーの比率によっては、バックアップ時間と復元時間が影響を受ける可能性があります。
-
バックアップされるオブジェクトとマーカーにはそれぞれ最低料金が適用されます。各削除マーカーには 128 KiB のオブジェクトと同じ料金がかかります。
-
-
少なくとも毎日、またはそれ以上の頻度でバックアップを行うアカウントでは、バックアップ内のデータについてのバックアップ間の変更が最小限であれば、継続的バックアップを使用することでコスト上のメリットが得られます。
-
より大きなバケットで、変更の頻度が低いものは、継続的バックアップのメリットがあります。これは、バケット全体のスキャンとオブジェクトごとの複数のリクエストを、既存のオブジェクト (前回のバックアップから変更されていないオブジェクト) に対して実行する必要がない場合にコスト削減につながるためです。
-
1 億個を超えるオブジェクトを含むバケットで、全体のバックアップサイズに比べて削除率が小さい場合、2 日間の保持期間の継続的バックアップと、保持期間の長いスナップショットバックアップの両方を含むバックアッププランでは、コスト面でのメリットが得られる可能性があります。
-
定期的 (スナップショット) バックアップ時間は、バケットスキャンが不要なときのバックアッププロセスの開始時間と一致します。継続的バックアップとスナップショットバックアップの両方を含むバケットでは、スナップショットバックアップは継続的復旧ポイントから取得されるため、スキャンは不要です。
-
単一の S3-GIR (Amazon S3 Glacier Instant Retrieval) 内の各オブジェクトに対して、AWS Backup は複数の呼び出しを実行します。それにより、バックアップの実行時に取得料金が発生します。
S3-IA および S3 One Zone-IA ストレージクラスのオブジェクトを持つバケットにも同様の取得コストが適用されます。
-
バックアップ戦略の一部である、AWS KMS、CloudTrail、および Amazon CloudWatch の機能は、S3 バケットデータストレージ以外の追加コストにつながる可能性があります。これらの機能の調整に関する詳細については、以下を参照してください。
-
Amazon S3 ユーザーガイドの Amazon S3 バケットキーを使用した SSE-KMS のコストの削減。
-
AWS KMS イベントを除外し、S3 データイベントを無効にすることで、CloudTrail のコストを削減できます。
-
AWS KMS イベントの除外:「CloudTrail ユーザーガイド」の「コンソールで証跡を作成 (基本的なイベントセレクター)」を行うと、AWS KMS イベントを除外してこれらのイベントを証跡から除外できます (デフォルト設定にはすべての KMS イベントが含まれます)。
-
KMS イベントをログまたは除外するオプションは、証跡の管理イベントをログに記録する場合にのみ使用できます。管理イベントをログに記録しないように選択した場合は、KMS イベントはログに記録されず、KMS イベントログ設定は変更できません。
-
通常、
Encrypt
、Decrypt
、GenerateDataKey
などの AWS KMS アクションは、大容量イベント (99% 以上) を生成します。これらのアクションは、[読み取り] イベントとしてログに記録されるようになりました。Disable
、Delete
、およびScheduleKey
などのボリュームの小さい関連 KMS アクション (通常、KMS イベントボリュームの 0.5% 未満を占める) は、[書き込み] イベントとしてログに記録されます。 -
Encrypt
、Decrypt
、GenerateDataKey
のようなボリュームの大きなイベントを除外し、Disable
、Delete
、ScheduleKey
などの関連イベントを記録する場合は、[書き込み] 管理イベントを記録することを選択し、[AWS KMS イベントの除外] チェックボックスをオフにします。 -
S3 データイベントを無効にする: デフォルトでは、証跡とイベントデータストアはデータイベントを記録しません。コスト削減のため、初回バックアップの前に S3 データイベントを無効にします。
-
-
CloudWatch コストを削減するには、CloudWatch Logs の設定を無効にするための証跡更新時に、CloudTrail イベントの CloudWatch Logs への送信を停止することができます。
-
S3 バックアップの復元
AWS Backup を使用して S3 Standard ストレージクラスにバックアップした S3 データを復元できます。S3 データは、元のバケットを含め、既存のバケットに復元できます。復元中に、復元ターゲットとして新しい S3 バケットを作成することもできます。S3 バックアップは、バックアップが保管されている同じ AWS リージョン にのみ復元できます。
S3 バケット全体、またはバケット内のフォルダまたはオブジェクトを復元できます。AWS Backup は、そのオブジェクトの現在のバージョンを復元します。
AWS Backup を使用して S3 データを復元するには、「AWS Backup を使用した S3 データの復元」を参照してください。