本記事では、AWS Backupにて定期バックアップを取得する方法について、AWS コンソールでの実施手順とあわせて記載します。
設定手順自体はAWS公式ドキュメントでも記載されていますが、自分の勉強・備忘のために、AWS Backupというサービスの特徴や各設定項目について、整理してまとめました。
AWS Backupとは
AWS Backupは、AWSの各サービスのバックアップの取得や、バックアップデータの管理を実施するリソースです。
リソースのバックアップアクティビティのモニタリングが可能であり、コンソール上から監査を行うこともできます。
特徴
AWS Backupの特徴としては、下記3つが挙げられます。
一元化されたバックアップ管理
AWS Backupでは、一元化されたバックアップコンソールやバックアップAPI、AWS CLIが提供されています。
また、バックアップ要件を指定するバックアップポリシーも一元管理されており、整合性が確保されたバックアップの取得が可能になります。
タグベースのバックアップポリシー
AWS Backupでは、バックアップ対象リソースの取得においてはそのリソースのタグ情報を使用します。
AWSタグはリソースを整理して分類するうえで最適な方法となっており、AWSタグと統合されていることで確実なバックアップと保護が実現されています。
クロスリージョン、クロスアカウントのバックアップ
【クロスリージョン】
取得したバックアップを複数の異なるAWSリージョンにコピーすることが可能です。
これによって、本番稼働用のデータをDR環境にバックアップとして保存しておくことが可能になります。
【クロスアカウント】
AWS Organizationsの組織に属しているすべてのAWSアカウントのバックアップを管理することが可能です。
そのため、1つのバックアップポリシーを複数のアカウントに適用することが可能になり、アカウント毎で同じ要件のバックアップポリシーを作成する手間を省くことができます。
また、AWS Organizations組織内に属している他のアカウントへバックアップデータをコピーすることが可能です。
AWS Backupの用語
AWS Backupにおいて使用される用語とその紹介になります。
バックアップボールト
バックアップを保存および整理するためのコンテナのことを指します。
バックアップデータをまとめて管理するための箱というイメージです。
バックアッププラン
AWS リソースをいつどのようにバックアップするかを定義するポリシーのことを指します。
バックアッププランにリソースを割り当てることで、AWS Backupはこのバックアッププランに従って、対象のリソースを自動的にバックアップして保持します。
リソースを割り当てる際には、リソースタイプの指定や特定のリソースを指定したり除外したりすることも可能です。
復旧ポイント
バックアップボールト内において、一つ一つのバックアップは「復旧ポイント」という単位で管理・保護されます。
EC2でいうAMI、EBSでいうスナップショット、RDSでいうDBスナップショットの一つ一つを指すというイメージです。
AWS Backupの全体像はこちらになります。
AWS Backupサポート対象のAWSリソースについて
本記事ではEC2のAMIバックアップを取得する手順を記載していますが、AMI以外にも以下リソースのバックアップ取得に対応しています。
サポートされているリソース | サポートされているリソースタイプ |
Amazon Simple Storage Service (Amazon S3) | Amazon S3データ |
Amazon Elastic Block Store (Amazon EBS) | Amazon EBS ボリューム |
Amazon DynamoDB | Amazon DynamoDB テーブル |
Amazon Relational Database Service (Amazon RDS) | Amazon RDS データベースインスタンス |
Amazon Aurora | Aurora クラスター |
Amazon Elastic File System (Amazon EFS) | Amazon EFS ファイルシステム |
FSx for Lustre | FSx for Lustre ファイルシステム |
FSx for Windows File Server | FSx for Windows File Server ファイルシステム |
Amazon FSx for NetApp ONTAP | FSx for ONTAP ファイルシステム |
AWS Storage Gateway (ボリュームゲートウェイ) | AWS Storage Gateway ボリューム |
Amazon DocumentDB | Amazon DocumentDB クラスター |
Amazon Neptune | Amazon Neptune クラスター |
Amazon Redshift | Amazon Redshift クラスター |
Amazon Redshift クラスター | Amazon Timestream クラスター |
Amazon Timestream | Amazon Timestream クラスター |
VMware Cloud™ on AWS | VMware Cloud™ 仮想マシン on AWS |
VMware Cloud™ on AWS Outposts | VMware Cloud™ 仮想マシン on AWS Outposts |
AWS CloudFormation | AWS CloudFormation スタック |
SAP HANA データベース | Amazon EC2 インスタンスでの SAP HANA データベース |
サポートされているすべてのリソースタイプにおいて、下記機能(一部抜粋)が提供されているとのことです。
- バックアップスケジュールと保存管理の自動化
- バックアップモニタリングの一元化
- AWS KMS 統合バックアップ暗号化
- AWS Organizationsによるアカウント間での管理
AWS Backupを使用したEC2のAMIバックアップ手順
上記で紹介したAWS Backupを使って、EC2のAMIバックアップを取得する方法を紹介します。
この手順ではEC2インスタンスが作成されていることを前提とします。
- バックアップボールトの作成
- バックアッププランの作成
- バックアッププランにてバックアップリソースの割り当て
実際のAWS コンソール画面を用いて紹介します。
バックアップボールトの作成
AWS Backupのバックアップボールト一覧画面より[バックアップボールトを作成]をクリックして、作成画面に進みます。
バックアップボールト名や暗号化キーの選択など設定値を入力して、[バックアップボールトを作成]をクリックして作成します。
バックアッププラン、バックアップルールの作成
AWS Backupのバックアッププラン一覧画面より[バックアッププランを作成]をクリックして、作成画面に進みます。
[起動オプション]項目では[新しいプランを立てる]を選択し、任意のバックアッププラン名を設定します。
[バックアップルールの設定]項目にて、下記項目を設定して[プランを作成]をクリックします。
設定項目 | 設定値 | 設定内容や注意点 |
---|---|---|
バックアップルール名 | 任意で設定 | - |
バックアップボールト | 作成したバックアップボールトを選択 | - |
バックアップ頻度 | 毎時、12時間ごと、毎日、毎週、毎月、カスタムcron式から選択 | バックアップを作成して保存する頻度を選択 |
開始時間 | (バックアップ開始時間を指定) | - |
次の時間以内に開始 | 任意で設定(1時間~7日の中から選択) | バックアップ取得を開始するまでの猶予期間を定義 |
次の時間以内に完了 | 任意で設定(2時間~30日の中から選択) | バックアップ取得が完了するまでの許容期間を定義 |
ポイントタイムリカバリ | 連続バックアップの有効/無効 | 復元するタイミングを秒単位で選択することで、ポイントインタイムリカバリ (PITR) を実行できる |
コールドストレージ | 有効/無効 | バックアップが削除までに最低90日間存在する場合、コールドストレージに移動可できる |
合計保持期間 | (保持日数を指定) | バックアップを保存する期間を AWS Backup に指示 |
コピー先にコピー | (リージョンを選択) | 復旧ポイントのクロスリージョンおよびクロスアカウントコピーを作成できる |
アドバンストバックアップ設定 | Windows VSSの有効/無効 | VSS (Volume Shadow Copy Service) 対応の Microsoft Windows アプリケーションをバックアップおよび復元する |
バックアッププランにてバックアップリソースの割り当て
バックアッププラン作成後に、バックアップを取得したいリソースを割り当てます。
[リソースの割り当て]画面より、下記項目を設定して[リソースを割り当てる]をクリックします。
設定項目 | 設定値 | 設定内容や注意点 |
---|---|---|
リソース割り当て名 | (バックアップ対象ホスト名を入力) | - |
IAMロール | デフォルトのロール、もしくは任意のロールを選択 | 選択するIAMロールにはバックアップの作成、復元、期限切れバックアップの削除などの許可を含むポリシーが必要 |
リソース選択を定義 | すべてのリソースタイプを含める/特定のリソースタイプを含める | 該当バックアッププランで保護するリソースを定義 |
特定のリソースタイプを選択 | リソース一覧の中から[EC2]を選択し、対象のインスタンスIDを入力 | 該当のバックアッププランで保護する特定のリソースタイプを選択 |
選択したリソースタイプから特定のリソース ID を除外する - オプション | (リソースタイプ、リソースIDを指定) | 割り当てから除外したい特定のリソースがある場合、指定する |
タグを使用して選択を絞り込む - オプション | (対象のインスタンスに設定されたタグキー、タグ値の条件を指定) | 指定したタグが設定されているリソースを一括で割り当てることが可能 |
バックアップ取得確認
上記手順で取得したバックアップは[バックアップボールト]>[復旧ポイント]から、もしくは[保護されたリソース]から確認可能です。
・[バックアップボールト]からの確認画面
・[保護されたリソース]からの確認画面
復旧ポイントの数より設定したバックアップ保持数となっていることが確認できます。
また復旧ポイントIDはリストアの際に使用します。
おわりに
本記事ではAWS BackupにてEC2のAMIバックアップを自動取得する方法について記載しました。
バックアップを取得する際に、クロスアカウント/クロスリージョンでコピーすることができるという点が耐障害設計に使えるということが分かりました。
バックアップ設定自体はそこまで手間がかからないため、ぜひ参考にしていただければと思います。