自由気ままに書いちゃおう

好きなことをつらつらと・・・

【AWS】EC2/RDSのバックアップのあれこれ

今回は、EC2/RDSのバックアップ設計をする際の備忘録です。

AWSに複数のバックアップ機能があることから、少し整理しようと思ったのが背景です。

取り上げるのは、

  • EC2のバックアップ
  • RDSのバックアップ
  • AWS Backupを利用したバックアップ

の3つです。

EC2のバックアップ

EC2のバックアップには「EBSスナップショット」と「AMI」の2種類があります。

1. EBSスナップショット

Elastic Block Store(EBS)ボリュームのバックアップを取る方法で、上図の「スナップショットの作成」から手動で作成することができます。

取得したスナップショットはS3バケットに保存されますが、S3バケット自体を利用者が確認することはできません。

特徴は以下のとおりです。

  • 増分バックアップ: 最初のスナップショットによりフルバックアップを作成し、以降のスナップショットは変更された部分のみ(=差分バックアップ)となります。
  • 耐久性: スナップショットは複数の地理的に分散された場所に保存されるため、高い耐久性を持っています。
  • リージョン間コピー: スナップショットは別のリージョンにコピーすることが可能で、災害復旧のための地理的冗長性を提供します。

2. AMI取得

Amazon Machine Image(AMI)は、EC2インスタンスの完全なバックアップを提供します。

上図の「イメージを作成」をクリックすることで作成できます。

AMIから新しいインスタンスを起動することで、バックアップ時点の完全な状態を復元できます。

ちなみに、AMIの中にEBSスナップショットが含まれます。

特徴は以下のとおりです。

  • 全体バックアップ: インスタンスのOS、アプリケーション、データ、設定など全てを含んだバックアップが可能です。
  • 迅速な復元: AMIからインスタンスをすぐに起動できるため、復元作業が迅速に行えます。
  • 移植性: AMIは異なるAWSアカウント間で共有または移動が可能です。

RDSのバックアップ

RDSのバックアップには「自動バックアップ」と「手動スナップショット(=手動バックアップ)」の2種類があります。

自動バックアップ

RDSの一機能として提供されています。

少しややっこしいですが、自動バックアップで取得されるバックアップ対象は2つあります。

  1. スナップショット: バックアップウィンドウとして設定された時間帯に取得が開始され、その時点のデータが保持されます。
  2. トランザクションログ: トランザクションを記録しているログ。定期的に(5分ごとに)取得されます。

特徴は以下のとおりです。

  • 自動実行: バックアップはデータベースに設定されたバックアップウィンドウ中に自動的に行われます。
  • 保持期間: ユーザーは自動バックアップの保持期間を1日から35日まで設定可能です。
  • ポイントインタイムリカバリ: 保持期間内の任意の時点にデータベースを復元できます。

利点は以下のとおりです。

  • 運用の自動化により、日々の管理が簡単になります。
  • 予期しないデータ損失やデータベース障害時に、最後のバックアップからデータベースを素早く復元できます。

手動スナップショット(=手動バックアップ)

RDSの手動スナップショットを使用すると、ユーザーは任意の時点でデータベースの完全なスナップショットを取得できます。

これらのスナップショットは、自動バックアップの保持期間に依存せず、ユーザーが明示的に削除するまで永続的に保存されます。

特徴は以下のとおりです。

  • ユーザー制御: スナップショットの取得と削除のタイミングをユーザーが完全に制御します。
  • 長期保存: 手動スナップショットは自動削除されず、保持期間の制限がありません。
  • データ移行: スナップショットは他のAWSリージョンやアカウントへ簡単に転送可能です。

利点は以下のとおりです。

  • 長期間のデータ保持が必要な場合や、特定のプロジェクトのマイルストーンでのデータ保存に最適です。
  • データベースのバージョンアップグレードや移行前に、安全なバックアップを取ることができます。

AWS BackUp

AWS Backupは、AWSのさまざまなサービス(EC2やRDS、等)にわたるデータのバックアップを管理し、一元化するフルマネージド型のバックアップサービスです。

そのため、EC2やRDSの一機能というわけではなく、AWSサービスの一つです。

AWS Backupを使用すると、EC2、RDSなどのAWSリソースのバックアップを一元的に設定、管理、および自動化することができます。

クロスリージョンバックアップの自動化、バックアップポリシーの一元管理、コンプライアンスと監査のニーズに対応可能です。

EC2におけるAWS Backup

AWS Backupを使用してEC2インスタンスのバックアップを管理する場合、主に以下の機能を活用できます。

特徴は以下のとおりです。

  • AMIの自動バックアップ: EC2インスタンスのAMI(Amazon Machine Image)を定期的に自動的に作成し、保持することができます。
  • クロスリージョンバックアップ: 異なるリージョンにバックアップを複製することで、地理的冗長性と災害復旧の能力を強化できます。
  • バックアップポリシー: バックアップの頻度、保持期間、その他の設定をカスタマイズ可能です。

利点は以下のとおりです。

  • EC2インスタンスのデータ保全と復旧のプロセスを自動化し、運用の簡素化が図れます。
  • 複数のリージョンでのデータ保護により、より広範な災害回復戦略を構築できます。

RDSにおけるAWS Backup

RDSデータベースの場合、AWS Backupは以下のような機能を提供します。

RDSの自動バックアップでできることは、AWS Backupでもできし、プラスαでできることもあります。

特徴(プラスαでできること含む)は以下のとおりです。

  • RDSスナップショットの自動化: データベースのスナップショットを自動的に作成し、設定された保持ポリシーに基づいて管理します。
  • クロスアカウントバックアップ: バックアップを別のAWSアカウントに保存することで、セキュリティとデータの隔離を向上させます。
  • ポリシーベースの管理: RDSのバックアップスケジュール、保持期間、その他のパラメータを一元的に設定することができます。

利点は以下のとおりです。

  • 手動でのバックアップ作業から解放され、定期的かつ自動的にデータ保護を実施できます。
  • コンプライアンス要件に対応する詳細なバックアップポリシーを設定し、監査の準備が可能です。

簡単にですが、以上です。