はじめに
仕事でAWS Backupを使う機会があり、色々調べた内容をまとめます。
AWS Backupとは
AWSのバックアップ機能は既に存在していますが、AWS Backupはそれらの機能を一元管理するためのサービスです。
具体的にはバックアップのスケジューリングやバックアップの管理(ローテーションなど)を一つのインターフェースで操作することができます。
AWS Backupでは「バックアッププラン」という単位で管理し、その中に「バックアップルール」(実行スケジュール)と「リソース」(取得対象)を定義します。
作成時の項目
AWS Backupでバックアップ運用を設計するにあたり、検討するべき項目をまとめます。
(※以下、作成時の表示順序とは異なります)
バックアップ取得対象
取得対象の設定方法は下記2種類です。
- タグ指定 : 指定したタグが設定されているリソース
- リソース : 任意のリソースID(個別指定)
取得対象の数が多くない&今後増えることがない場合はリソースID直指定の方が設定は楽ですが、基本的にはタグ指定で設定すると思います。
取得スケジュール
バックアップを実行する時間とその周期を指定します。
- 取得周期 : 12時間毎、毎日、毎週、毎月
- 取得時間 : 任意の時間(UTC指定なので、JSTにする場合は-9時間で記載)
- バックアップウィンドウ : 1時間~8時間
取得周期と時間は上記がデフォルトセットですが、cron形式で細かく設定することもできます。
(例えば30分おきに取得など)
また、バックアップウィンドウは「この時間の間に取得する」という時間帯であり、任意の時間決め打ちで取得することができない点だけ注意が必要です。
(ただ、オンラインで取得可能なので実運用ではあまり意識しなくても良いと思います)
保管期限
作成後何日(あるいは週、月、年)経過したら削除するかを指定します。
あくまで世代数ではなく作成からの日数のため、一日に何回も取得するスケジュールの場合は考慮が必要です(あまり無いと思いますが)
ちなみに削除タイミングは「バックアップ実行時」です。
コールドストレージへの移行
バックアップをGlacierに保管するかどうかの設定です。
設定は任意ですが、有効にした場合、最低でも90日保管とする必要があります。
(システムバックアップ用途では不要ですが、監査要件などで長期保管が必要なデータを取る際には利用を検討しても良いと思います)
リージョン間コピー
取得したバックアップを他のリージョンにコピーするかどうかの設定です。
バックアップボールト
公式ドキュメントでは「バックアップを整理するためのコンテナ」と説明されていますが、主に下記を個別に設定したい場合に使う設定です。
任意で作成するか、デフォルト(Default)を使用するかを選択します。
- バックアップを暗号化するキーを指定
- バックアップへのアクセス権を設定
具体的には、マルチテナント(1つの基盤に複数のシステムが共存)でバックアップリソースの管理を厳密にしたい場合に使うようです。
(特に要件が無ければデフォルトで良いと思います)
IAMロール
任意で作成するかデフォルトのIAMロールを使用するかを選択します。
この場合のIAMロールはAWS Backup内のバックアップやその他のリソースへのアクセスを制御するものです。
デフォルトでは「AWSBackupDefaultServiceRole」というロールが自動で作成されてアタッチされますが、これもバックアップボールトと同じく、実行権限を厳密に管理したい場合以外はデフォルトで良いです。
少し細かい話をすると、AWS Backupに関する事前定義済みのポリシーは下記4つです。
「AWSBackupDefaultServiceRole」ではこの内③と④が適用されています。
①AWSBackupFullAccess : フルアクセス
②AWSBackupOperatorAccess : 取得対象追加、バックアップ/リストアを実行可能(スケジュール作成不可)
③AWSBackupServiceRolePolicyForBackup : バックアップ取得を実行可能
④AWSBackupServiceRolePolicyForRestores : リストアを実行可能
復旧ポイント(タグ追加)
取得したバックアップリソースに対し、任意でタグを追加できる機能です。
例えば、定期的に取得しているバックアップとそれ以外を分けて管理したい場合などに使えます。
(特に気にしない場合は設定不要)
補足
余談ですが、バックアッププランには他リソースと同様にNameなどのタグを付けて管理することが可能ですが、AWS Backupはタグエディターでの一括検索(及び編集)の対象にはなっておらず、個別に編集する必要があります。(2020/2/15時点)
明らかに正しい動作には見えないので、その内修正されるかもしれません。
(AWS Backup自体比較的新しめの機能なので、まだ実装が追い付いてないだけだと思います)