AWS Backup VSS対応バックアップ取得

AWS
この記事は約8分で読めます。
記事内に広告が含まれています。

AWS Backupを使うと、VSS(Volume Shadow Copy)オプションを有効にしてEC2バックアップ(AMI)を取得可能です。今回は色々と試してみた際の手順をご紹介します。

※今回はwindows serverを対象にします!

※VSSを利用すると一時的にディスクI/Oを保留してくれるため、EC2を停止しなくても、整合性がとれたバックアップが可能です。

では早速!

全体概要

AWS公式サイトによる手順は次の通りですが、うーん、若干わかりにくいです。

Windows VSS バックアップの作成 - AWS Backup
AWS Backup を使用して Amazon EC2 でアプリケーション固有の Windows バックアップを作成します。

VSS実行のための要件はざっくりと次の通りです。

  • systems managerのrun commandが使えること。
  • ec2にvss関係のエージェントが必要。
  • ec2に一部ロール設定が必要。
  • ec2にaws powershell toolsが必要。

aws backupのバックアップが開始されると、systems managerのrun command経由で、EC2に対してvss命令が発行されて、静止点バックアップが取得できるような流れです。また公式サイトに記載はありませんがaws powershell toolsが必要です(ただしaws提供のamiから起動していれば既に入っているとのこと)。

プロキシ設定が必要な場合もあります。

該当ec2がプロキシ配下だとaws powershell toolsのためのプロキシ設定も必要です。systems managerのプロキシ設定とは別に、個別のプロキシ設定があったりと、プロキシ配下でec2を運用している場合は、毎回悩まされます・・・。全部os環境変数のhttp_proxyとかに統一してくれれば楽なのに・・・・。

設定していきます

全部の設定を本ページで載せているわけではありませんが、ポイントを絞って試した際のポイントを書いていきますね。

run commandが使えること。

EC2内にssm agentが存在し、ssm agentがAWSと通信できている状態ならOKです。詳細は以下の記事で触れていますが、ssm agentと通信できていれば、systems agentの「フリートマネージャ―」に表示されます。

systems managerの管理配下にある。

ここまでいければ、Run Commandも動くはずです。なお、Backup時は「AWSEC2-CreateVssSnapshot」が呼び出されます。

vssエージェントのインストール

続いて、systems managerのRun Commandを使って、VSS実行に必要なエージェント(パッケージ)をインストールします。ドキュメントタイプ「AWS-ConfigureAWSPackage」を選択し、該当のEC2に対して発行します。

ドキュメントタイプの選択画面です。

画面キャプチャはありませんが、コマンドパラメータのNameは「AwsVssComponents」を設定します。所要時間は1分程度です。完了後、コマンドログを確認すると以下のようにありました。

Successfully installed arn:aws:ssm:::package/AwsVssComponents 1.3.2.0

また、インストール後にEC2内のWindowsサービスで「Ec2VssSoftwareProvider」が動作しています。動いてない場合は一度再起動したほうが良いでしょう。

Ec2VssSoftwareProvideが動作している。

参考までに載せておきますが、このエージェントが入っていないとAWSからBackup(VSS有)を実行した場合に、次のようなエラーが表示されます。

failed to run commands: exit status 1
ec2-vss-agent.exe is not installed. To install, run command AWS-ConfigureAWSPackage with package AwsVssComponents

EC2にロール設定

EC2のロールに次が必要です。

  • AmazonSSMManagedInstanceCore
  • タグ作成等(JSONは後述)

なお、最初の「AmazonSSMManagedInstanceCore」についてはsystems managerの管理下になるための設定で既にあるかもしれません。

タグ作成等のJSONは次の通りです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": [
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*::image/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:CreateSnapshot",
                "ec2:CreateImage",
                "ec2:DescribeImages"
            ],
            "Resource": "*"
        }
    ]
}

aws powershell tools

VSSのドキュメント部分には書かれていませんが、「AWS PowerShell」も必要です。(基本的にAWS提供のAMIであれば、含まれている)。こちらが入ってなかったり未設定だと、次のようなエラーが表示されます。

Error: Unable to locate AWS PowerShell tools that are necessary for tagging.
Please ensure that AWS PowerShell tools are installed

公式サイトによるインストールマニュアルは次の通り。

Windows への AWS Tools for PowerShell のインストール - AWS Tools for PowerShell
Windows ベースのコンピュータでは、AWS Tools for PowerShell パッケージオプションのいずれかを実行できます。

powershell 5.0以降であればinstall moduleを利用し、以前であればインストーラパッケージを使えばOKです。また、aws powershell toolsのプロキシ設定も必要です(環境変数などで設定、詳細は割愛します・・・)。

VSS有効のバックアップ取得

必要な設定は終えたため、実際にバックアップを取得してみます。

※AWS Backupの細かい説明は割愛します。

AWS Backupのバックアッププランの設定項目より「アドバンスドバックアップ設定」を選択し、Windows VSSにチェックを入れておきます。

Windows VSSを有効に。

あとはバックアップの実行タイミングを待ちます。

・・・・

さて、AWS Backupによってバックアップ(AMI)生成された後、実際にVSS対応のバックアップが動作したのか確認してきます。以下のことがわかりました。

  • AWS BackupからVSS結果はわからない。
  • Systems managerのRun Command履歴に「AWSEC2-CreateVssSnapshot」が「成功」として存在する。
  • EC2にタグ「AppConsistent」が設定されている。
  • WindowsイベントログにVSS動作ログが記録されている。

ここまで、プロキシ設定などでトライ&エラーでしたが、無事に動作したようです。これでOS整合性のバックアップのために、わざわざEC2を停止(電源OFF)をしなくてもOKということになります。


結果確認の補足事項を以下に残しておきます。

Windowsイベントログは次のように記録されます。

イベントログ。

EC2のタグは次のように付与されますが、EC2が動作してVSSが実行された時のみです。停止状態である場合は付与されません。また、準備時にタグ関係のロール設定を実施しましたが、このタグ設定のためだったわけですね。

タグが付与される。

また、VSSが失敗したり、バックアップグループにVSS非対応のEC2がいても、AWS Backup自体は問題なく「成功」としてカウントされます。ただし、Systems managerのコマンド履歴は以下のように「成功」「失敗」が混在することになります。

AWSEC2-CreateVssSnapshot

まとめ

AWS BackupサービスのVSSを利用したバックアップについてご紹介しました。EC2に対してエージェントインストールやプロキシ設定などの前提条件はありますが、EC2がrunning状態において、静止点でのバックアップが取得できるのは強い味方です。

最後までご覧いただきありがとうございました!

コメント

Top
タイトルとURLをコピーしました