

# Systems Manager コマンドドキュメントを使用して VSS ベースのスナップショットを作成する
<a name="create-vss-snapshots-ssm"></a>

AWS Systems Manager コマンドドキュメントを使用して、VSS ベースのスナップショットを作成できます。以下のコンテンツでは、使用可能なコマンドドキュメントと、そのドキュメントがスナップショットの作成に使用するランタイムパラメータを紹介します。

Systems Manager のコマンドドキュメントを使用する前に、すべての[Windows VSS ベースの EBS スナップショットを作成するための前提条件](application-consistent-snapshots-prereqs.md)を満たしていることを確認してください。

**Topics**
+ [Systems Manager VSS スナップショットドキュメントのパラメータ](#create-vss-snapshots-ssm-params)
+ [Systems Manager VSS スナップショットコマンドドキュメントを実行する](#create-vss-snapshots-ssm-methods)

## Systems Manager VSS スナップショットドキュメントのパラメータ
<a name="create-vss-snapshots-ssm-params"></a>

VSS スナップショットを作成する Systems Manager ドキュメントはすべて、特に明記されていない限り、以下のパラメータを使用します。

**AmiName** (文字列、オプション)  
**CreateAmi** オプションが `True` に設定されている場合は、バックアップが作成する AMI の名前を指定します。

**description** (文字列、オプション)  
このプロセスで作成されるスナップショットまたはイメージの説明を指定します。

**CollectDiagnosticLogs** (文字列、オプション)  
スナップショットと AMI の作成ステップでより多くの情報を収集するには、このパラメータを `True` に設定します。このパラメータのデフォルト値は "`False`" です。統合診断ログは、インスタンス上の次の場所に `.zip` 形式のアーカイブとして保存されます。  
`C:\ProgramData\Amazon\AwsVss\Logs\{{timestamp}}.zip`

**CopyOnly** (文字列、オプション)  
AWS VSS に加えてネイティブ SQL Server バックアップを使用する場合は、コピーのみのバックアップを実行すると、AWS VSS によるネイティブ差分バックアップチェーンの中断を防ぐことができます。コピーのみのバックアップ操作を実行するには、このパラメータを `True` に設定します。  
このパラメータのデフォルト値は `False` であり、AWS VSS のフルバックアップ操作実行の原因となります。

**CreateAmi** (文字列、オプション)  
VSS ベースの Amazon マシンイメージ (AMI) を作成してインスタンスをバックアップするには、このパラメータを `True` に設定します。このパラメータのデフォルト値は `False` であり、代わりに EBS スナップショットを使用してインスタンスをバックアップします。  
インスタンスから AMI を作成する方法の詳細については、「[Amazon EBS-backed AMI を作成する](creating-an-ami-ebs.md)」と「」を参照してください。

**executionTimeout** (文字列、オプション)  
インスタンスでスナップショット作成プロセスを実行する最大時間、またはインスタンスから AMI を作成する最大時間を秒単位で指定します。このタイムアウトを長くすることで、VSS がフリーズを開始し、作成するリソースのタグ付けが完了するまで、コマンドがより長く待機できるようになります。このタイムアウトは、スナップショットまたは AMI の作成ステップにのみ適用されます。`AwsVssComponents` パッケージをインストールまたは更新する最初のステップは、タイムアウトには含まれません。

**ExcludeBootVolume** (文字列、オプション)  
この設定では、スナップショットを作成する場合に、バックアッププロセスからブートボリュームが除外されます。スナップショットからブートボリュームを除外するには、**ExcludeBootVolume** を `True` に、**CreateAmi** を `False` に設定します。  
バックアップ用に AMI を作成する場合、このパラメータを `False` に設定する必要があります。このパラメータのデフォルト値は `False` です。

**NoWriters** (文字列、オプション)  
アプリケーション VSS ライターをスナップショットプロセスから除外するには、このパラメータを `True` に設定します。アプリケーション VSS ライターを除外すると、サードパーティの VSS バックアップコンポーネントとの競合を解決しやすくなります。このパラメータのデフォルト値は `False` です。  
`SaveVssMetadata` が `True` の場合、このパラメータを `False` に設定する必要があります。

**SaveVssMetadata** (文字列、オプション)  
スナップショットを作成するたびに VSS メタデータファイルを保存するには、このパラメータを `True` に設定します。デフォルト値は `False` です。これらのファイルにより、バックアップ操作に含まれていたコンポーネントやライター、および各スナップショットの関連ファイルとボリューム関するインサイトが得られます。メタデータファイルは、VSS 復元ソリューションを使用して SQL データベースを復元するときに使用されます。VSS スナップショットから SQL データベースを復元する方法の詳細については、「[Use an automation runbook to restore your database from AWS VSS solution snapshots](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/ms-ssdb-ec2-restore-vss.html)」を参照してください。  
メタデータファイルの名前にスナップショット設定 ID が関連付けられています。メタデータファイルはインスタンスの次の場所にあります。  

```
C:\ProgramData\Amazon\AwsVss\VssMetadata\
```
+ VSS メタデータファイルを保存するには、バージョン 2.4.0 以降の `AwsVssComponents` パッケージが必要です。インスタンスの旧バージョンがインストールされている場合、`SaveVssMetadata` を `True` に設定するとスナップショットの作成が失敗します。
+ `NoWriters` パラメータと `SaveVssMetadata` パラメータは相互に排他的です。両方とも `True` に設定すると、スナップショットの作成が失敗します。

**tags** (文字列、オプション)  
スナップショットとイメージにタグを付けて、リソースを見つけて管理できるようにすること (スナップショットのリストからボリュームを復元するなど) をお勧めします。システムは、空白の値で `Name` キーを追加するので、出力スナップショットまたはイメージに適用する名前を指定できます。  
追加のタグを指定する場合は、セミコロンを使用してタグを区切ります。例えば、`Key=Environment,Value=Test;Key=User,Value=TestUser1`。  
タグのキーと値には、英数字と次の特殊文字のみを含める必要があります: `() ./\-"'@_+:={}`。
デフォルトでは、システムは VSS ベースのスナップショットおよびイメージ用に、次の予約済みタグを追加します。  
+ **Device** – VSS ベースのスナップショットの場合、これはスナップショットがキャプチャする EBS ボリュームのデバイス名です。
+ **AppConsistent** – このタグは、VSS 対応スナップショットまたは AMI が正常に作成されたことを示します。
+ **AwsVssConfig** – VSS を有効にして作成されたスナップショットと AMI を識別します。タグには、`AwsVssComponents` のバージョンとスナップショット設定 ID などのメタ情報が含まれています。
パラメータリストでこれらの予約済みタグのいずれかを指定すると、エラーが発生します。

**VssVersion** (文字列、オプション)  
`AWSEC2-VssInstallAndSnapshot` ドキュメントに限り、`VssVersion` パラメータを指定して、`AwsVssComponents` パッケージの特定のバージョンをインスタンスにインストールすることができます。推奨されているデフォルトバージョンをインストールするには、このパラメータを空白のままにします。  
指定したバージョンの `AwsVssComponents` パッケージがすでにインストールされている場合、スクリプトはインストール手順をスキップしてバックアップ手順に進みます。`AwsVssComponents` パッケージバージョンと運用サポートの一覧については、「[AWS VSS ソリューションのバージョン履歴](vss-comps-history.md)」を参照してください。

## Systems Manager VSS スナップショットコマンドドキュメントを実行する
<a name="create-vss-snapshots-ssm-methods"></a>

次のように AWS Systems Manager コマンドドキュメントを使用して、VSS ベースの EBS スナップショットを作成できます。

### AWSEC2-VssInstallAndSnapshot コマンドドキュメント (推奨) を実行します。
<a name="create-with-AWSEC2-VssInstallAndSnapshot"></a>

AWS Systems Manager を使用して `AWSEC2-VssInstallAndSnapshot` ドキュメントを実行すると、スクリプトは次のステップを実行します。

1. このスクリプトは、インスタンスが既にインストールされているかどうかに応じて、最初にインスタンスに `AwsVssComponents` パッケージをインストールまたは更新します。

1. このスクリプトは、最初のステップが完了した後に、アプリケーションと整合性のあるスナップショットを作成します。

`AWSEC2-VssInstallAndSnapshot` ドキュメントを実行するには、ご希望の環境に応じた手順に従ってください。

------
#### [ Console ]

**コンソールから VSS ベースの EBS スナップショットを作成する**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインから **[コマンドの実行]** をクリックします。該当する場合、アカウントで現在実行されているコマンドのリストが表示されます。

1. [**Run command**] を選択してください。これにより、アクセスできるコマンドドキュメントのリストが開きます。

1. コマンドドキュメントのリストから `AWSEC2-VssInstallAndSnapshot` を選択します。結果を効率化するために、ドキュメント名の全体または一部を入力できます。所有者、プラットフォームタイプ、またはタグでフィルタリングすることもできます。

   コマンドドキュメントを選択すると、詳細がリストの下に表示されます。

1. **[ドキュメントバージョン]** リストから `Default version at runtime` を選択します。

1. **[コマンドパラメータ]** を設定して、`AWSEC2-VssInstallAndSnapshot` による `AwsVssComponents` パッケージのインストール方法と VSS スナップショットまたは AMI によるバックアップ方法を定義します。パラメータの詳細については、「[Systems Manager VSS スナップショットドキュメントのパラメータ](#create-vss-snapshots-ssm-params)」を参照してください。

1. **[ターゲットの選択]** で、タグを指定するか、手動でインスタンスを選択して、この操作を実行するインスタンスを特定します。
**注記**  
インスタンスを手動で選択することにしたが、そのインスタンスがリストに表示されない場合は、「[インスタンスの場所](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-remote-commands.html#where-are-instances)」でトラブルシューティングのヒントを参照してください。

1. **[レート制御]** などの Systems Manager Run Command の動作を定義する追加パラメータについては、「[コンソールからのコマンドの実行](https://docs.aws.amazon.com/systems-manager/latest/userguide/running-commands-console.html)」の説明に従って値を入力します。

1. [**実行**] を選択します。

   成功すると、コマンドによって EBS スナップショットのリストに新しいスナップショットが入力されます。指定したタグまたは `AppConsistent` を検索することで、EBS スナップショットのリスト内でこれらのスナップショットを見つけることができます。コマンドの実行が失敗した場合、Systems Manager コマンド出力で、実行が失敗した理由の詳細を確認してください。コマンドは正常に完了したが特定のボリュームのバックアップが失敗した場合、EBS ボリュームのリストで失敗をトラブルシューティングできます。

------
#### [ AWS CLI ]

AWS CLI で次のコマンドを実行して、VSS ベースの EBS スナップショットを作成し、スナップショット作成のステータスを取得できます。

**VSS ベースの EBS スナップショットを作成する**  
次のコマンドを実行して、VSS ベースの EBS スナップショットを作成します。スナップショットを作成するには、`--instance-ids` パラメータを使用してインスタンスを識別する必要があります。使用可能なその他のパラメータについては、「[Systems Manager VSS スナップショットドキュメントのパラメータ](#create-vss-snapshots-ssm-params)」を参照してください。

```
aws ssm send-command \
	--document-name "AWSEC2-VssInstallAndSnapshot" \
	--instance-ids "{{i-01234567890abcdef}}" \
	--parameters '{"ExcludeBootVolume":["False"],"description":["Description"],"tags":["Key={{key_name}},Value={{tag_value}}"],"VssVersion":[""]}'
```

成功すると、コマンドドキュメントによって EBS スナップショットのリストに新しいスナップショットが入力されます。指定したタグまたは `AppConsistent` を検索することで、EBS スナップショットのリスト内でこれらのスナップショットを見つけることができます。コマンドの実行が失敗した場合、 コマンド出力で、実行が失敗した理由の詳細を確認してください。

**コマンドステータスの取得**  
スナップショットの現在のステータスを取得するには、**send-command** から返されたコマンド ID を使用して次のコマンドを実行します。

```
aws ssm get-command-invocation
	--instance-ids "{{i-01234567890abcdef}}" \
	--command-id "{{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}" \
	--plugin-name "CreateVssSnapshot"
```

------
#### [ PowerShell ]

AWS Tools for Windows PowerShell を使用して次のコマンドを実行して、VSS ベースの EBS スナップショットを作成し、出力作成の現在のランタイムステータスを取得します。前のリストで説明されたパラメータを指定して、スナップショットプロセスの動作を変更します。

**Windows 用ツール PowerShell を使用して VSS ベースの EBS スナップショットを作成する**  
次のコマンドを実行して、VSS ベースの EBS スナップショットまたは AMI を作成します。

```
Send-SSMCommand -DocumentName "AWSEC2-VssInstallAndSnapshot" -InstanceId "{{i-01234567890abcdef}}" -Parameter @{'ExcludeBootVolume'='False';'description'='{{a_description}}'
	;'tags'='Key={{key_name}},Value={{tag_value}}';'VssVersion'=''}
```

**コマンドステータスの取得**  
スナップショットの現在のステータスを取得するには、**Send-SSMCommand** から返されたコマンド ID を使用して次のコマンドを実行します。

```
Get-SSMCommandInvocationDetail -InstanceId "{{i-01234567890abcdef}}" -CommandId "{{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}" -PluginName "CreateVssSnapshot"
```

成功すると、コマンドによって EBS スナップショットのリストに新しいスナップショットが入力されます。指定したタグまたは `AppConsistent` を検索することで、EBS スナップショットのリスト内でこれらのスナップショットを見つけることができます。コマンドの実行が失敗した場合、 コマンド出力で、実行が失敗した理由の詳細を確認してください。

------

### AWSEC2-CreateVssSnapshot コマンドドキュメントを実行する
<a name="create-with-AWSEC2-CreateVssSnapshot"></a>

`AWSEC2-CreateVssSnapshot` ドキュメントを実行するには、ご希望の環境に応じた手順に従ってください。

------
#### [ Console ]

**コンソールから VSS ベースの EBS スナップショットを作成する**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインから **[コマンドの実行]** をクリックします。該当する場合、アカウントで現在実行されているコマンドのリストが表示されます。

1. [**Run command**] を選択してください。これにより、アクセスできるコマンドドキュメントのリストが開きます。

1. コマンドドキュメントのリストから `AWSEC2-CreateVssSnapshot` を選択します。結果を効率化するために、ドキュメント名の全体または一部を入力できます。所有者、プラットフォームタイプ、またはタグでフィルタリングすることもできます。

   コマンドドキュメントを選択すると、詳細がリストの下に表示されます。

1. **[ドキュメントバージョン]** リストから `Default version at runtime` を選択します。

1. **[コマンドのパラメータ]** を設定して、`AWSEC2-CreateVssSnapshot` が VSS スナップショットまたは AMI を使用してバックアップする方法を定義します。パラメータの詳細については、「[Systems Manager VSS スナップショットドキュメントのパラメータ](#create-vss-snapshots-ssm-params)」を参照してください。

1. **[ターゲットの選択]** で、タグを指定するか、手動でインスタンスを選択して、この操作を実行するインスタンスを特定します。
**注記**  
インスタンスを手動で選択することにしたが、そのインスタンスがリストに表示されない場合は、「[インスタンスの場所](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-remote-commands.html#where-are-instances)」でトラブルシューティングのヒントを参照してください。

1. **[レート制御]** などの Systems Manager Run Command の動作を定義する追加パラメータについては、「[コンソールからのコマンドの実行](https://docs.aws.amazon.com/systems-manager/latest/userguide/running-commands-console.html)」の説明に従って値を入力します。

1. [**実行**] を選択します。

   成功すると、コマンドによって EBS スナップショットのリストに新しいスナップショットが入力されます。指定したタグまたは `AppConsistent` を検索することで、EBS スナップショットのリスト内でこれらのスナップショットを見つけることができます。コマンドの実行が失敗した場合、Systems Manager コマンド出力で、実行が失敗した理由の詳細を確認してください。コマンドは正常に完了したが特定のボリュームのバックアップが失敗した場合、EBS ボリュームのリストで失敗をトラブルシューティングできます。

------
#### [ AWS CLI ]

AWS CLI で次のコマンドを実行して、VSS ベースの EBS スナップショットを作成できます。

**VSS ベースの EBS スナップショットを作成する**  
次のコマンドを実行して、VSS ベースの EBS スナップショットを作成します。スナップショットを作成するには、`--instance-ids` パラメータを使用してインスタンスを識別する必要があります。使用可能なその他のパラメータについては、「[Systems Manager VSS スナップショットドキュメントのパラメータ](#create-vss-snapshots-ssm-params)」を参照してください。

```
aws ssm send-command \
	--document-name "AWSEC2-CreateVssSnapshot" \
	--instance-ids "{{i-01234567890abcdef}}" \
	--parameters '{"ExcludeBootVolume":["False"],"description":["Description"],"tags":["Key={{key_name}},Value={{tag_value}}"]}'
```

成功すると、コマンドドキュメントによって EBS スナップショットのリストに新しいスナップショットが入力されます。指定したタグまたは `AppConsistent` を検索することで、EBS スナップショットのリスト内でこれらのスナップショットを見つけることができます。コマンドの実行が失敗した場合、 コマンド出力で、実行が失敗した理由の詳細を確認してください。

------
#### [ PowerShell ]

AWS Tools for Windows PowerShell で次のコマンドを実行して、VSS ベースの EBS スナップショットを作成します。

**Windows 用ツール PowerShell を使用して VSS ベースの EBS スナップショットを作成する**  
次のコマンドを実行して、VSS ベースの EBS スナップショットを作成します。スナップショットを作成するには、`InstanceId` パラメータを使用してインスタンスを識別する必要があります。複数のインスタンスを指定してスナップショットを作成できます。使用可能なその他のパラメータについては、「[Systems Manager VSS スナップショットドキュメントのパラメータ](#create-vss-snapshots-ssm-params)」を参照してください。

```
Send-SSMCommand -DocumentName AWSEC2-CreateVssSnapshot -InstanceId "{{i-01234567890abcdef}}" -Parameter @{'ExcludeBootVolume'='False';'description'='{{a_description}}'
	;'tags'='Key={{key_name}},Value={{tag_value}}'}
```

成功すると、コマンドによって EBS スナップショットのリストに新しいスナップショットが入力されます。指定したタグまたは `AppConsistent` を検索することで、EBS スナップショットのリスト内でこれらのスナップショットを見つけることができます。コマンドの実行が失敗した場合、 コマンド出力で、実行が失敗した理由の詳細を確認してください。コマンドは正常に完了したが特定のボリュームのバックアップが失敗した場合、EBS スナップショットのリストで失敗をトラブルシューティングできます。

------

### 共有 EBS ストレージを持つ Windows フェイルオーバークラスターのコマンドドキュメントを実行する
<a name="create-vss-win-failover-cluster"></a>

前のセクションで説明したいずれかのコマンドライン手順を使用して、VSS ベースのスナップショットを作成できます。コマンドドキュメント (`AWSEC2-VssInstallAndSnapshot` または `AWSEC2-CreateVssSnapshot`) は、クラスターのプライマリノードで実行する必要があります。セカンダリノードは共有ディスクにアクセスできないため、ドキュメントの実行は失敗します。プライマリノードとセカンダリノードが動的に変化する場合は、AWS Systems Manager Run Command ドキュメントを複数のノードで同時に実行できますが、プライマリノードではコマンドが成功し、セカンダリノードでは失敗します。

**注記**  
バックアップを自動化するには、`AWSEC2-VssInstallAndSnapshot` ドキュメントを使用する AWS Systems Manager メンテナンスウィンドウタスクを作成できます。詳細については、*AWS Systems Manager ユーザーガイド*の[メンテナンスウィンドウの使用 (コンソール)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-working.html)を参照してください。