🔍前置き
皆さんAWSbackup使ってますか?
AWSbackupは名前の通りAWSにおける様々なリソースのバックアップをサポートしてくれる便利な機能です。
今回はそれをCloudFormationで構築する機会があったので記事にしてみました。
🔍早速CloudFormationテンプレート全文
まず何はともあれタイトルにもある通りCloudFormationテンプレート(.yml)を見せます。
簡単に説明すると
バックアップボールト、バックアッププラン、バックアップルール、IAMロール
が作成されます。
#バージョン指定
AWSTemplateFormatVersion: "2010-09-09"
#スタックの説明(コメント)
Description:
Create_BackupPlan
#パラメータ
Parameters:
#BackupRoleName
BackupRoleName:
Type: String
Default: Backup-Role
#BackupRule_name
BackupRuleName:
Type: String
Default: BackupRule
#BackupVault_name
BackupVaultName:
Type: String
Default: BackupVault
#BackupPlan_name
BackupPlanName:
Type: String
Default: BackupPlan
#Date
storageday:
Type: String
Default: 15 #保管日数15日(max35日)
#backupstart
backupstart:
Type: String
Default: cron(0 16 * * ? *) # 日本時間1時からバックアップ
#BackupTag
Backuptag:
Type: String
Default: Backup #バックアップしたいリソースにつけるタグ
#Backupkey
Backupkey:
Type: String
Default: true #タグにつけるキー
#リソースの定義
Resources:
BackupRole:
Type: AWS::IAM::Role
Properties:
RoleName : !Ref BackupRoleName
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- backup.amazonaws.com
Action:
- sts:AssumeRole
Path: /
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForBackup
- arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores
-
Vault:
Type: AWS::Backup::BackupVault
Properties:
BackupVaultName: !Ref BackupVaultName
Plan:
Type: AWS::Backup::BackupPlan
Properties:
BackupPlan:
BackupPlanName: !Ref BackupPlanName
BackupPlanRule:
- RuleName: !Ref BackupRuleName
TargetBackupVault: !Ref Vault
ScheduleExpression: cron(0 16 * * ? *)
StartWindowMinutes: 60
Lifecycle:
DeleteAfterDays: !Ref storageday
BackupSelection:
Type: AWS::Backup::BackupSelection
Properties:
BackupPlanId: !Ref Plan
BackupSelection:
SelectionName: BackupSelection
IamRoleArn: !Ref BackupRole
ListOfTags:
- ConditionType: STRINGEQUALS
ConditionKey: !Ref Backuptag
ConditionValue: !Ref Backupkey
DependsOn: Plan
🔍使い方
難しい仕様なんかは抜きにして…まずは使い方!
デフォルトで全部入れてあるので、
名前や保管期間など変更したいものを変更してCloudFormationを実行してください!
無事作成されたら、バックアップを取りたいリソースにBackuptagでつけたタグをつけて
Backupkeyで指定したキーをつけてください!
それだけで自動的にバックアップが行われて、バックアップボールトに保管されます!
どのリソースでもAWSbackupがサポートさえしていればバックアップ可能です!
🔍AWSbackupの細かい仕様
ここはどういう理屈でって話になるので、もういいよって人は読み飛ばしてもらって大丈夫です。
AWSbackupは簡単に言うと、AWSbackupのバックアップルールの持つタグと同じタグを持つリソースのバックアップをそのリソースにあったバックアップ形式を自動で判断しバックアップを行ってくれる機能です。
そのためユーザーはバックアップの種類を意識することなくバックアップを管理できます。
🔍まとめ
今回はAWSbackupについてまとめました。
AWSbackupはかなり簡単に使えるのに役立つサービスなのでぜひ使ってくださいね!