CI部2課の山﨑です。
AWSではEC2のAMI、EBSのスナップショット、RDSのスナップショットなどAWSサービスごとに様々なバックアップ方法があります。本記事ではこれらを一元管理することが可能なAWS Backupというサービスについて、その仕組みや基本操作を整理していきます。
AWS Backupとは
AWSドキュメントには以下のように紹介されています。バックアップの一元管理とバックアップアクティビティのモニタリングが可能であるということさえ押さえておくと良いです。
AWS Backup はフルマネージド型のバックアップサービスであり、AWSクラウド内およびオンプレミスのサービス間でデータのバックアップを簡単に一元化および自動化できます。を使用するとAWS Backup、バックアップポリシーを設定しAWS、リソースのバックアップアクティビティを一元的にモニタリングできます。
仕組み
AWS Backupではバックアップボールトと呼ばれるバックアップの保存先に対して、バックアッププランで定めたルールに基づいたジョブを実行することでバックアップ(復旧ポイント)を取得しています。ジョブの実行対象、つまりバックアップを取得したいAWSリソースはタグもしくはリソースIDを指定することでバックアッププランと関連付けます。

図ではバックアップボールトにKMSが記載されていますが、バックアップボールトに設定するKMSを使用して暗号化されるのはEFSのみです。その他のAWSサービス、例えばEBSのスナップショットでは EBS ボリュームの暗号化に使用されているものと同じ暗号化キーで自動的に暗号化されます。
料金
AWS Backupでは最低料金および初期費用は発生せず、以下の3つの料金の合算金額が請求されます。
- バックアップストレージの料金
- 復元の料金
- クロスリージョンのデータ転送料金表
AWS Backupをセットアップしてみる
バックアップボールトを作成
まずはバックアップの保存先であるバックアップボールトを作成します

バックアッププランを作成
次にバックアッププランを作成しジョブの実行ルールを定義します。実行ルールではバックアップの保存先(バックアップボールト)やバックアップ頻度の指定、バックアップウィンドウの設定などを行います。

バックアッププランをAWSリソースと関連付ける
最後にバックアッププランをバックアップを取得したいAWSリソースと関連付けます。これをAWS Backupではリソースの割り当てと呼びます。


動作確認
少し時間を空けてからジョブを確認すると実行されていることが確認できました

復旧ポイントからEC2を復元する
取得されたバックアップ(復旧ポイント)は保護されたリソースというメニューから確認することができます。

復元したいリソースを選択して復元をクリックし、必要な情報を入力して復元を実行します。


復元する際にAWS Backupに渡すIAMロールの権限について
あいにくデフォルトのIAMロールに与えられている権限では不足しているためインスタンスを復元することができません。そのため今回はAWSBackupOperatorRoleというIAMロールを新規作成して復元時にAWS Backupに渡しました。

詳細はIAM設計の話になってしまうため割愛しますが、少なくとも以下のポリシーを付与したIAMロールを指定すればEC2インスタンスの復元が可能です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole", #EC2にIAMロールをアタッチする際に必要
"Resource": "*"
},
{
"Action": [
"ec2:DescribeSnapshots",
"ec2:DescribeVolumes",
"ec2:describeAvailabilityZones",
"ec2:DescribeVpcs",
"ec2:DescribeAccountAttributes",
"ec2:DescribeSecurityGroups",
"ec2:DescribeImages",
"ec2:DescribeSubnets",
"ec2:DescribePlacementGroups",
"ec2:DescribeInstances",
"ec2:DescribeInstanceTypes",
"ec2:CreateVolume",
"ec2:RunInstances"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
しばらくすると復元ジョブが完了してインスタンスが起動していることが確認できました。


まとめ
復元する際にAWS Backupに渡すIAMロールの権限について、デフォルトのIAMロールだと復元ができないという点は盲点でしたがその他の操作についてはコンソールをクリックしていくだけでしたのでスムーズに設定することができました。AWSでバックアップをする際は是非AWS Backupをご活用ください。
山﨑 翔平 (Shohei Yamasaki) 記事一覧はコチラ
カスタマーサクセス部所属。2019年12月にインフラ未経験で入社し、AWSエンジニアとしてのキャリアを始める。2023 Japan AWS Ambassadors/2023-2024 Japan AWS Top Engineers