AWS Backupで大阪リージョンで稼働するEC2環境を保護してみた

AWS大阪リージョンで稼働するEC2の日次バックアップとリージョン間コピーをAWS Backupで行ってみました。
2021.07.07

AWSチームのすずきです。

2021年3月に開設された大阪リージョンで稼働するシステムのデータを保護するため、 AWS Backup を設定する機会がありましたので紹介させて頂きます。

概要図

IAM設定

デフォルトのサービスロール「AWSBackupDefaultServiceRole」を利用しました。

過去にAWS Backup の利用実績が無いアカウントでは、以下の記事を参考に事前にサービスロールを追加してください。

AWSBackup設定

東京リージョン

DRを想定したAMIのコピー先とする東京リージョンに、CloudFormationを利用して「BackupVault」を作成しました。

AWSTemplateFormatVersion: "2010-09-09"
Description: "AWS Backup BackupVault (DR destination)"
Resources:
  BackupVault:
    Type: AWS::Backup::BackupVault
    Properties:
      BackupVaultName: !Sub 'BackupVault-Osaka-DR'
Outputs:
  BackupVaultArn:
    Value: !GetAtt 'BackupVault.BackupVaultArn'

「BackupVault」のARNは、大阪リージョンのAWS Backup設定で利用します。

大阪リージョン

大阪リージョンに 「BackupPlan」と 「BackupVault」を作成しました。

  • コピー先は、東京リージョンで作成した「BackupVault」のARNを引数で指定しました。
AWSTemplateFormatVersion: '2010-09-09'
Description: AWS Backup EC2 osaka
Parameters:
  DrBackupVaultArn:
    Description: DestinationBackupVaultArn
    Type: String
    Default: arn:aws:backup:ap-northeast-1:000000000000:backup-vault:BackupVault-Osaka-DR
  TargetEc2Tag:
    Description: Backup target EC2 tag
    Type: String
    Default: cm-aws-backup-1
Resources:
  BackupVault:
    Type: AWS::Backup::BackupVault
    Properties:
      BackupVaultName: !Sub 'BackupVault-Osaka-EC2'
  BackupPlan:
    Type: AWS::Backup::BackupPlan
    DependsOn: BackupVault
    Properties:
      BackupPlan:
        BackupPlanName: !Sub 'BackupPlan-Osaka-EC2'
        AdvancedBackupSettings:
          - ResourceType: EC2
            BackupOptions:
              WindowsVSS: disabled
        BackupPlanRule:
          - RuleName: RuleForDailyBackups
            StartWindowMinutes: 60
            CompletionWindowMinutes: 120
            TargetBackupVault: !Ref 'BackupVault'
            ScheduleExpression: cron(0 16 ? * 1-7 *)
            Lifecycle:
              DeleteAfterDays: 7
            CopyActions:
              - DestinationBackupVaultArn: !Ref 'DrBackupVaultArn'
                Lifecycle:
                  DeleteAfterDays: 7
  TagBasedBackupSelection:
    Type: AWS::Backup::BackupSelection
    Properties:
      BackupSelection:
        SelectionName: TagBasedBackupSelection
        IamRoleArn: !Sub 'arn:aws:iam::${AWS::AccountId}:role/service-role/AWSBackupDefaultServiceRole'
        ListOfTags:
          - ConditionType: STRINGEQUALS
            ConditionKey: !Ref 'TargetEc2Tag'
            ConditionValue: enable
      BackupPlanId: !Ref 'BackupPlan'
    DependsOn: BackupPlan

バックアッププラン設定

ScheduleExpression
  • 毎日、日本時間の深夜1時台に開始する設定としました。
StartWindowMinutes、CompletionWindowMinutes
  • 他の処理に影響する事を避けるため、日本時間の深夜3時までに完了する指定としました。
WindowsVSS
  • Linux環境の保護の為、指定は無効としました。

バックアップ対象設定

  • 引数「TargetEc2Tag」に一致するタグの値が「enable」であるEC2を対象としました。

動作確認

バックアップ頻度を一時的に「毎時」に変更し、動作確認を試みました。

大阪

  • ジョブ情報

東京

  • ボールド情報

まとめ

大阪リージョンで AWS Backup を利用したEC2のAMI作成、リージョン間コピーが出来る事が確認できました。

DRを想定した利用の可能性がある場合、退避したAMIを利用したリストアの検証を頂く事をおすすめします。

3/2の大阪リージョン開設直後は AWS Backupは未サポートでしたが、データ消失リスクを軽減する手段としてご活用ください。