

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# 自動オペレーションを大規模に実行する
<a name="running-automations-scale"></a>

AWS Systems Manager オートメーションを使用すると、ターゲットを使用して AWS リソースのフリートで自動化処理を実行できます。さらに、同時実行値とエラーのしきい値を指定することで、フリート全体のオートメーションのデプロイを制御することができます。同時実行数とエラーのしきい値機能は、まとめて*レート制御*と呼ばれます。同時実行値は、オートメーションを同時に実行できるリソースの数を決定します。オートメーションには、オプトインできる適応同時実行モードも用意されています。適応同時実行では、同時実行される自動化処理数のクオータが、100 個から最大 500 個まで自動的にスケーリングされます。エラーのしきい値は、Systems Manager がオートメーションの他のリソースへの送信を停止するまでの、オートメーションの失敗の許容量を決定します。

同時実行とエラーしきい値の詳細については、「[オートメーションを大規模に制御する](running-automations-scale-controls.md)」を参照してください。ターゲットの詳細については、「[オートメーションのターゲットのマッピング](running-automations-map-targets.md)」を参照してください。

以下の手順で、Systems Manager コンソールおよび AWS Command Line Interface (AWS CLI) を使用して、適応同時実行を有効化する方法、ならびに、ターゲットおよびレート制御を使用したオートメーションの実行方法について説明します。

## ターゲットとレート制御を使用してオートメーションを実行する (コンソール)
<a name="scale-console"></a>

次の手順では、Systems Manager コンソールを使用してターゲットおよびレート制御により、シンプルなオートメーションを実行する方法を説明します。

**ターゲットとレート制御を使用してオートメーションを実行するには**

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

1. ナビゲーションペインで、[**オートメーション**]、[**オートメーションの実行**] の順に選択します。

1. [**Automation document (自動化ドキュメント)**] リストで、ランブックを選択します。[**Document categories (ドキュメントカテゴリ)**] ペインで 1 つ以上のオプションを選択して、目的に応じて SSM ドキュメントをフィルタリングします。自分が所有するランブックを表示するには、[**Owned by me (自分が所有)**] タブを選択します。自分のアカウントと共有されているランブックを表示するには、[**Shared with me (共有ファイル)**] タブを選択します。すべてのランブックを表示するには、[**すべてのドキュメント**] タブを選択します。
**注記**  
ランブックの名前を選択すると、ランブックに関する情報を表示できます。

1. [**Document details (ドキュメントの詳細)**] セクションで、[**Document version (ドキュメントのバージョン)**] が実行するバージョンに設定されていることを確認します。システムには、次のバージョンのオプションが含まれています。
   + **[ランタイムのデフォルトバージョン]**: 自動化ランブックが定期的に更新され、新しいデフォルトバージョンが割り当てられている場合は、このオプションを選択します。
   + **[ランタイムの最新バージョン]**: 自動化ランブックが定期的に更新され、直前に更新されたバージョンを実行する場合は、このオプションを選択します。
   + **[1 (デフォルト)]**: ドキュメントの最初のバージョンを実行するには、このオプションを選択します。これはデフォルト設定です。

1. [**次へ**] を選択します。

1. [**Execution Mode (実行モード)**] セクションで [**Rate Control (レート制御)**] を選択します。ターゲットとレート制御を使用する場合は、このモードまたは [**Multi-account and Region (マルチアカウントとリージョン)**] を使用する必要があります。

1. [**Targets (ターゲット)**] セクションで、オートメーションを実行する AWS リソースをどのようにターゲットにするかを選択します。これらのオプションは必須です。

   1. [**Parameter (パラメータ)**] リストを使用してパラメータを選択します。[**Parameter (パラメータ)**] リストの項目は、この手順の開始時に選択した自動化ドキュメントのランブックによって決まります。パラメータを選択して、自動化ワークフローが実行されるリソースの種類を定義します。

   1. [**Targets (ターゲット)**] リストを使用して、リソースをターゲットにする方法を選択します。

      1. パラメータ値を使用してターゲットリソースを選択した場合は、[**Input parameters (パラメータの入力)**] セクションで選択したパラメータのパラメータ値を入力します。

      1. AWS Resource Groups を使用してターゲットリソースを選択した場合、[**Resource Group (リソースグループ)**] リストからグループの名前を選択します。

      1. タグを使用してターゲットリソースを選択した場合は、タグキーと (オプションとして) タグ値をフィールドに入力します。[**Add**] (追加) をクリックします。

      1. 現在の AWS アカウント および AWS リージョン にあるすべてのインスタンスでオートメーションランブックを実行する場合、[**All instances (すべてのインスタンス)**] を選択します。

1. [**Input parameters (入力パラメータ)**] セクションで、必要な入力を指定します。必要に応じて、[**AutomationAssumeRole**] リストから IAM サービスロールを選択できます。
**注記**  
[**Input parameters (入力パラメータ)**] セクションでオプションを選択する必要はありません。これは、タグまたはリソースグループを使用してリソースをターゲットとしたためです。例えば、`AWS-RestartEC2Instance` ランブックを選択した場合、[**Input parameters (入力パラメータ)**] セクションでインスタンス ID を指定または選択する必要はありません。オートメーションの実行では、指定したタグまたはリソースグループを使用してインスタンスを再起動します。

1. [**Rate control (レート制御)**] セクションのオプションを使用して、各アカウントとリージョンのペア内でオートメーションを実行できる AWS リソースの数を制限します。

   [**Concurrency (同時実行数)**] セクションでオプションを選択します。
   + [**targets (ターゲット)**] を選択して、自動化ワークフローを同時に実行できるターゲットの絶対数を入力します。
   + [**percentage (パーセント値)**] を選択して、自動化ワークフローを同時に実行できるターゲットセットのパーセント値を入力します。

1. [**Error threshold (エラーのしきい値)**] セクションでオプションを選択します。
   + [**errors (エラー)**] を選択して、自動化が他のリソースへのワークフローの送信を停止するまでに許容されるエラーの絶対数を入力します。
   + [**percentage (パーセント値)**] を選択して、自動化が他のリソースへのワークフローの送信を停止するまでに許容されるエラーのパーセント値を入力します。

1. (オプション) モニタリング用のオートメーションに適用する CloudWatch アラームを選択します。CloudWatch アラームをオートメーションにアタッチするには、コマンドを実行する IAM プリンシパルに `iam:createServiceLinkedRole` アクションの権限が必要です。CloudWatch アラームの詳細については、「[Amazon CloudWatch でのアラームの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」を参照してください。アラームが作動すると、オートメーションは停止されます。AWS CloudTrail を使用する場合、トレイルに API コールが表示されます。

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

レート制御のオートメーションによって開始されたオートメーションを表示するには、ナビゲーションペインで [オートメーション] を選択し、[**Show child automations (子オートメーションを表示)**] を選択します。

オートメーション実行が完了したら、同じパラメータまたは変更されたパラメータを使用して実行を再実行できます。詳細については、「[オートメーション実行の再実行](automation-rerun-executions.md)」を参照してください。

## ターゲットとレート制御を使用してオートメーションを実行する (コマンドライン)
<a name="scale-cli"></a>

次の手順では、AWS CLI (Linux または Windows) または AWS Tools for PowerShell を使用して、ターゲットとレート制御でオートメーションを実行する方法を説明します。

**ターゲットとレート制御を使用してオートメーションを実行するには**

1. まだ AWS CLI または AWS Tools for PowerShell をインストールして設定していない場合は、インストールして設定します。

   詳細については、「[AWS CLI の最新バージョンをインストールまたは更新します。](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」および「[AWS Tools for PowerShell のインストール](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)」を参照してください。

1. ドキュメントのリストを表示するには、次のコマンドを実行します。

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

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

   ```
   Get-SSMDocumentList
   ```

------

   使用するランブックの名前を書き留めます。

1. 以下のコマンドを実行して、ランブックの詳細を表示します。詳細を表示するランブックの*[runbook name]* (ランブック名) を置き換えます。さらに、`--target-parameter-name` オプションに使用するパラメータ名 (例: `InstanceId`) を書き留めます。このパラメータは、オートメーションが実行されるリソースのタイプを決定します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
       --name runbook name
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
       --name runbook name
   ```

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

   ```
   Get-SSMDocumentDescription `
       -Name runbook name
   ```

------

1. 実行するターゲットとレート制御オプションを使用するコマンドを作成します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

   *タグを使用したターゲット設定*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=tag:key name,Values=value \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=tag:key name,Values=value ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

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

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "tag:key name"
   $Targets.Values = "value"
   
   Start-SSMAutomationExecution `
       DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value";"input parameter 2 name"="input parameter 2 value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *パラメータ値を使用したターゲット設定*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=ParameterValues,Values=value,value 2,value 3 \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=ParameterValues,Values=value,value 2,value 3 ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

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

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ParameterValues"
   $Targets.Values = "value","value 2","value 3"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *AWS Resource Groups を使用したターゲット設定*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=ResourceGroup,Values=Resource group nname \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=ResourceGroup,Values=Resource group name ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

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

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "Resource group name"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   現在の AWS アカウント と AWS リージョン で、Amazon EC2 インスタンスをターゲットにする

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets "Key=AWS::EC2::Instance,Values=*"  \
       --target-parameter-name instanceId \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=AWS::EC2::Instance,Values=* ^
       --target-parameter-name instanceId ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

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

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "AWS::EC2::Instance"
   $Targets.Values = "*"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "instanceId" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   コマンドによって実行 ID が返されます。この ID をクリップボードにコピーします。この ID を使用して、オートメーションの状態を表示できます。

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
   }
   ```

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

   ```
   a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   ```

------

1. 以下のコマンドを実行して、オートメーションを表示します。各*オートメーション実行 ID* をユーザー自身の情報に置き換えます。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
       --filter Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
       --filter Key=ExecutionId,Values=automation execution ID
   ```

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

   ```
   Get-SSMAutomationExecutionList | `
       Where {$_.AutomationExecutionId -eq "automation execution ID"}
   ```

------

1. オートメーションの進捗の詳細を表示するには、以下のコマンドを実行します。各*オートメーション実行 ID* をユーザー自身の情報に置き換えます。

------
#### [ Linux & macOS ]

   ```
   aws ssm get-automation-execution \
       --automation-execution-id automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm get-automation-execution ^
       --automation-execution-id automation execution ID
   ```

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

   ```
   Get-SSMAutomationExecution `
       -AutomationExecutionId automation execution ID
   ```

------

   システムが以下のような情報を返します。

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecution": {
           "StepExecutionsTruncated": false,
           "AutomationExecutionStatus": "Success",
           "MaxConcurrency": "1",
           "Parameters": {},
           "MaxErrors": "1",
           "Outputs": {},
           "DocumentName": "AWS-StopEC2Instance",
           "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
           "ResolvedTargets": {
               "ParameterValues": [
                   "i-02573cafcfEXAMPLE"
               ],
               "Truncated": false
           },
           "ExecutionEndTime": 1564681619.915,
           "Targets": [
               {
                   "Values": [
                       "DEV"
                   ],
                   "Key": "tag:ENV"
               }
           ],
           "DocumentVersion": "1",
           "ExecutionStartTime": 1564681576.09,
           "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
           "StepExecutions": [
               {
                   "Inputs": {
                       "InstanceId": "i-02573cafcfEXAMPLE"
                   },
                   "Outputs": {},
                   "StepName": "i-02573cafcfEXAMPLE",
                   "ExecutionEndTime": 1564681619.093,
                   "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                   "ExecutionStartTime": 1564681576.836,
                   "Action": "aws:executeAutomation",
                   "StepStatus": "Success"
               }
           ],
           "TargetParameterName": "InstanceId",
           "Mode": "Auto"
       }
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecution": {
           "StepExecutionsTruncated": false,
           "AutomationExecutionStatus": "Success",
           "MaxConcurrency": "1",
           "Parameters": {},
           "MaxErrors": "1",
           "Outputs": {},
           "DocumentName": "AWS-StopEC2Instance",
           "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
           "ResolvedTargets": {
               "ParameterValues": [
                   "i-02573cafcfEXAMPLE"
               ],
               "Truncated": false
           },
           "ExecutionEndTime": 1564681619.915,
           "Targets": [
               {
                   "Values": [
                       "DEV"
                   ],
                   "Key": "tag:ENV"
               }
           ],
           "DocumentVersion": "1",
           "ExecutionStartTime": 1564681576.09,
           "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
           "StepExecutions": [
               {
                   "Inputs": {
                       "InstanceId": "i-02573cafcfEXAMPLE"
                   },
                   "Outputs": {},
                   "StepName": "i-02573cafcfEXAMPLE",
                   "ExecutionEndTime": 1564681619.093,
                   "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                   "ExecutionStartTime": 1564681576.836,
                   "Action": "aws:executeAutomation",
                   "StepStatus": "Success"
               }
           ],
           "TargetParameterName": "InstanceId",
           "Mode": "Auto"
       }
   }
   ```

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

   ```
   AutomationExecutionId       : a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   AutomationExecutionStatus   : Success
   CurrentAction               : 
   CurrentStepName             : 
   DocumentName                : AWS-StopEC2Instance
   DocumentVersion             : 1
   ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
   ExecutionEndTime            : 8/1/2019 5:46:59 PM
   ExecutionStartTime          : 8/1/2019 5:46:16 PM
   FailureMessage              : 
   MaxConcurrency              : 1
   MaxErrors                   : 1
   Mode                        : Auto
   Outputs                     : {}
   Parameters                  : {}
   ParentAutomationExecutionId : 
   ProgressCounters            : 
   ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
   StepExecutions              : {i-02573cafcfEXAMPLE}
   StepExecutionsTruncated     : False
   Target                      : 
   TargetLocations             : {}
   TargetMaps                  : {}
   TargetParameterName         : InstanceId
   Targets                     : {tag:Name}
   ```

------
**注記**  
コンソールで、オートメーションのステータスをモニタリングすることもできます。[**Automation executions (オートメーション実行)**] リストで、先ほど開始した実行を選択し、[**Execution steps (実行ステップ)**] タブを選択します。このタブには、オートメーションアクションのステータスが表示されます。

# オートメーションのターゲットのマッピング
<a name="running-automations-map-targets"></a>

`Targets` パラメータを使用すると、オートメーションの対象リソースを素早く定義できます。例えば、マネージドインスタンスを再起動するオートメーションを実行する場合は、コンソールで多数のインスタンス ID を手動で選択したりコマンドで入力したりする代わりに、`Targets` パラメータを使用して Amazon Elastic Compute Cloud (Amazon EC2) タグを指定しインスタンスをターゲティングできます。

ターゲットを使用するオートメーションを実行すると、AWS Systems Manager はターゲットごとに子 Automation を作成します。例えば、タグを指定して Amazon Elastic Block Store (Amazon EBS) ボリュームをターゲットに設定し、それらのタグが 100 の Amazon EBS ボリュームに解決された場合、Systems Manager は 100 の子オートメーションを作成します。親 Automation は、すべての子 Automation が最終状態に達すると完了します。

**注記**  
実行時に指定する `input parameters` (コンソールの [**Input parameters (入力パラメータ)**] セクション、またはコマンドラインの `parameters` オプションを使用) は、すべての子 Automation によって自動的に処理されます。

タグ、リソースグループ、およびパラメータ値を使用して、オートメーションのリソースをターゲットにすることができます。さらに、`TargetMaps` オプションを使用すると、コマンドラインまたはファイルから複数のパラメータ値を指定できます。次のセクションでは、これらの各ターゲティングオプションについて詳しく説明します。

## タグをターゲットにする
<a name="target-tags"></a>

オートメーションのターゲットとして、1 つのタグを指定できます。Amazon Elastic Compute Cloud (Amazon EC2) および Amazon Relational Database Service (Amazon RDS) インスタンス、Amazon Elastic Block Store (Amazon EBS) ボリュームとスナップショット、Resource Groups、Amazon Simple Storage Service (Amazon S3) バケットなどの多くの AWS リソースはタグをサポートしています。タグをターゲットにすることにより、AWS リソースに対するオートメーションをすばやく実行できます。タグは、Operating\$1System:Linux や Department:Finance などのキーと値のペアです。特定の名前をリソースに割り当てる場合は、「名前」という単語をキーとして使用し、リソースの名前を値として使用することもできます。

オートメーションのターゲットとしてタグを指定する場合は、ターゲットパラメータも指定します。ターゲットパラメータは、`TargetParameterName` オプションを使用します。ターゲットパラメータを選択することで、オートメーションが実行されるリソースのタイプを定義します。タグで指定するターゲットパラメータは、ランブックで定義された有効なパラメータでなければなりません。たとえば、タグを使用して多数の EC2 インスタンスをターゲットにする場合は、`InstanceId` ターゲットパラメータを選択します。このパラメータを選択すると、*インスタンス*がオートメーションのリソースタイプとして定義されます。カスタムランブックを作成するときは、**[ターゲットタイプ]**を `/AWS::EC2::Instance` に指定して、インスタンスのみが使用されるようにする必要があります。そうしなければ、同じタグを持つすべてのリソースがターゲットになります。タグ付きのインスタンスをターゲットにする際に、終了したインスタンスが含まれる場合があります。

次のスクリーンショットでは、`AWS-DetachEBSVolume` ランブックを使用しています。論理ターゲットパラメータは `VolumeId` です。

![\[Systems Manager Automation のターゲットとしてタグを使用する\]](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/automation-rate-control-tags-1-new.png)


`AWS-DetachEBSVolume` ランブックには、`/AWS::EC2::Volume` に設定された [**Target type (ターゲットの種類)**] という特別なプロパティも含まれています。これは、タグキーペア `Finance:TestEnv` が異なるタイプのリソース (EC2 インスタンス、Amazon EBS ボリューム、Amazon EBS スナップショットなど) を返す場合、Amazon EBS ボリュームのみが使用されることを意味します。

**重要**  
ターゲットのパラメータ名では大文字と小文字が区別されます。AWS Command Line Interface (AWS CLI) または AWS Tools for Windows PowerShell を使用してオートメーションを実行する場合は、ランブックで定義されているとおり、ターゲットパラメータ名を正確に入力する必要があります。指定しないと、システムは `InvalidAutomationExecutionParametersException` エラーを返します。[DescribeDocument](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeDocument.html) API オペレーションを使用すると、特定のランブックで使用可能なターゲットパラメータに関する情報を表示できます。次に、`AWS-DeleteSnapshot` ドキュメントに関する情報を提供する AWS CLI コマンドの例を示します。  

```
aws ssm describe-document \
    --name AWS-DeleteSnapshot
```

さらに、タグを使用してリソースをターゲットにする AWS CLI コマンドの例を示します。

**例 1: Amazon EC2 インスタンスを再起動するために、キーと値のペアを使用してタグをターゲットにする**

この例では、*Department* のキーと *HumanResources* の値でタグ付けされたすべての Amazon EC2 インスタンスを再起動します。ターゲットパラメータは、ランブックの *InstanceId* パラメータを使用します。この例では、Automation サービスロール (*引き受けロール*) を使用して、自動化を実行するための追加のパラメータを使用しています。

```
aws ssm start-automation-execution \
    --document-name AWS-RestartEC2Instance \
    --targets Key=tag:Department,Values=HumanResources \
    --target-parameter-name InstanceId \
    --parameters "AutomationAssumeRole=arn:aws:iam::111122223333:role/AutomationServiceRole"
```

**例 2: Amazon EBS スナップショットを削除するために、キーと値のペアを使用してタグをターゲットにする**

以下の例では、`AWS-DeleteSnapshot` ランブックを使用して、*Name* キーと、*January2018Backups* 値のすべてのスナップショットを削除します。ターゲットのパラメータは、*VolumeId* パラメータを使用します。

```
aws ssm start-automation-execution \
    --document-name AWS-DeleteSnapshot \
    --targets Key=tag:Name,Values=January2018Backups \
    --target-parameter-name VolumeId
```

## AWS Resource Groups をターゲットにする
<a name="target-resource-groups"></a>

オートメーションのターゲットとして、1 つの AWS リソースグループを指定できます。Systems Manager は、ターゲットリソースグループ内のすべてのオブジェクトに対して子オートメーションを作成します。

たとえば、リソースグループの 1 つに PatchedAMI という名前が付けられているとします。この Resource Group には、定期的にパッチ適用される 25 個の Windows Amazon Machine Images (AMIs) のリストが含まれています。`AWS-CreateManagedWindowsInstance` ランブックを使用し、この Resource Group をターゲットとするオートメーションを実行すると、Systems Manager は 25 個の AMIs ごとに子オートメーションを作成します。つまり、PatchedAMIs Resource Group をターゲットとすることで、オートメーションはパッチを適用した AMIs のリストから 25 個のインスタンスを作成します。親オートメーションは、すべての子オートメーションが処理を完了するか、最終状態に達すると完了します。

次の AWS CLI コマンドは、PatchAMI リソースグループの例に適用されます。このコマンドは、`--target-parameter-name` オプションの *AmiId* パラメータを受け取ります。このコマンドには、各 AMI から作成するインスタンスのタイプを定義する追加のパラメータは含まれていません。`AWS-CreateManagedWindowsInstance` ランブックはデフォルトで t2.medium インスタンスタイプになっているため、このコマンドは Windows Server に 25 個の t2.medium Amazon EC2 インスタンスを作成します。

```
aws ssm start-automation-execution \
    --document-name AWS-CreateManagedWindowsInstance \
    --targets Key=ResourceGroup,Values=PatchedAMIs  \
    --target-parameter-name AmiId
```

次のコンソールの例では、t2-micro-instances というリソースグループを使用しています。

![\[Systems Manager Automation による AWS リソースグループのターゲット設定\]](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/automation-rate-control-resource-groups-new.png)


## パラメータ値のターゲット設定
<a name="target-parameter-values"></a>

パラメータ値をターゲットにすることもできます。`ParameterValues` をキーとして入力し、オートメーションを実行する特定のリソース値を入力します。複数の値を指定すると、Systems Manager は指定された各値に対して子オートメーションを実行します。

たとえば、ランブックに ** instanceID ** パラメーターが含まれているとします。オートメーションを実行するときに [**InstanceID**] パラメータの値を指定すると、Systems Manager は指定された各インスタンス ID 値に対して子オートメーションを実行します。オートメーションが指定された各インスタンスの実行を終了するか、オートメーションが失敗した場合、親オートメーションは完了します。最大 50 個のパラメータ値を対象にすることができます。

次の例では、`AWS-CreateImage` ランブックを使用します 指定されたターゲットパラメータ名は *InstanceId* です。キーは *ParameterValues* を使用します。値は 2 つの Amazon EC2 インスタンス ID です。このコマンドは、インスタンスごとにオートメーションを作成し、各インスタンスから AMI を生成します。

```
aws ssm start-automation-execution 
    --document-name AWS-CreateImage \
    --target-parameter-name InstanceId \
    --targets Key=ParameterValues,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE
```

**注記**  
`AutomationAssumeRole` は有効なパラメータではありません。パラメータ値をターゲットにするオートメーションを実行するときは、この項目を選択しないでください。

### パラメータ値マップをターゲットにする
<a name="target-maps"></a>

`TargetMaps` オプションは、`ParameterValues` をターゲットにする機能を拡張します。コマンドラインで `TargetMaps` を使用すると、パラメータ値の配列を入力できます。コマンドラインでは、最大 50 のパラメータ値を指定できます。50 を超えるパラメータ値を指定するコマンドを実行する場合は、値を JSON ファイルに入力できます。その後、コマンドラインからファイルを呼び出すことができます。

**注記**  
コンソールでは、`TargetMaps` オプションはサポートされていません。

コマンドで `TargetMaps` オプションを使用して複数のパラメータ値を指定するには、次の形式を使用します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

```
aws ssm start-automation-execution \
    --document-name runbook name \
    --target-maps “parameter=value, parameter 2=value, parameter 3=value”  “parameter 4=value, parameter 5=value, parameter 6=value”
```

`TargetMaps` オプションに 50 以上のパラメータ値を入力する場合は、次の JSON 形式を使用してファイル内の値を指定します。JSON ファイルを使用すると、複数のパラメータ値を提供する際の読みやすさも向上します。

```
[

    {“parameter”: "value", “parameter 2”: "value", “parameter 3”: "value"},

    {“parameter 4”: "value", “parameter 5”: "value", "parameter 6": "value"}

]
```

.json ファイル拡張子でこのファイルを保存します。次のコマンドを使用してファイルを呼び出すことができます。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

```
aws ssm start-automation-execution \
    --document-name runbook name \
    –-parameters input parameters \
    --target-maps path to file/file name.json
```

またはバケットからデータを読み取るアクセス権限を持っている限り、Amazon Simple Storage Service (Amazon S3) バケットからファイルをダウンロードすることもできます。次のコマンド形式を使用します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

```
aws ssm start-automation-execution \
    --document-name runbook name \
    --target-maps http://amzn-s3-demo-bucket.s3.amazonaws.com/file_name.json
```

以下は、`TargetMaps` オプションを理解するのに役立つシナリオの例です。このシナリオでは、ユーザーは異なる AMIs から異なるタイプの Amazon EC2 インスタンスを作成する必要があります。このタスクを実行するには、AMI\$1Testing という名前のランブックを作成します。このランブックでは、`instanceType` と `imageId` の 2 つの入力パラメータを定義しています。

```
{
  "description": "AMI Testing",
  "schemaVersion": "0.3",
  "assumeRole": "{{assumeRole}}",
  "parameters": {
    "assumeRole": {
      "type": "String",
      "description": "Role under which to run the automation",
      "default": ""
    },
    "instanceType": {
      "type": "String",
      "description": "Type of EC2 Instance to launch for this test"
    },
    "imageId": {
      "type": "String",
      "description": "Source AMI id from which to run instance"
    }
  },
  "mainSteps": [
    {
      "name": "runInstances",
      "action": "aws:runInstances",
      "maxAttempts": 1,
      "onFailure": "Abort",
      "inputs": {
        "ImageId": "{{imageId}}",
        "InstanceType": "{{instanceType}}",
        "MinInstanceCount": 1,
        "MaxInstanceCount": 1
      }
    }
  ],
  "outputs": [
    "runInstances.InstanceIds"
  ]
}
```

次に、ユーザーは `AMI_instance_types.json` という名前のファイルで次のターゲットパラメータ値を指定します。

```
[
  {
    "instanceType" : ["t2.micro"],     
    "imageId" : ["ami-b70554c8"]     
  },
  {
    "instanceType" : ["t2.small"],     
    "imageId" : ["ami-b70554c8"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  }
]
```

ユーザーはオートメーションを実行し、次のコマンドを実行して `AMI_instance_types.json` で定義された 5 つの EC2 インスタンスを作成できます。

```
aws ssm start-automation-execution \
    --document-name AMI_Testing \
    --target-parameter-name imageId \
    --target-maps file:///home/TestUser/workspace/runinstances/AMI_instance_types.json
```

## すべての Amazon EC2 インスタンスをターゲットにする
<a name="target-all-instances"></a>

**[ターゲット]** リストで **[すべてのインスタンス]** をクリックすることにより、現在の AWS アカウント と AWS リージョン のすべての Amazon EC2 インスタンスで自動化を実行できます。例えば、AWS アカウント と現在の AWS リージョン にあるすべての Amazon EC2 インスタンスを再起動する場合は、`AWS-RestartEC2Instance` ランブックを選択した上で、**[ターゲット]** のリストから **[すべてのインスタンス]** を選択します。

![\[ランブックのすべての Amazon EC2 インスタンスをターゲットにする\]](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/automation-rate-control-target-all-instances.png)


[**すべてのインスタンス**] を選択すると、[**インスタンス**] フィールドにアスタリスク (\$1) が入力され、フィールドを変更できなくなります (フィールドはグレー表示されます)。また、Systems Manager では、[**入力パラメータ**] フィールドの [**InstanceId**] フィールドを変更できなくなります。すべてのインスタンスをターゲットにするよう選択する場合、これらのフィールドが変更できなくなることは想定される動作となります。

# オートメーションを大規模に制御する
<a name="running-automations-scale-controls"></a>

同時実行値とエラーのしきい値を指定することで、AWS リソースのフリート全体でオートメーションのデプロイを制御できます。同時実行数とエラーのしきい値は、まとめて*レート制御*と呼ばれます。

**同時実行**  
Concurrency (同時実行) を使用すると、オートメーションを同時に実行できるリソースの数を指定できます。同時実行数は、オートメーションを処理する際のリソースへの影響やダウンタイムを制限するのに役立ちます。リソースの絶対数 (20 など) またはターゲットセットのパーセント数 (10% など) を指定できます。

キューシステムにより、オートメーションは 1 つのリソースに送信され、この最初の呼び出しが完了するのを待ってから、さらに 2 つのリソースにオートメーションが送信されます。同時実行値の値に達するまで、システムはオートメーションをより多くのリソースに指数関数的に送信します。

**エラーしきい値**  
エラーしきい値を使用すると、AWS Systems Manager が他のリソースへオートメーションの送信を停止するまでの、オートメーションの失敗の許容量を決定できます。エラーの絶対数 (10 など) またはターゲットセットのパーセント数 (10% など) を指定できます。

たとえば、エラーの絶対数として 3 を指定すると、4 番目のエラーを受信した際に、システムはオートメーションの実行を停止します。値として 0 を指定した場合、最初のエラー結果が返されると、システムから他のターゲットでオートメーションが実行されなくなります。

たとえば、50 のインスタンスにオートメーションを送信し、エラーしきい値を 10% に設定した場合、5 番目のエラーが受信されると、システムから他のインスタンスにコマンドが送信されなくなります。エラーのしきい値に達したときに既にオートメーションを実行中の呼び出しについては、完了を許可されますが、これらのオートメーションも失敗する可能性があります。エラーのしきい値に指定された数より多くのエラーが発生しないようにする必要がある場合は、[**Concurrency (同時実行数)**] 値を 1 に設定して、オートメーションを 1 つずつ進めるようにします。