

• 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="mw-cli-register-tasks-examples"></a>

[유지 관리 기간에 태스크 등록](mw-cli-tutorial-tasks.md)에서 설명한 것처럼 AWS Command Line Interface(AWS CLI)를 사용하여 유지 관리 기간에 AWS Systems Manager의 도구인 Run Command의 태스크를 등록할 수 있습니다. 아래에 설명된 대로 Systems Manager Automation 워크플로용 태스크, AWS Lambda 함수 및 AWS Step Functions 태스크를 등록할 수도 있습니다.

**참고**  
유지 관리 기간 Run Command 유형 태스크에 대해 하나 이상의 대상을 지정합니다. 태스크에 따라 대상은 다른 유지 관리 기간 태스크 유형(Automation, AWS Lambda 및 AWS Step Functions)에 대해 옵션입니다. 대상을 지정하지 않는 태스크 실행에 대한 자세한 내용은 [대상 없이 유지 관리 기간 태스크 등록](maintenance-windows-targetless-tasks.md) 섹션을 참조하세요.

이 주제에서는 AWS Command Line Interface(AWS CLI) 명령 `register-task-with-maintenance-window`를 사용하여 4가지 지원되는 태스크 유형 각각을 유지 관리 기간에 등록하는 예제를 제공합니다. 예제는 데모용이지만 작업 등록 명령을 생성하도록 수정할 수 있습니다.

**--cli-input-json 옵션 사용**  
작업 옵션을 보다 잘 관리하기 위해 JSON 파일에서 참조되는 옵션 값과 함께 명령 옵션 `--cli-input-json`을 사용할 수 있습니다.

다음 예제에서 제공하는 샘플 JSON 파일 콘텐츠를 사용하려면 로컬 시스템에서 다음을 수행하십시오.

1. `MyRunCommandTask.json`, `MyAutomationTask.json`과 같은 이름 또는 선호하는 다른 이름으로 파일을 생성합니다.

1. JSON 샘플의 콘텐츠를 파일에 복사합니다.

1. 작업 등록을 위해 파일 콘텐츠를 수정한 다음 파일을 저장합니다.

1. 파일을 저장한 디렉터리에서 다음 명령을 실행합니다. {{MyFile.json}}을 사용자의 파일 이름으로 바꿉니다.

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

   ```
   aws ssm register-task-with-maintenance-window \
       --cli-input-json file://{{MyFile.json}}
   ```

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

   ```
   aws ssm register-task-with-maintenance-window ^
       --cli-input-json file://{{MyFile.json}}
   ```

------

**유지 관리 기간 태스크의 의사 파라미터**  
일부 예제에서는 ID 정보를 작업에 전달하는 방법으로 *의사 파라미터*를 사용합니다. 예를 들어 `{{TARGET_ID}}` 및 `{{RESOURCE_ID}}`를 사용하여 AWS 리소스의 ID를 Automation, Lambda 및 Step Functions 태스크에 전달할 수 있습니다. `--task-invocation-parameters` 콘텐츠의 의사 파라미터에 대한 자세한 내용은 [유지 관리 기간 작업 등록 시 의사 파라미터 사용](maintenance-window-tasks-pseudo-parameters.md) 섹션을 참조하세요.

**추가 정보**  
+ [register-task-with-maintenance-windows 명령에 대한 파라미터 옵션](mw-cli-task-options.md).
+ **AWS CLI 명령 레퍼런스의 [https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)
+ AWS Systems Manager API 참조의 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html)**

## 작업 등록 예제
<a name="task-examples"></a>

다음 단원에서는 지원되는 작업 유형과, `--cli-input-json` 옵션과 함께 사용할 수 있는 JSON 샘플을 등록하기 위한 샘플 AWS CLI 명령을 제공합니다.

### Systems Manager Run Command 태스크 등록
<a name="register-tasks-tutorial-run-command"></a>

다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Systems Manager Run Command 태스크를 등록하는 방법을 보여줍니다.

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

```
aws ssm register-task-with-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --task-arn "AWS-RunShellScript" \
    --max-concurrency 1 --max-errors 1 --priority 10 \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --task-type "RUN_COMMAND" \
    --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
```

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

```
aws ssm register-task-with-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --task-arn "AWS-RunShellScript" ^
    --max-concurrency 1 --max-errors 1 --priority 10 ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --task-type "RUN_COMMAND" ^
    --task-invocation-parameters "{\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}"
```

------

**`--cli-input-json` 파일 옵션과 함께 사용할 JSON 콘텐츠:**

```
{
    "TaskType": "RUN_COMMAND",
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Description": "My Run Command task to update SSM Agent on an instance",
    "MaxConcurrency": "1",
    "MaxErrors": "1",
    "Name": "My-Run-Command-Task",
    "Priority": 10,
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "AWS-UpdateSSMAgent",
    "TaskInvocationParameters": {
        "RunCommand": {
            "Comment": "A TaskInvocationParameters test comment",
            "NotificationConfig": {
                "NotificationArn": "arn:aws:sns:{{region}}:123456789012:my-sns-topic-name",
                "NotificationEvents": [
                    "All"
                ],
                "NotificationType": "Invocation"
            },
            "OutputS3BucketName": "amzn-s3-demo-bucket",
            "OutputS3KeyPrefix": "{{S3-PREFIX}}",
            "TimeoutSeconds": 3600
        }
    }
}
```

### Systems Manager Automation 태스크 등록
<a name="register-tasks-tutorial-automation"></a>

다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Systems Manager Automation 태스크를 등록하는 방법을 보여줍니다.

**AWS CLI 명령:**

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

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --task-arn "AWS-RestartEC2Instance" \
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \
    --task-type AUTOMATION \
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" \
    --description "Automation task to restart EC2 instances"
```

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

```
aws ssm register-task-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --task-arn "AWS-RestartEC2Instance" ^
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^
    --task-type AUTOMATION ^
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{TARGET_ID}}'}}" ^
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" ^
    --description "Automation task to restart EC2 instances"
```

------

**`--cli-input-json` 파일 옵션과 함께 사용할 JSON 콘텐츠:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
        "TaskArn": "AWS-PatchInstanceWithRollback",
    "TaskType": "AUTOMATION","TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "instanceId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
}
```

### AWS Lambda 작업 등록
<a name="register-tasks-tutorial-lambda"></a>

다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Lambda 함수 태스크를 등록하는 방법을 보여줍니다.

Lambda 함수를 생성한 사용자가 `SSMrestart-my-instances`라는 이름을 지정하고 `instanceId`와 `targetType`이라는 2개의 파라미터를 생성했습니다.

**중요**  
Maintenance Windows의 IAM 정책에서는 Lambda 함수 이름(또는 별칭) 앞에 접두사 `SSM`을 추가해야 합니다. 이러한 유형의 태스크를 등록하기 전에 AWS Lambda에서 `SSM`을 포함하도록 이름을 업데이트합니다. 예를 들어 Lambda 함수 이름이 `MyLambdaFunction`인 경우 `SSMMyLambdaFunction`으로 변경합니다.

**AWS CLI 명령:**

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

**중요**  
AWS CLI 버전 2를 사용하는 경우 Lambda 페이로드가 base64로 인코딩되지 않은 경우 다음 명령에 `--cli-binary-format raw-in-base64-out` 옵션을 포함해야 합니다. `cli_binary_format` 옵션은 버전 2에서만 사용할 수 있습니다. 이 파일 설정과 기타 AWS CLI `config` 파일 설정에 대한 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [지원되는 `config` 파일 설정](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings)을 참조하세요.

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" \
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" \
    --task-arn "arn:aws:lambda:{{region}}:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" \
    --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}","Qualifier": "$LATEST"}}'
```

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

**중요**  
AWS CLI 버전 2를 사용하는 경우 Lambda 페이로드가 base64로 인코딩되지 않은 경우 다음 명령에 `--cli-binary-format raw-in-base64-out` 옵션을 포함해야 합니다. `cli_binary_format` 옵션은 버전 2에서만 사용할 수 있습니다. 이 파일 설정과 기타 AWS CLI `config` 파일 설정에 대한 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [지원되는 `config` 파일 설정](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings)을 참조하세요.

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" `
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" `
    --task-arn "arn:aws:lambda:{{region}}:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" `
    --task-invocation-parameters '{\"Lambda\":{\"Payload\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\",\\\"targetType\\\":\\\"{{TARGET_TYPE}}\\\"}\",\"Qualifier\": \"$LATEST\"}}'
```

------

**`--cli-input-json` 파일 옵션과 함께 사용할 JSON 콘텐츠:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_RestartMyInstances",
    "TaskType": "LAMBDA",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",
            "Qualifier": "$LATEST"
        }
    },
    "Name": "My-Lambda-Task",
    "Description": "A description for my LAMBDA task",
    "Priority": 5
}
```

### Step Functions 태스크 등록
<a name="register-tasks-tutorial-step-functions"></a>

다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Step Functions 상태 머신 태스크를 등록하는 방법을 보여줍니다.

**참고**  
유지 관리 기간 태스크는 Step Functions 표준 상태 머신 워크플로만 지원합니다. 익스프레스 상태 머신 워크플로는 지원하지 않습니다. 상태 머신 워크플로 유형에 대한 자세한 내용은 *AWS Step Functions개발자 안내서의* [표준 워크플로와 익스프레스 워크플로](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)를 참조하세요.

이러한 예의 경우 Step Functions 상태 머신을 생성한 사용자가 `instanceId` 파라미터가 있는 상태 시스템 `SSMMyStateMachine`을 생성했습니다.

**중요**  
Maintenance Windows의 AWS Identity and Access Management(IAM) 정책에서는 Step Functions 상태 시스템 이름 앞에 접두사 `SSM`을 추가해야 합니다. 이러한 유형의 작업을 등록하기 전에 AWS Step Functions에서 `SSM`을 포함하도록 이름을 업데이트해야 합니다. 예를 들어 상태 시스템 이름이 `MyStateMachine`인 경우 `SSMMyStateMachine`으로 변경합니다.

**AWS CLI 명령:**

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

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --task-arn arn:aws:states:{{region}}:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE \
    --task-type STEP_FUNCTIONS \
    --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}", "Name":"{{INVOCATION_ID}}"}}' \
    --priority 0 --max-concurrency 10 --max-errors 5 \
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

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

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --task-arn arn:aws:states:{{region}}:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE `
    --task-type STEP_FUNCTIONS `
    --task-invocation-parameters '{\"StepFunctions\":{\"Input\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\"}\", \"Name\":\"{{INVOCATION_ID}}\"}}' `
    --priority 0 --max-concurrency 10 --max-errors 5 `
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------

**`--cli-input-json` 파일 옵션과 함께 사용할 JSON 콘텐츠:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_MyStateMachine",
    "TaskType": "STEP_FUNCTIONS",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "StepFunctions": {
            "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }",
            "Name": "{{INVOCATION_ID}}"
        }
    },
    "Name": "My-Step-Functions-Task",
    "Description": "A description for my Step Functions task",
    "Priority": 5
}
```