0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

190日目 CloudFormationでAWSbackupを設定してみた 社畜L

Last updated at Posted at 2024-10-18

🔍前置き

皆さん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はかなり簡単に使えるのに役立つサービスなのでぜひ使ってくださいね!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?