Windows インスタンスのスナップショット取得時、ブートボリュームを除外して実施する方法を教えてください
困っていること
Windows インスタンスを運用しています。スナップショット取得時の要件としてアプリケーションと整合性のあることが条件であり、ブートボリュームは除外して実施したいです。
方法があれば教えてください。
どう対応すればいいの?
Amazon Data Lifecycle Manager を使用する方法が考えられるものの、アプリケーションと整合性のあるスナップショットの場合については、Systems Manager の Run Command を利用した取得をご検討ください。
より具体的には、AWS Systems Manager を使用した AWSEC2-VssInstallAndSnapshot ドキュメント実行時に、以下のパラメータを設定します。
- ExcludeBootVolume : True
- CreateAmi : False
VSS スナップショットを作成する Systems Manager ドキュメントはすべて、特に明記されていない限り、以下のパラメータを使用します。
ExcludeBootVolume (文字列、オプション)
この設定では、スナップショットを作成する場合に、バックアッププロセスからブートボリュームが除外されます。スナップショットからブートボリュームを除外するには、ExcludeBootVolume を True に、CreateAmi を False に設定します。
やってみた
前提条件 についてご確認ください。
よくある失敗原因として、権限不足によるエラーがございます。
そのため、対象ノードにアタッチしているロールに対して、AWS 管理ポリシー のAWSEC2VssSnapshotPolicy を必ずアタッチしてください。
1.マネージドノード済み の Windows インスタンスを作成します。マネージドノードにする方法については割愛させて頂きます。
2.AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。
3.ナビゲーションペインから Run Command をクリックします。該当する場合、アカウントで現在実行されているコマンドのリストが表示されます。
4.Run Command を選択します。これにより、アクセスできるコマンドドキュメントのリストが開きます。
5.コマンドドキュメントのリストから AWSEC2-VssInstallAndSnapshot を選択します。
6.Default version at runtime を選択します。
7.コマンド パラメータを設定します。今回は以下の設定をします。
- ExcludeBootVolume : True
- CreateAmi : False
8.ターゲットを選択します。
9.今回はその他の設定は行わず、下部までスクロールして実行します。
これで終了です。
無事に Run Command が成功しました!
ステップ 1 Output
Running install step.
ステップ 2 Output
arn:aws:ssm:::package/AwsVssComponents 2.3.3 is already installed
※ 一部マスクします
ステップ 3 Output
Beginning snapshot for drives "A:"
Starting Initialize Vss Operation Channel at 71814.1135 ms
Starting VSS Agent at 71883.2419 ms
Waiting for Freeze pipe at 71898.7312 ms
Freeze pipe connected at 85780.8761 ms
Received EBS snapshot Freeze message: {"OperationType": 100} at 85797.2542
Sending Context to Provider at 85827.0186 ms
Sent Context to Provider at 85843.1095 ms
Waiting for result from provider at 85858.3716 ms
Got result at 86984.1908 ms
Application consistent snapshots were successfully taken
Snapshot ResponseId: 0
VssSnapshotSetId: {xxxxxxxx-B654-4A1D-AAAA-A7BBBBBBBBBB}
Snapshot: snap-05c0644xxxxxxxxxx DeviceName: xvdb
Disposing pipes at 87090.7643 ms
{"Snapshots":[{"SnapshotId":"snap-05c0644xxxxxxxxxx","Device":"xvdb","EbsVolumeId":"vol-051483ea9db645d1c"}],"Error":0,"VolumeCount":1,"FreezeTimeInMS":470,"VssSnapshotSetId":"{xxxxxxxx-B654-4A1D-AAAA-A7BBBBBBBBBB}"}
作成された EBS スナップショットを確認します。
AppConsistent:true タグが存在しており、AwsVssConfig:Ver:2.3.3.27 がありました。
無事に完了です!
システムは、EBS スナップショットのリストに、新規作成されたすべてのスナップショットを追加します。システムは、このプロセスによって正常に作成されたすべての VSS 対応 EBS スナップショットに、AppConsistent:true とタグ付けします。
参考資料
- Amazon Data Lifecycle Manager の仕組み - Amazon EBS
- AWS Systems Manager コマンドドキュメントを使用して VSS スナップショットを作成する - Amazon Elastic Compute Cloud
- 前提条件 - Amazon Elastic Compute Cloud
- IAM アクセス許可 - Amazon Elastic Compute Cloud
- アプリケーションと整合性のある、Windows VSS ベースの Amazon EBS スナップショット - Amazon Elastic Compute Cloud
- AWS VSS ソリューションのバージョン履歴 - Amazon Elastic Compute Cloud