

• 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="state-manager-associations-creating"></a>

AWS Systems Manager의 도구인 State Manager는 AWS 리소스를 구성 드리프트를 정의하고 줄일 수 있는 상태로 유지하는 데 도움이 됩니다. 이렇게 하기 위해 State Manager는 연결을 사용합니다. *연결*은 사용자가 자신의 AWS 리소스에 할당하는 구성입니다. 이러한 구성은 리소스에서 관리하려는 상태를 정의합니다. 예를 들어, 연결은 관리형 노드에서 안티바이러스 소프트웨어가 설치되어 실행 중이어야 하는지 또는 특정 포트가 닫혀 있어야 하는지를 지정할 수 있습니다.

연결은 구성 및 연결 대상을 적용할 시점의 일정을 지정합니다. 예를 들어, 안티바이러스 소프트웨어에 대한 연결은 AWS 계정의 관리형 노드에서 하루에 한 번 실행할 수 있습니다. 노드에 소프트웨어가 설치되어 있지 않으면 연결은 State Manager에 소프트웨어를 설치하도록 지시할 수 있습니다. 소프트웨어가 설치되어 있으나 서비스가 실행 중이 아닌 경우 연결이 State Manager에 해당 서비스의 시작을 지시할 수 있습니다.

**주의**  
연결을 생성하는 경우 연결의 대상으로 관리형 노드의 AWS 리소스 그룹을 선택할 수 있습니다. AWS Identity and Access Management(IAM) 사용자, 그룹 또는 역할이 관리형 노드의 리소스 그룹을 대상으로 하는 연결을 생성할 수 있는 권한을 가진 경우, 해당 사용자, 그룹 또는 역할에는 그룹의 모든 노드에 대한 루트 수준 제어 권한이 자동으로 생깁니다. 신뢰할 수 있는 관리자에게만 연결 생성이 허용됩니다.

**연결 대상 및 속도 제어**  
연결은 연결을 수신해야 하는 관리형 노드 또는 대상을 지정할 수 있습니다. State Manager에는 관리형 노드를 대상으로 지정하고 해당 대상으로 연결을 배포하는 방법을 제어하는 데 도움이 되는 몇 가지 기능이 포함되어 있습니다. 대상 및 속도 제어에 대한 자세한 내용은 [State Manager 연결에서의 대상 및 속도 제어 이해](systems-manager-state-manager-targets-and-rate-controls.md) 섹션을 참조하세요.

**연결 태그 지정**  
AWS CLI 또는 AWS Tools for PowerShell 등의 명령줄 도구를 사용하여 연결을 생성할 때 연결에 태그를 할당할 수 있습니다. Systems Manager 콘솔을 사용하여 연결에 태그를 추가하는 것은 지원되지 않습니다.

**연결 실행**  
기본적으로 State Manager는 연결을 생성한 직후 정의한 일정에 따라 실행합니다.

또한 시스템은 다음 규칙에 따라 연결을 실행합니다.
+ 간격 중에 State Manager는 지정되거나 대상으로 지정된 모든 노드에서 연결을 실행하려고 시도합니다.
+ (예를 들어, 동시성 값이 한 번에 연결을 처리할 수 있는 노드 수를 제한했기 때문에) 간격 동안 연결이 실행되지 않은 경우 State Manager에서는 다음 간격 중 해당 연결을 실행하려고 합니다.
+ State Manager는 연결의 구성, 대상 노드, 문서 또는 파라미터 변경 후 연결을 실행합니다. 자세한 내용은 [리소스에 연결이 적용되는 시기 이해](state-manager-about.md#state-manager-about-scheduling) 섹션을 참조하세요.
+ State Manager는 건너 뛴 모든 간격을 기록합니다. 이러한 기록은 **실행 내역** 탭에서 확인할 수 있습니다.

## 연결 예약
<a name="state-manager-about-creating-associations"></a>

*10시간마다*와 같은 기본 간격으로 실행되도록 연결을 예약하거나 사용자 지정 cron 및 rate 표현식을 사용하여 고급 일정을 생성할 수 있습니다. 연결을 처음 생성할 때 연결이 실행되지 않도록 할 수도 있습니다.

**cron 및 rate 표현식을 사용하여 연결 실행 예약**  
표준 cron 또는 rate 표현식 외에도 State Manager는 또한 요일 및 숫자 기호(\$1)를 포함하는 cron 표현식을 지원하여 연결을 실행할 매월 *n*번째 일을 지정할 수 있습니다. 매월 셋째 주 화요일 UTC 23:30에 cron 일정을 실행하는 예는 다음과 같습니다.

`cron(30 23 ? * TUE#3 *)`

매월 두 번째 목요일 UTC 자정에 실행하는 예는 다음과 같습니다.

`cron(0 0 ? * THU#2 *)`

또한 State Manager는 (L) 기호를 지원하여 매월 마지막 *X* 일을 표시합니다. 매월 마지막 화요일 UTC 자정에 cron 일정을 실행하는 예는 다음과 같습니다.

`cron(0 0 ? * 3L *)`

예를 들어, 화요일을 패치한 지 2일 후 연결을 실행하려는 경우 연결 실행 시기를 추가로 제어하려면 오프셋을 지정할 수 있습니다. *오프셋*을 통해 연결을 실행하도록 예약된 날짜 이후에 대기할 일 수를 정의할 수 있습니다. 예를 들어, `cron(0 0 ? * THU#2 *)`의 cron 일정을 지정한 경우 **일정 오프셋** 필드에 숫자 3을 지정하여 매월 두 번째 목요일 이후 매주 일요일에 연결을 실행할 수 있습니다.

**참고**  
오프셋을 사용하려면 콘솔에서 **지정된 다음 Cron 간격에서만 연결 적용**을 선택하거나 명령줄에서 `ApplyOnlyAtCronInterval` 파라미터를 지정해야 합니다. 이러한 옵션 중 하나가 활성화되면 연결을 생성한 직후 State Manager가 연결을 실행하지 않습니다.

Cron 및 Rate 표현식에 대한 자세한 내용은 [참조: Systems Manager용 Cron 및 Rate 표현식](reference-cron-and-rate-expressions.md) 섹션을 참조하세요.

## 연결 생성(콘솔)
<a name="state-manager-associations-console"></a>

다음 절차에서는 Systems Manager 콘솔을 사용하여 State Manager 연결을 생성하는 방법을 설명합니다.

**참고**  
다음 정보를 참고하세요.  
이 절차에서는 `Command` 또는 `Policy` 문서를 사용하는 연결을 생성하여 관리형 노드를 대상으로 지정하는 방법에 대해 설명합니다. Automation 런북을 사용하는 연결을 생성하여 노드 또는 다른 유형의 AWS 리소스를 대상 지정하는 방법에 대한 자세한 내용은 [State Manager 연결을 사용하여 자동화 예약](scheduling-automations-state-manager-associations.md) 섹션을 참조하세요.
연결을 생성할 때 AWS Management Console을 사용하여 최대 5개의 태그 키를 지정할 수 있습니다. 연결에 지정된 *모든* 태그 키가 현재 노드에 할당되어 있어야 합니다. 그렇지 않은 경우 State Manager에서 노드를 연결 대상으로 지정하지 못합니다.

**State Manager 연결 생성**

1. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)에서 AWS Systems Manager 콘솔을 엽니다.

1. 탐색 창에서 **State Manager**를 선택합니다.

1. **연결 생성**을 선택합니다.

1. **이름(Name)** 필드에 이름을 지정합니다.

1. **문서** 목록에서 문서 이름 옆에 있는 옵션을 선택합니다. 문서 유형을 적어둡니다. 이 절차는 `Command` 및 `Policy` 문서에 적용됩니다. Automation 런북을 사용하는 연결 생성에 대한 자세한 내용은 [State Manager 연결을 사용하여 자동화 예약](scheduling-automations-state-manager-associations.md) 섹션을 참조하세요.
**중요**  
State Manager는 해당 문서가 다른 계정에서 공유되는 경우 새 버전의 문서를 사용하는 연결 실행을 지원하지 않습니다. Systems Manager 콘솔이 새로운 버전이 처리되었음을 보여주더라도 상태 관리자는 언제나 다른 계정에서 공유된 문서의 `default` 버전을 실행합니다. 다른 계정에서 공유한 문서의 새 버전을 사용하여 연결을 실행하려면 문서 버전을 `default`로 설정해야 합니다.

1. **파라미터**에서 필요한 입력 파라미터를 지정합니다.

1. (선택 사항) **연결 디스패치 역할 수임**의 드롭다운에서 역할을 선택합니다. State Manager는 사용자를 대신하여 이 역할을 사용해 작업을 수행합니다. 사용자 지정으로 제공된 역할의 설정에 대한 자세한 내용은 [`AssociationDispatchAssumeRole` 역할 설정](state-manager-about.md#setup-assume-role) 섹션을 참조하세요.
**참고**  
사용자를 대신하여 작업을 수행할 때 State Manager가 갖는 권한을 완전히 제어할 수 있도록 사용자 지정 IAM 역할을 정의하는 것이 좋습니다.  
State Manager의 서비스 연결 역할 지원을 단계적으로 중단하고 있습니다. 서비스 연결 역할에 의존하는 연결은 계속 제대로 작동하려면 향후 업데이트가 필요할 수 있습니다.  
사용자 지정으로 제공된 역할의 사용 관리에 대한 자세한 내용은 [`ssm:AssociationDispatchAssumeRole`을 사용하여 AssociationDispatchAssumeRole 사용 관리](state-manager-about.md#context-key-assume-role) 섹션을 참조하세요.

1. (선택 사항) 모니터링을 위해 연결에 적용할 CloudWatch 경보를 선택합니다.
**참고**  
이 단계에 대한 다음 정보를 참조하세요.  
알람 목록에는 최대 100개의 알람이 표시됩니다. 목록에 해당 경보가 표시되지 않으면 AWS Command Line Interface를 사용하여 연결을 생성합니다. 자세한 내용은 [연결 생성(명령줄)](#create-state-manager-association-commandline) 섹션을 참조하세요.
CloudWatch 경보를 명령에 연결하려면 연결을 생성하는 IAM 보안 주체에 `iam:createServiceLinkedRole` 작업에 대한 권한이 있어야 합니다. CloudWatch 경보에 대한 자세한 내용은 [Amazon CloudWatch 경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)을 참조하세요.
경보가 활성화되면 보류 중인 명령 호출 또는 자동화가 실행되지 않습니다.

1. **대상**에서 옵션을 선택합니다. 태그 사용에 대한 자세한 내용은 [State Manager 연결에서의 대상 및 속도 제어 이해](systems-manager-state-manager-targets-and-rate-controls.md) 섹션을 참조하세요.
**참고**  
새 대상 노드가 감지될 때 Automation 런북을 사용하여 생성된 연결을 적용하려면 특정 조건을 충족해야 합니다. 자세한 내용은 [Automation 런북을 사용한 대상 업데이트 정보](state-manager-about.md#runbook-target-updates) 섹션을 참조하세요.

1. **일정 지정** 섹션에서 **On Schedule(일정이 있을 때)** 또는 **No schedule(일정이 없을 때)**을 선택합니다. **On Schedule(일정이 있을 때)**을 선택한 경우 제공된 버튼을 사용하여 연결에 대한 cron 또는 rate 일정을 생성합니다.

   연결을 생성한 직후에 연결을 실행하지 않으려면 **지정된 다음 Cron 간격에서만 연결 적용을** 선택합니다.

1. (선택 사항) **일정 오프셋(Schedule offset)** 필드에 1에서 6 사이의 숫자를 지정합니다.

1. [**고급 옵션(Advanced options)**] 섹션에서 [**규정 준수 심각도(Compliance severity)**]를 사용하여 연결의 심각도 수준을 선택하고 [**변경 일정(Change Calendars)**]을 사용하여 연결의 변경 일정을 선택합니다.

   규정 준수 보고는 여기서 지정한 심각도 수준과 함께 연결 상태가 준수인지 아니면 미준수인지를 나타냅니다. 자세한 내용은 [State Manager 연결 규정 준수 정보](compliance-about.md#compliance-about-association) 섹션을 참조하세요.

   변경 일정에 따라 연결 실행 시기가 결정됩니다. 일정이 닫혀 있으면 연결이 적용되지 않습니다. 일정이 열려 있으면 그에 따라 연결이 실행됩니다. 자세한 내용은 [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md) 섹션을 참조하세요.

1. **속도 제어(Rate control)** 섹션의 여러 노드에서 연결을 실행하는 방법을 제어하는 옵션을 선택합니다. 속도 제어 사용에 대한 자세한 내용은 [State Manager 연결에서의 대상 및 속도 제어 이해](systems-manager-state-manager-targets-and-rate-controls.md) 섹션을 참조하세요.

   **동시성** 섹션에서 옵션을 선택합니다.
   + **대상**을 선택하여 연결을 동시에 실행할 수 있는 대상 수(절대 개수)를 입력합니다.
   + **백분율**을 선택하여 연결을 동시에 실행할 수 있는 대상의 백분율을 입력합니다.

   **오류 임계값** 섹션에서 옵션을 선택합니다.
   + **오류**를 선택하여 State Manager에서 추가 대상에 대한 연결 실행을 중지하기 전에 허용되는 절대 오류 수를 입력합니다.
   + **백분율**을 선택하여 State Manager에서 추가 대상에 대한 연결 실행을 중지하기 전에 허용되는 오류 비율을 입력합니다.

1. (선택 사항) **출력 옵션**에서 명령 출력을 파일에 저장하려면 **S3 버킷에 쓰기 활성화** 옆의 상자를 선택합니다. 상자에 버킷 및 접두사(폴더) 이름을 입력합니다.
**참고**  
데이터를 S3 버킷에 쓰는 기능을 부여하는 S3 권한은 이 작업을 수행하는 IAM 사용자의 권한이 아닌 관리형 노드에 할당된 인스턴스 프로파일의 권한입니다. 자세한 내용은 [Systems Manager에 필요한 인스턴스 권한 구성](setup-instance-permissions.md)이나 [하이브리드 환경을 위한 IAM 서비스 역할 생성](hybrid-multicloud-service-role.md)을 참조하세요. 또한 지정된 S3 버킷이 다른 AWS 계정에 있는 경우 관리형 노드와 연결된 인스턴스 프로파일 또는 IAM 서비스 역할은 해당 버킷에 쓸 수 있는 권한이 있어야 합니다.

   다음은 연결에 대해 Amazon S3 출력을 설정하는 데 필요한 최소 권한입니다. IAM 정책을 계정 내의 사용자 또는 역할에 연결하여 액세스를 추가로 제한할 수 있습니다. 최소한 Amazon EC2 인스턴스 프로파일에는 `AmazonSSMManagedInstanceCore` 관리형 정책과 다음 인라인 정책이 포함된 IAM 역할이 있어야 합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:PutObjectAcl"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------

   최소 권한을 위해 내보내는 Amazon S3 버킷에 Amazon S3 콘솔에서 정의한 기본 설정이 있어야 합니다. Amazon S3 버킷 생성에 대한 자세한 내용은 *Amazon S3 사용 설명서*의 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)을 참조하세요.
**참고**  
연결 실행 중에 SSM 문서에 의해 시작된 API 작업은 AWS CloudTrail에 로깅되지 않습니다.

1. **연결 생성**을 선택합니다.

**참고**  
생성한 연결을 삭제하면 연결은 더 이상 해당 연결의 대상에서 실행되지 않습니다.

## 연결 생성(명령줄)
<a name="create-state-manager-association-commandline"></a>

다음 절차에서는 AWS CLI(Linux 또는 Windows Server) 또는 Tools for PowerShell을 사용하여 State Manager 연결을 생성하는 방법을 설명합니다. 이 섹션에는 대상 및 속도 제어를 사용하는 방법을 보여주는 몇 가지 예제가 포함되어 있습니다. 대상 및 속도 제어를 사용하면 수십 또는 수백 개의 노드에 연결을 할당하면서 이러한 연결의 실행을 제어할 수 있습니다. 대상 및 속도 제어에 대한 자세한 내용은 [State Manager 연결에서의 대상 및 속도 제어 이해](systems-manager-state-manager-targets-and-rate-controls.md) 섹션을 참조하세요.

**중요**  
이 절차에서는 `Command` 또는 `Policy` 문서를 사용하는 연결을 생성하여 관리형 노드를 대상으로 지정하는 방법에 대해 설명합니다. Automation 런북을 사용하는 연결을 생성하여 노드 또는 다른 유형의 AWS 리소스를 대상 지정하는 방법에 대한 자세한 내용은 [State Manager 연결을 사용하여 자동화 예약](scheduling-automations-state-manager-associations.md) 섹션을 참조하세요.

**시작하기 전 준비 사항**  
`targets` 파라미터는 지정한 `Key`-`Value` 조합을 사용하여 노드를 대상으로 지정하는 검색 조건의 배열입니다. `targets` 파라미터를 사용하여 수십 또는 수백 개의 노드에서 연결을 생성하려는 경우, 절차를 시작하기 전에 다음의 대상 지정 옵션을 검토하세요.

ID를 지정하여 특정 노드를 대상으로 지정

```
--targets Key=InstanceIds,Values=instance-id-1,instance-id-2,instance-id-3
```

```
--targets Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
```

 태그를 사용하여 인스턴스를 대상으로 지정

```
--targets Key=tag:tag-key,Values=tag-value-1,tag-value-2,tag-value-3
```

```
--targets Key=tag:Environment,Values=Development,Test,Pre-production
```

AWS Resource Groups를 사용하여 노드 대상 지정

```
--targets Key=resource-groups:Name,Values=resource-group-name
```

```
--targets Key=resource-groups:Name,Values=WindowsInstancesGroup
```

현재 AWS 계정 및 AWS 리전의 모든 인스턴스를 대상으로 지정

```
--targets Key=InstanceIds,Values=*
```

**참고**  
다음 정보를 참고하세요.  
State Manager는 해당 문서가 다른 계정에서 공유되는 경우 새 버전의 문서를 사용하는 연결 실행을 지원하지 않습니다. Systems Manager 콘솔이 새로운 버전이 처리되었음을 보여주더라도 상태 관리자는 언제나 다른 계정에서 공유된 문서의 `default` 버전을 실행합니다. 다른 계정에서 새 버전의 문서 공유 양식을 사용하여 연결을 실행하려면 문서 버전을 `default`로 설정해야 합니다.
State Manager는 [TargetLocation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_TargetLocation.html)에 `IncludeChildOrganizationUnits`, `ExcludeAccounts`, `TargetsMaxErrors`, `TargetsMaxConcurrency`, `Targets`, `TargetLocationAlarmConfiguration` 파라미터를 지원하지 않습니다.
AWS CLI를 사용하여 최대 5개의 태그 키를 지정할 수 있습니다. AWS CLI를 사용하는 경우 `create-association` 명령에 지정된 *모든* 태그 키가 현재 노드에 할당되어 있어야 합니다. 그렇지 않으면 State Manager에서 노드를 연결 대상으로 지정하지 못합니다.
연결을 생성할 때 언제 일정을 실행할지 지정합니다. Cron 및 Rate 표현식을 사용하여 일정을 지정합니다. Cron 및 Rate 표현식에 대한 자세한 내용은 [연결에 대한 Cron 및 Rate 표현식](reference-cron-and-rate-expressions.md#reference-cron-and-rate-expressions-association) 섹션을 참조하세요.
새 대상 노드가 감지될 때 Automation 런북을 사용하여 생성된 연결을 적용하려면 특정 조건을 충족해야 합니다. 자세한 내용은 [Automation 런북을 사용한 대상 업데이트 정보](state-manager-about.md#runbook-target-updates) 섹션을 참조하세요.

**연결을 생성하려면**

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. 다음 형식을 사용하여 State Manager 연결을 생성하는 명령을 만듭니다. 각 *example resource placeholder*를 사용자의 정보로 바꿉니다.

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

   ```
   aws ssm create-association \
       --name document_name \
       --document-version version_of_document_applied \
       --instance-id instances_to_apply_association_on \
       --parameters (if any) \
       --targets target_options \
       --association-dispatch-assume-role arn_of_role_to_be_used_when_dispatching_configurations \
       --schedule-expression "cron_or_rate_expression" \
       --apply-only-at-cron-interval required_parameter_for_schedule_offsets \
       --schedule-offset number_between_1_and_6 \
       --output-location s3_bucket_to_store_output_details \
       --association-name association_name \
       --max-errors a_number_of_errors_or_a_percentage_of_target_set \
       --max-concurrency a_number_of_instances_or_a_percentage_of_target_set \
       --compliance-severity severity_level \
       --calendar-names change_calendar_names \
       --target-locations aws_region_or_account \
       --tags "Key=tag_key,Value=tag_value"
   ```

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

   ```
   aws ssm create-association ^
       --name document_name ^
       --document-version version_of_document_applied ^
       --instance-id instances_to_apply_association_on ^
       --parameters (if any) ^
       --targets target_options ^
       --association-dispatch-assume-role arn_of_role_to_be_used_when_dispatching_configurations ^
       --schedule-expression "cron_or_rate_expression" ^
       --apply-only-at-cron-interval required_parameter_for_schedule_offsets ^
       --schedule-offset number_between_1_and_6 ^
       --output-location s3_bucket_to_store_output_details ^
       --association-name association_name ^
       --max-errors a_number_of_errors_or_a_percentage_of_target_set ^
       --max-concurrency a_number_of_instances_or_a_percentage_of_target_set ^
       --compliance-severity severity_level ^
       --calendar-names change_calendar_names ^
       --target-locations aws_region_or_account ^
       --tags "Key=tag_key,Value=tag_value"
   ```

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

   ```
   New-SSMAssociation `
       -Name document_name `
       -DocumentVersion version_of_document_applied `
       -InstanceId instances_to_apply_association_on `
       -Parameters (if any) `
       -Target target_options `
       -AssociationDispatchAssumeRole arn_of_role_to_be_used_when_dispatching_configurations `
       -ScheduleExpression "cron_or_rate_expression" `
       -ApplyOnlyAtCronInterval required_parameter_for_schedule_offsets `
       -ScheduleOffSet number_between_1_and_6 `
       -OutputLocation s3_bucket_to_store_output_details `
       -AssociationName association_name `
       -MaxError  a_number_of_errors_or_a_percentage_of_target_set
       -MaxConcurrency a_number_of_instances_or_a_percentage_of_target_set `
       -ComplianceSeverity severity_level `
       -CalendarNames change_calendar_names `
       -TargetLocations aws_region_or_account `
       -Tags "Key=tag_key,Value=tag_value"
   ```

------

   다음 예제에서는 `"Environment,Linux"` 태그가 지정된 노드에 대해 연결을 생성합니다. 이 연결은 `AWS-UpdateSSMAgent` 문서를 사용하여 매주 일요일 오전 2시(협정 세계 표준시(UTC))에 대상 노드에 대해 SSM Agent를 업데이트합니다. 이 연결은 주어진 시간에 최대 10개의 노드에서 동시에 실행됩니다. 또한 이 연결은 오류 수가 5를 초과하는 경우 특정 실행 간격에 대해 더 많은 노드에서 실행을 중지합니다. 규정 준수 보고를 위해 이 연결에는 중간 심각도 수준이 할당됩니다.

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

   ```
   aws ssm create-association \
     --association-name Update_SSM_Agent_Linux \
     --targets Key=tag:Environment,Values=Linux \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --compliance-severity "MEDIUM" \
     --schedule-expression "cron(0 2 ? * SUN *)" \
     --max-errors "5" \
     --max-concurrency "10"
   ```

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

   ```
   aws ssm create-association ^
     --association-name Update_SSM_Agent_Linux ^
     --targets Key=tag:Environment,Values=Linux ^
     --name AWS-UpdateSSMAgent  ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --compliance-severity "MEDIUM" ^
     --schedule-expression "cron(0 2 ? * SUN *)" ^
     --max-errors "5" ^
     --max-concurrency "10"
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName Update_SSM_Agent_Linux `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="tag:Environment"
         "Values"="Linux"
       } `
     -ComplianceSeverity MEDIUM `
     -ScheduleExpression "cron(0 2 ? * SUN *)" `
     -MaxConcurrency 10 `
     -MaxError 5
   ```

------

   다음 예는 와일드카드 값(\$1)을 지정하여 노드 ID를 대상으로 지정합니다. 이를 통해 Systems Manager는 현재 AWS 계정 및 AWS 리전의 *모든* 노드에 대한 연결을 생성할 수 있습니다. 이 연결은 주어진 시간에 최대 10개의 노드에서 동시에 실행됩니다. 또한 이 연결은 오류 수가 5를 초과하는 경우 특정 실행 간격에 대해 더 많은 노드에서 실행을 중지합니다. 규정 준수 보고를 위해 이 연결에는 중간 심각도 수준이 할당됩니다. 이 연결에서는 일정 오프셋을 사용합니다. 즉, 지정된 cron 일정 2일 후에 실행됩니다. 또한 `ApplyOnlyAtCronInterval` 파라미터를 포함하며, 이 파라미터는 일정 오프셋을 사용하는 데 필요합니다. 즉, 연결은 생성된 직후에는 실행되지 않습니다.

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

   ```
   aws ssm create-association \
     --association-name Update_SSM_Agent_Linux \
     --name "AWS-UpdateSSMAgent" \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --targets "Key=instanceids,Values=*" \
     --compliance-severity "MEDIUM" \
     --schedule-expression "cron(0 2 ? * SUN#2 *)" \
     --apply-only-at-cron-interval \
     --schedule-offset 2 \
     --max-errors "5" \
     --max-concurrency "10" \
   ```

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

   ```
   aws ssm create-association ^
     --association-name Update_SSM_Agent_Linux ^
     --name "AWS-UpdateSSMAgent" ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --targets "Key=instanceids,Values=*" ^
     --compliance-severity "MEDIUM" ^
     --schedule-expression "cron(0 2 ? * SUN#2 *)" ^
     --apply-only-at-cron-interval ^
     --schedule-offset 2 ^
     --max-errors "5" ^
     --max-concurrency "10" ^
     --apply-only-at-cron-interval
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName Update_SSM_Agent_All `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="InstanceIds"
         "Values"="*"
       } `
     -ScheduleExpression "cron(0 2 ? * SUN#2 *)" `
     -ApplyOnlyAtCronInterval `
     -ScheduleOffset 2 `
     -MaxConcurrency 10 `
     -MaxError 5 `
     -ComplianceSeverity MEDIUM `
     -ApplyOnlyAtCronInterval
   ```

------

   다음 예에서는 Resource Groups의 노드에 연결을 생성합니다. 그룹 이름은 "HR-Department"입니다. 이 연결은 `AWS-UpdateSSMAgent` 문서를 사용하여 매주 일요일 오전 2시(협정 세계 표준시(UTC))에 대상 노드에 대해 SSM Agent를 업데이트합니다. 이 연결은 주어진 시간에 최대 10개의 노드에서 동시에 실행됩니다. 또한 이 연결은 오류 수가 5를 초과하는 경우 특정 실행 간격에 대해 더 많은 노드에서 실행을 중지합니다. 규정 준수 보고를 위해 이 연결에는 중간 심각도 수준이 할당됩니다. 이 연결은 지정된 cron 일정에서 실행됩니다. 연결이 생성된 직후에는 실행되지 않습니다.

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

   ```
   aws ssm create-association \
     --association-name Update_SSM_Agent_Linux \
     --targets Key=resource-groups:Name,Values=HR-Department \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --compliance-severity "MEDIUM" \
     --schedule-expression "cron(0 2 ? * SUN *)" \
     --max-errors "5" \
     --max-concurrency "10" \
     --apply-only-at-cron-interval
   ```

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

   ```
   aws ssm create-association ^
     --association-name Update_SSM_Agent_Linux ^
     --targets Key=resource-groups:Name,Values=HR-Department ^
     --name AWS-UpdateSSMAgent  ^
     -association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --compliance-severity "MEDIUM" ^
     --schedule-expression "cron(0 2 ? * SUN *)" ^
     --max-errors "5" ^
     --max-concurrency "10" ^
     --apply-only-at-cron-interval
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName Update_SSM_Agent_Linux `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="resource-groups:Name"
         "Values"="HR-Department"
       } `
     -ScheduleExpression "cron(0 2 ? * SUN *)" `
     -MaxConcurrency 10 `
     -MaxError 5 `
     -ComplianceSeverity MEDIUM `
     -ApplyOnlyAtCronInterval
   ```

------

   다음 예에서는 특정 노드 ID로 태그가 지정된 노드에서 실행되는 연결을 생성합니다. 연결은 변경 일정이 열려 있을 때 SSM Agent 문서를 사용하여 대상 노드에서 SSM Agent를 한 번 업데이트합니다. 연결은 실행 시 일정 상태를 확인합니다. 시작 시 일정이 닫혀 있고 연결이 한 번만 실행되면 연결 실행 기간이 지나므로 열결이 다시 실행되지 않습니다. 일정이 열려 있으면 그에 따라 연결이 실행됩니다.
**참고**  
변경 일정이 닫힐 때 연결이 작동하는 태그 또는 리소스 그룹에 새 노드를 추가하는 경우 변경 일정이 열리면 연결이 해당 노드에 적용됩니다.

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

   ```
   aws ssm create-association \
     --association-name CalendarAssociation \
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" \
     --schedule-expression "rate(1day)"
   ```

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

   ```
   aws ssm create-association ^
     --association-name CalendarAssociation ^
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" ^
     --name AWS-UpdateSSMAgent  ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" ^
     --schedule-expression "rate(1day)"
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName CalendarAssociation `
     -Target @{
         "Key"="tag:instanceids"
         "Values"="i-0cb2b964d3e14fd9f"
       } `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" `
     -ScheduleExpression "rate(1day)"
   ```

------

   다음 예에서는 특정 노드 ID로 태그가 지정된 노드에서 실행되는 연결을 생성합니다. 이 연결은 SSM Agent 문서를 사용하여 매주 일요일 오전 2시에 대상 노드에 대해 SSM Agent를 업데이트합니다. 이 연결은 변경 일정이 열려 있을 때 지정된 cron 일정에서만 실행됩니다. 연결은 생성 시 일정 상태를 확인합니다. 일정이 닫혀 있으면 연결이 적용되지 않습니다. 연결 적용 간격이 일요일 오전 2시에 시작되면 연결은 달력이 열려 있는지 확인합니다. 일정이 열려 있으면 그에 따라 연결이 실행됩니다.
**참고**  
변경 일정이 닫힐 때 연결이 작동하는 태그 또는 리소스 그룹에 새 노드를 추가하는 경우 변경 일정이 열리면 연결이 해당 노드에 적용됩니다.

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

   ```
   aws ssm create-association \
     --association-name MultiCalendarAssociation \
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2" \
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

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

   ```
   aws ssm create-association ^
     --association-name MultiCalendarAssociation ^
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" ^
     --name AWS-UpdateSSMAgent  ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2" ^
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName MultiCalendarAssociation `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="tag:instanceids"
         "Values"="i-0cb2b964d3e14fd9f"
       } `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2" `
     -ScheduleExpression "cron(0 2 ? * SUN *)"
   ```

------

**참고**  
생성한 연결을 삭제하면 연결은 더 이상 해당 연결의 대상에서 실행되지 않습니다. 또한 `apply-only-at-cron-interval` 파라미터를 지정한 경우 이 옵션을 재설정할 수 있습니다. 이렇게 하려면 명령줄에서 연결을 업데이트할 때 `no-apply-only-at-cron-interval` 파라미터를 지정합니다. 이 파라미터는 연결을 업데이트한 직후 지정된 간격에 따라 연결을 강제로 실행합니다.