Amazon S3 を使ったバックアップとリカバリー - AWS 規範ガイダンス

Amazon S3 を使ったバックアップとリカバリー

Amazon Simple Storage Service (Amazon S3) を使用して、いつでも任意の量のデータを保存および取得できます。アプリケーションデータやファイルレベルのバックアップ復元処理のための耐久性のあるストアとして、Amazon S3 を使用することができます。例えば、AWS CLI や AWS SDK を使ったバックアップスクリプトで、データベースのバックアップをデータベースインスタンスから Amazon S3 にコピーすることができます。

以下の例のように、AWS のサービス は耐久性と信頼性の高いストレージとして Amazon S3 を使用しています。

  • Amazon EC2 は、Amazon S3 を使用して EBS ボリュームと EC2 インスタンスストアの Amazon EBS スナップショットを格納します。

  • Storage Gateway は Amazon S3 と統合され、Amazon S3 ベースのファイル共有、ボリューム、テープライブラリをオンプレミス環境に提供します。

  • Amazon RDS はデータベースのスナップショットに Amazon S3 を使用します。

多くのサードパーティのバックアップソリューションも Amazon S3 を使用します。例えば、Arcserve Unified Data Protection は Amazon S3 をサポートし、オンプレミスおよびクラウドネイティブサーバーの耐久性のあるバックアップを実現しています。

これらのサービスの Amazon S3 統合機能を使えば、バックアップとリカバリーのアプローチを簡素化できます。同時に、Amazon S3 が提供する高い耐久性と可用性の恩恵を受けることができます。

Amazon S3 は、バケットと呼ばれるリソース内にオブジェクトとしてデータを保存します。必要な数のオブジェクトを保存できます。きめ細かなアクセスコントロールを使用して、バケット内のオブジェクトの書き込み、読み取り、削除を行えます。1 つのオブジェクトのサイズは最大 5 TB です。

Amazon S3 ストレージクラスを使用してバックアップデータストレージコストを削減する

Amazon S3 は、オンプレミス、ハイブリッド、クラウドネイティブのアーキテクチャで使用できる複数のストレージクラスを提供します。すべてのストレージクラスはスケーラブルなキャパシティを提供するため、バックアップデータセットが大きくなるにつれてボリュームやメディアの管理は必要ありません。使用量に応じた従量制料金モデルで、GB/月あたりのコストが低いため、Amazon S3 ストレージクラスは幅広いデータ保護のユースケースに適しています。Amazon S3 ストレージクラスは、以下のカテゴリーを含むさまざまなユースケース向けに設計されています。

  • 高頻度アクセスストレージクラスは、頻繁にアクセスされるデータ (例えば、設定ファイル、計画外のバックアップ、毎日のバックアップ) の汎用ストレージ向けです。これには、すべての Amazon S3 オブジェクトのデフォルトである S3 Standard ストレージクラスが含まれます。

  • 低頻度アクセスストレージクラスは、保存期間は長いが、アクセス頻度は低いデータ (毎月のバックアップなど) 向けです。これには、S3 Standard-IA ストレージクラスなどがあります。IA は infrequent access (低頻度アクセス) の略です。

  • S3 Glacier ストレージクラスは、アクセスがほとんど必要のない保存期間が非常に長いデータ (例: 毎年のバックアップ) 向けです。これには、AWS で最も低コストのストレージを提供する S3 Glacier Deep Archive が含まれます。

アクセスパターンが不明または変更されたバックアップの場合は、S3 Intelligent-Tiering ストレージクラスを使用できます。S3 Intelligent-Tiering は、オブジェクトが最後にアクセスされた日数に基づいて、オブジェクトを最も費用対効果の高い階層に自動的に移行します。

注記

一部のストレージクラスには、最小期間料金がかかります。詳細については、「Amazon S3料金」を参照し、ウェブページ検索を使用して duration を検索します。

Amazon S3 は、ライフサイクルを通してデータを管理するために設定できるライフサイクルポリシーを提供しています。ポリシーが設定されると、アプリケーションを変更することなく、データは適切なストレージクラスに自動的に移行されます。詳細については、「Amazon S3 オブジェクトのライフサイクル管理」 を参照してください。

バックアップにかかるコストを削減するには、以下の例のように、目標復旧時間 (RTO) と目標復旧時点 (RPO) に基づいて、階層化されたストレージクラスのアプローチを使用できます:

  • S3 Standard を使用した過去 2 週間の毎日バックアップ

  • S3 Standard-IA を使用した過去 3 か月間の週次バックアップ

  • S3 Glacier Flexible Retrieval での過去 1 年間の四半期ごとのバックアップ

  • S3 Glacier Deep Archive での過去 5 年間の年次バックアップ

  • S3 Glacier Deep Archive から 5 年経過後にバックアップが削除されます

バックアップとアーカイブ用の標準 S3 バケットの作成

S3 のライフサイクルポリシーを通じて、企業のバックアップと保持ポリシーを実装したバックアップとアーカイブ用の標準的な S3 バケットを作成することができます。AWS 課金のための費用配分タグ付けと報告は、バケツレベルで割り当てられたタグに基づいています。コスト配分が重要な場合は、それに応じてコストを配分できるように、プロジェクトまたはビジネスユニットごとに個別のバックアップおよびアーカイブ S3 バケットを作成します。

バックアップスクリプトとアプリケーションは、作成したバックアップとアーカイブ S3 バケットを使用して、アプリケーションとワークロードデータのポイントインタイムスナップショットを保存できます。標準の S3 プレフィックスを作成すると、ポイントインタイムデータのスナップショットを整理しやすくなります。たとえば、1 時間ごとにバックアップを作成する場合は、YYYY/MM/DD/HH/<WorkloadName>/<files...> などのバックアッププレフィックスを使用することを検討します。こうしておけば、ポイントインタイムバックアップを手動またはプログラムですばやく取得できます。

Amazon S3 バージョニングを使用してロールバック履歴を自動的に維持する

S3 オブジェクトのバージョニングを有効にすると、以前のバージョンに戻す機能など、オブジェクトの変更履歴を維持できます。これは、ポイントインタイムのバックアップスケジュールよりも頻繁に変更される可能性のある設定ファイルやその他のオブジェクトに便利です。また、ファイルを個別に元に戻す必要がある場合にも役立ちます。

Amazon S3 を使用して、AMI 用にカスタマイズされた設定ファイルをバックアップおよびリカバリする

オブジェクトバージョニング機能を備えた Amazon S3 は、ワークロード設定とオプションファイルの記録システムになります。たとえば、ISV が管理する標準的な AWS Marketplace Amazon EC2 イメージを使用します。このイメージには、複数の構成ファイルで構成が管理されているソフトウェアが含まれている可能性があります。カスタマイズした設定ファイルは Amazon S3 で管理できます。インスタンスの起動時に、これらの設定ファイルをインスタンスユーザーデータの一部としてインスタンスにコピーすることができます。この方法を適用すると、更新されたバージョンを使用するために AMI をカスタマイズして再作成する必要はありません。

カスタムバックアップおよび復元プロセスでの Amazon S3 の使用

Amazon S3 は、既存のカスタムバックアッププロセスに素早く統合できる汎用バックアップストアを提供します。AWS CLI、AWS SDK、および API オペレーションを使用して、Amazon S3 を使用するバックアップと復元のスクリプトとプロセスを統合できます。例えば、毎晩データベースのエクスポートを行うデータベースバックアップスクリプトがあるとします。このスクリプトをカスタマイズして、夜間バックアップを Amazon S3 にコピーしてオフサイトに保存できます。この方法の概要については、「クラウドへのファイル一括アップロード」 チュートリアルを参照してください。

個々の RPO に基づいて、さまざまなアプリケーションのデータをエクスポートおよびバックアップする場合にも同様のアプローチをとることができます。さらに、AWS Systems Manager を使用してマネージドインスタンスでバックアップスクリプトを実行できます。Systems Manager は、個々のバックアッププロセスに対して、自動化、アクセスコントロール、スケジューリング、ロギング、通知を提供します。

Amazon S3 でのバックアップデータの保護

データセキュリティは普遍的な関心事であり、AWS はセキュリティを非常に重視しています。セキュリティはあらゆる AWS のサービス の基盤です。Amazon S3 は、保存中と転送中の両方でアクセス制御と暗号化を行う強力な機能を備えています。すべての Amazon S3 エンドポイントは、転送中のデータを暗号化するために SSL/TLS をサポートしています。保管中のオブジェクトの暗号化をセットアップするには、以下を実行します。

AWS Identity and Access Management (IAM) を使って S3 オブジェクトへのアクセスを制御することができます。IAM では、S3 バケット内の個々のオブジェクトと特定のプレフィックスパスに対する権限を制御できます。AWS CloudTrail によるオブジェクトレベルロギングを使えば、S3 オブジェクトへのアクセスを監査できます。