

• AWS Systems Manager CloudWatch 대시보드는 2026년 4월 30일 이후에는 더 이상 사용할 수 없습니다. 고객은 Amazon CloudWatch 콘솔을 계속 사용하여 현재와 마찬가지로 Amazon CloudWatch 대시보드를 보고, 생성하고, 관리할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 대시보드 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)를 참조하세요.

# Systems Manager에서 연결 작업
<a name="state-manager-associations"></a>

이 섹션에서는 AWS Systems Manager 콘솔, AWS Command Line Interface(AWS CLI) 및 AWS Tools for PowerShell을 사용하여 State Manager 연결을 생성하고 관리하는 방법을 설명합니다.

**Topics**
+ [State Manager 연결에서의 대상 및 속도 제어 이해](systems-manager-state-manager-targets-and-rate-controls.md)
+ [연결 생성](state-manager-associations-creating.md)
+ [새로운 연결 버전 편집 및 생성](state-manager-associations-edit.md)
+ [연결 삭제](systems-manager-state-manager-delete-association.md)
+ [연결을 사용하여 Auto Scaling 그룹 실행](systems-manager-state-manager-asg.md)
+ [연결 내역 보기](state-manager-associations-history.md)
+ [IAM을 사용한 연결 작업](systems-manager-state-manager-iam.md)

# State Manager 연결에서의 대상 및 속도 제어 이해
<a name="systems-manager-state-manager-targets-and-rate-controls"></a>

이 주제에서는 예약된 시간에 연결을 실행하는 노드 수를 제어하면서 수십 또는 수백 개의 노드에 대한 연결을 배포하는 데 도움이 되는 State Manager에 대해 설명합니다. State Manager는 AWS Systems Manager의 도구입니다.

## 대상 사용
<a name="systems-manager-state-manager-targets-and-rate-controls-about-targets"></a>

State Manager 연결을 생성할 때 여기에 표시된 대로 Systems Manager 콘솔의 **대상(Targets)** 섹션에서 연결로 구성할 노드를 선택합니다.

![\[State Manager 연결 생성 시 노드를 대상으로 지정하는 다양한 옵션\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/images/state-manager-targets.png)


AWS Command Line Interface(AWS CLI)와 같은 명령줄 도구를 사용하여 연결을 생성하는 경우 `targets` 파라미터를 지정합니다. 노드를 대상으로 지정하면 개별 노드 ID를 지정하거나 선택할 필요 없이 수십, 수백 또는 수천 개의 노드를 연결로 구성할 수 있습니다.

각 관리형 노드는 최대 20개 연결의 대상이 될 수 있습니다.

연결 생성 시 State Manager에는 다음과 같은 대상 옵션이 포함되어 있습니다.

**태그 지정**  
이 옵션을 사용하여 태그 키와 노드에 지정된 태그 값(옵션)을 지정합니다. 요청을 실행하면 시스템은 지정된 태그 키 및 값과 일치하는 모든 노드를 찾아 해당 인스턴스에서 연결을 생성하려고 시도합니다. 여러 태그 값을 지정한 경우 연결은 해당 태그 값 중 적어도 하나 이상이 있는 모든 노드를 대상으로 합니다. 시스템은 처음 연결을 생성할 때 연결을 실행합니다. 이러한 최초 실행 후, 시스템은 사용자가 지정한 일정에 따라 연결을 실행합니다.

새 노드를 생성하고 지정된 태그 키 및 값을 해당 노드에 할당하면, 시스템은 자동으로 연결을 적용하고 즉시 실행하며 그 다음에는 일정에 따라 실행합니다. 이는 연결에서 Command 또는 Policy 문서를 사용하는 경우 적용되며 연결에서 Automation 실행서를 사용하는 경우에는 적용되지 않습니다. 노드에서 지정된 태그를 삭제하면 시스템은 더 이상 해당 노드에서 연결을 실행하지 않습니다.

**참고**  
State Manager(으)로 Automation 실행서를 사용하며 태깅 제한으로 인해 특정 목표를 달성할 수 없는 경우 Amazon EventBridge로 Automation 실행서를 사용하는 것을 고려하세요. 자세한 내용은 [EventBridge 이벤트를 기반으로 자동화 실행](running-automations-event-bridge.md) 섹션을 참조하세요. State Manager(으)로 실행서를 사용하는 방법에 대한 자세한 내용은 [State Manager 연결을 사용하여 자동화 예약](scheduling-automations-state-manager-associations.md)을(를) 참조하세요.

명령 또는 정책 문서를 사용하는 연결을 생성할 때 태그를 사용하는 것이 가장 좋습니다. 오토 스케일링을 실행하는 연결을 생성할 때 태그를 사용하는 것도 좋습니다. 자세한 내용은 [연결을 사용하여 Auto Scaling 그룹 실행](systems-manager-state-manager-asg.md) 섹션을 참조하세요.

**참고**  
다음 정보를 참고하세요.  
AWS Management Console에서 태그를 사용하여 노드를 대상으로 하는 연결을 생성할 때 자동 연결에는 1개의 태그 키만 지정하고 명령 연결에는 5개의 태그 키만 지정할 수 있습니다. 연결에 지정된 *모든* 태그 키가 현재 노드에 할당되어 있어야 합니다. 그렇지 않으면 State Manager에서 노드를 연결 대상으로 지정하지 못합니다.
콘솔을 사용*하고* 자동 연결에 2개 이상의 태그 키를 사용하고 명령 연결에 5개의 태그 키를 사용하여 노드를 대상으로 지정하려면 AWS Resource Groups 그룹에 태그 키를 할당하고 노드를 추가합니다. 그러면 State Manager 연결을 생성할 때 **대상** 목록에서 **리소스 그룹** 옵션을 선택할 수 있습니다.
AWS CLI를 사용하여 최대 5개의 태그 키를 지정할 수 있습니다. AWS CLI를 사용하는 경우 `create-association` 명령에 지정된 *모든* 태그 키가 현재 노드에 할당되어 있어야 합니다. 그렇지 않으면 State Manager에서 노드를 연결 대상으로 지정하지 못합니다.

**수동으로 노드 선택**  
이 옵션을 사용하면 연결을 생성하려는 노드를 수동으로 선택할 수 있습니다. **인스턴스(Instances)** 창에는 현재 AWS 계정 및 AWS 리전의 모든 Systems Manager 관리형 노드가 표시됩니다. 노드를 원하는 수만큼 수동으로 선택할 수 있습니다. 시스템은 처음 연결을 생성할 때 연결을 실행합니다. 이러한 최초 실행 후, 시스템은 사용자가 지정한 일정에 따라 연결을 실행합니다.

**참고**  
예상한 관리형 노드가 목록에 없으면 [관리형 노드 가용성 문제 해결](fleet-manager-troubleshooting-managed-nodes.md)에서 문제 해결 팁을 참조하세요.

**리소스 그룹 선택**  
이 옵션을 사용하면 AWS Resource Groups 태그 기반 또는 AWS CloudFormation 스택 기반 쿼리에서 반환된 모든 노드에서 연결을 생성할 수 있습니다.

다음은 연결을 위해 리소스 그룹을 대상으로 지정하는 방법에 대한 세부 정보입니다.
+ 새 노드를 그룹에 추가하면 시스템은 리소스 그룹을 대상으로 하는 연결에 해당 노드를 자동으로 매핑합니다. 변경 사항이 발견되면 시스템은 노드에 연결을 적용합니다. 이러한 최초 실행 후, 시스템은 사용자가 지정한 일정에 따라 연결을 실행합니다.
+ 리소스 그룹을 대상으로 지정하는 연결을 생성하고 해당 그룹에 대해 `AWS::SSM::ManagedInstance` 리소스 유형을 지정된 경우 [하이브리드 및 멀티클라우드](operating-systems-and-machine-types.md#supported-machine-types) 환경에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와 비 EC2 노드에서 모두 연결이 실행되도록 설계되어 있습니다.

  반대의 경우도 마찬가지입니다. 리소스 그룹을 대상으로 지정하는 연결을 생성하고 해당 그룹에 대해 `AWS::EC2::Instance` 리소스 유형이 지정된 경우 [하이브리드 및 멀티클라우드](operating-systems-and-machine-types.md#supported-machine-types) 환경의 비 EC2 노드와 (Amazon EC2) 인스턴스에서 모두 연결이 실행되도록 설계되어 있습니다.
+ 리소스 그룹을 대상으로 하는 연결을 생성하는 경우 리소스 그룹에 5개 이상의 태그 키가 할당되어 있거나 하나의 태그 키에 대해 5개 이상의 값이 지정되지 않아야 합니다. 이러한 조건 중 하나가 리소스 그룹에 할당된 태그 및 키에 적용되는 경우 연결이 실행되지 않고 `InvalidTarget` 오류를 반환합니다.
+ 태그를 사용하여 리소스 그룹을 대상으로 지정하는 연결을 생성하는 경우 태그 값에 대해 **(빈 값)** 옵션을 선택할 수 없습니다.
+ 리소스 그룹을 삭제하면 해당 그룹의 모든 인스턴스는 더 이상 연결을 실행하지 않습니다. 그룹을 대상으로 하는 연결을 삭제하는 것이 좋습니다.
+ 연결에 대해 단일 리소스 그룹만 대상으로 지정할 수 있습니다. 여러 그룹 또는 중첩된 그룹은 지원되지 않습니다.
+ 연결을 생성한 후 State Manager는 리소스 그룹의 리소스에 대한 정보를 이용해 연결을 주기적으로 업데이트합니다. 새 리소스를 리소스 그룹에 추가하는 경우, 시스템에서 새 리소스에 연결을 적용할 때의 일정은 몇 가지 요소에 따라 다릅니다. Systems Manager 콘솔의 State Manager 페이지에서 연결 상태를 확인할 수 있습니다.

**주의**  
Amazon EC2 인스턴스의 리소스 그룹을 대상으로 하는 연결을 생성할 수 있는 권한을 가진 AWS Identity and Access Management(IAM) 사용자, 그룹 또는 역할은 해당 그룹의 모든 인스턴스에 대한 루트 수준 제어 권한을 자동으로 갖습니다. 신뢰할 수 있는 관리자에게만 연결 생성이 허용되어야 합니다.

Resource Groups에 대한 자세한 내용은 *AWS Resource Groups User Guide*의 [What Is AWS Resource Groups?](https://docs.aws.amazon.com/ARG/latest/userguide/)를 참조하세요.

**모든 노드 선택**  
이 옵션을 사용하면 현재 AWS 계정 및 AWS 리전의 모든 노드를 대상으로 지정할 수 있습니다. 요청을 실행하면 시스템은 현재 AWS 계정 및 AWS 리전의 모든 노드를 찾아 해당 노드에서 연결을 생성하려고 시도합니다. 시스템은 처음 연결을 생성할 때 연결을 실행합니다. 이러한 최초 실행 후, 시스템은 사용자가 지정한 일정에 따라 연결을 실행합니다. 새 노드를 생성하면, 시스템은 자동으로 연결을 적용하고 즉시 실행하며 그 다음에는 일정에 따라 실행합니다.

## 비율 제어 사용
<a name="systems-manager-state-manager-targets-and-rate-controls-about-controls"></a>

동시성 값과 오류 임계값을 지정하여 노드에서 연결 실행을 제어할 수 있습니다. 동시성 값은 연결을 동시에 실행할 수 있는 노드의 수를 지정합니다. 오류 임계값은 Systems Manager가 연결 실행을 중지하기 위해 해당 연결로 구성된 각 노드에 명령을 보내기 전에 실패할 수 있는 연결 실행 수를 지정합니다. 이 명령은 다음 예정된 실행까지 연결이 실행되는 것을 중지합니다. 동시성 및 오류 임계값 기능을 통칭하여 *속도 제어*라고 합니다.

![\[State Manager 연결 생성 시 다양한 속도 제어 옵션\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/images/state-manager-rate-controls.png)


**동시성**  
동시성은 한 번에 특정한 수의 노드만 연결을 처리하도록 지정하여 노드에 대한 영향을 제한할 수 있습니다. 노드의 절대 개수(예: 20)를 지정하거나 대상 집합의 노드 비율(예: 10%)을 지정할 수 있습니다.

State Manager 동시성에는 다음과 같은 제한 사항이 있습니다.
+ 대상을 사용하여 연결을 생성하도록 선택했으나 동시성 값을 지정하지 않은 경우 State Manager는 최대 동시성으로 노드 50개를 자동으로 적용합니다.
+ 동시성을 사용하는 연결이 실행 중인데 대상 기준을 충족하는 새 노드가 온라인 상태가 되면 동시성 값을 초과하지 않는 경우 새 노드가 연결을 실행합니다. 동시성 값이 초과되면 현재 연결 실행 간격 중에는 새 노드가 무시됩니다. 동시성 요구 사항을 준수할 때 노드는 예약된 다음 간격 중 연결을 실행합니다.
+ 동시성을 사용하는 연결을 업데이트하고 업데이트 시 하나 이상의 노드가 연결을 처리 중이면 연결을 실행 중인 모든 노드를 완료할 수 있습니다. 시작되지 않은 연결은 중지됩니다. 연결이 업데이트되었기 때문에 연결 실행이 완료되면 모든 대상 노드가 즉시 연결을 실행합니다. 연결이 다시 실행되면 동시성 값이 적용됩니다.

**오류 임계값**  
오류 임계값은 Systems Manager가 해당 연결로 구성된 각 노드에 명령을 보내기 전에 실패가 허용되는 연결 실행 수를 지정합니다. 이 명령은 다음 예정된 실행까지 연결이 실행되는 것을 중지합니다. 오류의 절대 개수(예: 10개)를 지정하거나 대상 집합의 비율(예: 10%)을 지정할 수 있습니다.

예를 들어, 오류 절대 개수를 3으로 지정한 경우 4번째 오류가 반환되면 State Manager에서는 중지 명령을 전송합니다. 0을 지정하면 첫 번째 오류 결과가 반환된 후 State Manager는 중지 명령을 전송합니다.

예를 들어, 오류 임계값을 50개 연결의 10%로 지정한 경우 6번째 오류가 반환되면 State Manager에서는 중지 명령을 전송합니다. 오류 임계값에 도달했을 때 자동화를 이미 실행 중인 연결은 완료될 수도 있지만, 이러한 연결 중 일부가 실패할 수 있습니다. 오류 수가 오류 임계값에 지정된 수보다 많지 않도록 하려면 연결이 한 번에 하나씩 진행되도록 **동시성** 값을 1로 설정합니다.

State Manager 오류 임계값에는 다음과 같은 제한 및 제약이 있습니다.
+ 오류 임계값은 현재 간격에 대해 적용됩니다.
+ 단계 수준 세부 정보를 비롯해 각 오류에 대한 정보는 연결 내역에 기록됩니다.
+ 대상을 사용하여 연결을 생성하도록 선택했으나 오류 임계값을 지정하지 않은 경우 State Manager에서는 임계값으로 100% 실패를 자동으로 적용합니다.

# 연결 생성
<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` 파라미터를 지정합니다. 이 파라미터는 연결을 업데이트한 직후 지정된 간격에 따라 연결을 강제로 실행합니다.

# 새로운 연결 버전 편집 및 생성
<a name="state-manager-associations-edit"></a>

State Manager 연결을 편집하여 새 이름, 일정, 심각도 수준, 대상 또는 기타 값을 지정할 수 있습니다. SSM Command 유형 문서 기반 연결인 경우 명령의 출력을 Amazon Simple Storage Service(S3) 버킷에 쓰도록 선택할 수도 있습니다. 연결을 편집하면 State Manager에서 새로운 버전을 생성합니다. 다음 절차에 설명된 대로 편집 후에 다른 버전이 표시될 수 있습니다.

**참고**  
새 대상 노드가 감지될 때 Automation 런북을 사용하여 생성된 연결을 적용하려면 특정 조건을 충족해야 합니다. 자세한 내용은 [Automation 런북을 사용한 대상 업데이트 정보](state-manager-about.md#runbook-target-updates) 섹션을 참조하세요.

다음 절차에서는 Systems Manager 콘솔, AWS Command Line Interface(AWS CLI) 및 AWS Tools for PowerShell(Tools for PowerShell)을 사용하여 새로운 연결 버전을 편집하고 생성하는 방법을 설명합니다.

**중요**  
State Manager는 해당 문서가 다른 계정에서 공유되는 경우 새 버전의 문서를 사용하는 연결 실행을 지원하지 않습니다. State Manager는 Systems Manager 콘솔이 새 버전이 처리되었음을 보여주더라도 다른 계정에서 공유된 경우 문서의 `default` 버전을 항상 실행합니다. 다른 계정에서 새 버전의 문서 공유 양식을 사용하여 연결을 실행하려면 문서 버전을 `default`로 설정해야 합니다.

## 연결 편집(콘솔)
<a name="state-manager-associations-edit-console"></a>

다음 절차에서는 Systems Manager 콘솔을 사용하여 새로운 연결 버전을 편집하고 생성하는 방법을 설명합니다.

**참고**  
Automation 런북이 아닌 SSM Command 문서를 사용하는 연결의 경우 이 절차를 수행하려면 기존 Amazon S3 버킷에 대한 쓰기 액세스 권한이 있어야 합니다. 이전에 Amazon S3를 사용해 본 적이 없는 경우 Amazon S3 사용 요금이 부과되므로 주의하세요. 버킷을 생성하는 방법에 대한 자세한 내용은 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) 섹션을 참조하세요.

**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. 현재 요구 사항을 충족하도록 연결을 다시 구성합니다.

   `Command` 및 `Policy` 문서를 사용한 옵션에 대한 자세한 내용은 [연결 생성](state-manager-associations-creating.md) 문서를 참조하세요. Automation 런북을 사용한 연결 옵션에 대한 자세한 내용은 [State Manager 연결을 사용하여 자동화 예약](scheduling-automations-state-manager-associations.md) 문서를 참조하세요.

1. **변경 사항 저장(Save Changes)**을 선택합니다.

1. (선택사항) **연결** 페이지에서 연결 정보를 보려면 편집한 연결의 이름을 선택한 후 **버전** 탭을 선택합니다. 생성하고 편집한 연결의 각 버전이 시스템에 나열됩니다.

1. (선택 사항) SSM `Command` 문서를 기반으로 한 연결의 출력을 보려면 다음을 수행합니다.

   1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

   1. 명령 출력을 저장하도록 지정한 Amazon S3 버킷의 이름을 선택한 후, 연결을 실행한 노드의 ID로 이름을 지정한 폴더를 선택합니다. (버킷의 폴더에 출력을 저장하도록 선택한 경우, 해당 폴더를 먼저 여세요.)

   1. 몇 가지 수준을 드릴다운하여 `awsrunPowerShell` 폴더의 `stdout` 파일을 찾습니다.

   1. **열기** 또는 **다운로드**를 선택하여 호스트 이름을 확인합니다.

## 연결 편집(명령줄)
<a name="state-manager-associations-edit-commandline"></a>

다음 절차에서는 AWS CLI(Linux 또는 Windows Server) 또는 AWS Tools for PowerShell을 사용하여 새로운 연결 버전을 편집 및 생성하는 방법을 설명합니다.

**State Manager 연결을 편집하려면**

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*를 사용자의 정보로 바꿉니다.
**중요**  
`[https://docs.aws.amazon.com/cli/latest/reference/ssm/desupdatecribe-association.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/desupdatecribe-association.html)`을 호출할 때, 시스템은 요청의 모든 부가적인 파라미터를 드롭하고 이 파라미터를 null 값으로 덮어씁니다. 이것은 설계에 따른 것입니다. 파라미터를 변경하지 않더라도 호출에서 모든 선택적 파라미터를 지정해야 합니다. 여기에는 `--name` 파라미터가 포함됩니다. 이 작업을 호출하기 전에, `[https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-association.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-association.html)` 작업을 직접 호출하고 `update-association` 직접 호출에 필요한 모든 선택적 파라미터를 기록해 두는 것이 좋습니다.

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

   ```
   aws ssm update-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" \
       --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
   ```

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

   ```
   aws ssm update-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" ^
       --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
   ```

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

   ```
   Update-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" `
       -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
   ```

------

   다음 예제에서는 이름을 `TestHostnameAssociation2`으로 변경하도록 기존 연결을 업데이트합니다. 새로운 연결 버전은 매 시간마다 실행되고 명령의 출력을 지정된 Amazon S3 버킷에 씁니다.

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

   ```
   aws ssm update-association \
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \
     --association-name TestHostnameAssociation2 \
     --parameters commands="echo Association" \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \
     --schedule-expression "cron(0 */1 * * ? *)"
   ```

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

   ```
   aws ssm update-association ^
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^
     --association-name TestHostnameAssociation2 ^
     --parameters commands="echo Association" ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^
     --schedule-expression "cron(0 */1 * * ? *)"
   ```

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

   ```
   Update-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE `
     -AssociationName TestHostnameAssociation2 `
     -Parameter @{"commands"="echo Association"} `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -S3Location_OutputS3BucketName amzn-s3-demo-bucket `
     -S3Location_OutputS3KeyPrefix logs `
     -S3Location_OutputS3Region us-east-1 `
     -ScheduleExpression "cron(0 */1 * * ? *)"
   ```

------

   다음 예제에서는 이름을 `CalendarAssociation`으로 변경하도록 기존 연결을 업데이트합니다. 새로운 연결은 달력이 열릴 때 실행되고 명령 출력을 지정된 Amazon S3 버킷에 씁니다.

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

   ```
   aws ssm update-association \
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \
     --association-name CalendarAssociation \
     --parameters commands="echo Association" \
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
   ```

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

   ```
   aws ssm update-association ^
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^
     --association-name CalendarAssociation ^
     --parameters commands="echo Association" ^
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
   ```

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

   ```
   Update-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE `
     -AssociationName CalendarAssociation `
     -AssociationName OneTimeAssociation `
     -Parameter @{"commands"="echo Association"} `
     -S3Location_OutputS3BucketName amzn-s3-demo-bucket `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
   ```

------

   다음 예제에서는 이름을 `MultiCalendarAssociation`으로 변경하도록 기존 연결을 업데이트합니다. 새로운 연결은 달력이 열려 있을 때 실행되고 명령 출력을 지정된 Amazon S3 버킷에 씁니다.

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

   ```
   aws ssm update-association \
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \
     --association-name MultiCalendarAssociation \
     --parameters commands="echo Association" \
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
   ```

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

   ```
   aws ssm update-association ^
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^
     --association-name MultiCalendarAssociation ^
     --parameters commands="echo Association" ^
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
   ```

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

   ```
   Update-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE `
     -AssociationName MultiCalendarAssociation `
     -Parameter @{"commands"="echo Association"} `
     -S3Location_OutputS3BucketName amzn-s3-demo-bucket `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
   ```

------

1. 새로운 연결 버전을 보려면 다음 명령을 실행합니다.

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

   ```
   aws ssm describe-association \
     --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE
   ```

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

   ```
   aws ssm describe-association ^
     --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE
   ```

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

   ```
   Get-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE | Select-Object *
   ```

------

   시스템은 다음과 같은 정보를 반환합니다.

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

   ```
   {
       "AssociationDescription": {
           "ScheduleExpression": "cron(0 */1 * * ? *)",
           "OutputLocation": {
               "S3Location": {
                   "OutputS3KeyPrefix": "logs",
                   "OutputS3BucketName": "amzn-s3-demo-bucket",
                   "OutputS3Region": "us-east-1"
               }
           },
           "Name": "AWS-RunPowerShellScript",
           "Parameters": {
               "commands": [
                   "echo Association"
               ]
           },
           "LastExecutionDate": 1559316400.338,
           "Overview": {
               "Status": "Success",
               "DetailedStatus": "Success",
               "AssociationStatusAggregatedCount": {}
           },
           "AssociationId": "b85ccafe-9f02-4812-9b81-01234EXAMPLE",
           "DocumentVersion": "$DEFAULT",
           "LastSuccessfulExecutionDate": 1559316400.338,
           "LastUpdateAssociationDate": 1559316389.753,
           "Date": 1559314038.532,
           "AssociationVersion": "2",
           "AssociationName": "TestHostnameAssociation2",
           "Targets": [
               {
                   "Values": [
                       "Windows"
                   ],
                   "Key": "tag:Environment"
               }
           ]
       }
   }
   ```

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

   ```
   {
       "AssociationDescription": {
           "ScheduleExpression": "cron(0 */1 * * ? *)",
           "OutputLocation": {
               "S3Location": {
                   "OutputS3KeyPrefix": "logs",
                   "OutputS3BucketName": "amzn-s3-demo-bucket",
                   "OutputS3Region": "us-east-1"
               }
           },
           "Name": "AWS-RunPowerShellScript",
           "Parameters": {
               "commands": [
                   "echo Association"
               ]
           },
           "LastExecutionDate": 1559316400.338,
           "Overview": {
               "Status": "Success",
               "DetailedStatus": "Success",
               "AssociationStatusAggregatedCount": {}
           },
           "AssociationId": "b85ccafe-9f02-4812-9b81-01234EXAMPLE",
           "DocumentVersion": "$DEFAULT",
           "LastSuccessfulExecutionDate": 1559316400.338,
           "LastUpdateAssociationDate": 1559316389.753,
           "Date": 1559314038.532,
           "AssociationVersion": "2",
           "AssociationName": "TestHostnameAssociation2",
           "Targets": [
               {
                   "Values": [
                       "Windows"
                   ],
                   "Key": "tag:Environment"
               }
           ]
       }
   }
   ```

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

   ```
   AssociationId                 : b85ccafe-9f02-4812-9b81-01234EXAMPLE
   AssociationName               : TestHostnameAssociation2
   AssociationVersion            : 2
   AutomationTargetParameterName : 
   ComplianceSeverity            : 
   Date                          : 5/31/2019 2:47:18 PM
   DocumentVersion               : $DEFAULT
   InstanceId                    : 
   LastExecutionDate             : 5/31/2019 3:26:40 PM
   LastSuccessfulExecutionDate   : 5/31/2019 3:26:40 PM
   LastUpdateAssociationDate     : 5/31/2019 3:26:29 PM
   MaxConcurrency                : 
   MaxErrors                     : 
   Name                          : AWS-RunPowerShellScript
   OutputLocation                : Amazon.SimpleSystemsManagement.Model.InstanceAssociationOutputLocation
   Overview                      : Amazon.SimpleSystemsManagement.Model.AssociationOverview
   Parameters                    : {[commands, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
   ScheduleExpression            : cron(0 */1 * * ? *)
   Status                        : 
   Targets                       : {tag:Environment}
   ```

------

# 연결 삭제
<a name="systems-manager-state-manager-delete-association"></a>

다음 절차에 따라 AWS Systems Manager 콘솔을 사용하여 연결을 삭제합니다.

**연결을 삭제하려면**

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

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

1. 연결을 선택하고 **삭제**를 선택합니다.

AWS Systems Manager 콘솔에서 자동화를 실행하여 한 번의 작업으로 여러 개의 연결을 삭제할 수 있습니다. 삭제할 연결을 여러 개 선택하면 State Manager가 입력 파라미터 값으로 입력된 연결 ID를 사용하여 자동화 런북 시작 페이지를 시작합니다.

**한 번의 작업으로 여러 연결을 삭제하려면**

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

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

1. 삭제하려는 각 연결을 선택한 다음 **삭제**를 선택합니다.

1. (선택 사항) **추가 입력 파라미터** 영역에서 실행 중에 자동화가 사용할 **역할 수임을 위한 Amazon 리소스 이름(ARN)을 선택합니다. 새 역할 수임을 생성하려면 **생성**을 선택하세요.

1. **제출**을 선택합니다.

# 연결을 사용하여 Auto Scaling 그룹 실행
<a name="systems-manager-state-manager-asg"></a>

연결을 사용하여 Auto Scaling 그룹을 실행할 때 모범 사례는 태그 대상을 사용하는 것입니다. 태그를 사용하지 않으면 연결 제한에 도달하게 될 수 있습니다.

모든 노드에 동일한 키와 값으로 태그가 지정된 경우 Auto Scaling 그룹을 실행하는 데 하나의 연결만 필요합니다. 다음 절차에서는 이러한 연결을 생성하는 방법을 설명합니다.

**Auto Scaling 그룹을 실행하는 연결을 생성하려면**

1. Auto Scaling 그룹의 모든 노드에 동일한 키와 값으로 태그가 지정되었는지 확인합니다. 노드에 태그를 지정하는 자세한 지침은 *AWS Auto Scaling 사용 설명서*의 [Auto Scaling 그룹 및 인스턴스 태그 지정](https://docs.aws.amazon.com//autoscaling/ec2/userguide/autoscaling-tagging.html)을 참조하세요.

1. [Systems Manager에서 연결 작업](state-manager-associations.md)의 절차를 사용하여 연결을 생성합니다.

   콘솔에서 작업 중인 경우 [**대상(Targets)**] 필드에서 [**인스턴스 태그 지정(Specify instance tags)**]을 선택합니다. [**인스턴스 태그(Instance tags)**]에 Auto Scaling 그룹의 [**태그(Tag)**] 키와 값을 입력합니다.

   AWS Command Line Interface(AWS CLI)를 사용하는 경우 키와 값이 노드에 태그를 지정하는 데 사용한 것과 일치하는 `--targets Key=tag:tag-key,Values=tag-value`를 지정합니다.

# 연결 내역 보기
<a name="state-manager-associations-history"></a>

[DescribeAssociationExecutions](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAssociationExecutions.html) API 작업을 사용하여 특정 연결 ID에 대한 모든 실행을 볼 수 있습니다. 이 작업을 사용하여 State Manager 연결의 상태, 세부 상태, 결과, 마지막 실행 시간 및 추가 정보를 봅니다. State Manager는 AWS Systems Manager의 도구입니다. 이 API 작업에는 지정한 기준에 따라 연결을 찾는 데 도움이 되는 필터도 포함됩니다. 예를 들어 정확한 날짜 및 시간을 지정하고 GREATER\$1THAN 필터를 사용하여 지정한 날짜 및 시간 이후에 처리된 실행을 볼 수 있습니다.

예를 들어 연결 실행에 실패한 경우 [DescribeAssociationExecutionTargets](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAssociationExecutionTargets.html) API 작업을 사용하여 특정 실행의 세부 정보를 심층 분석할 수 있습니다. 이 작업은 연결이 실행된 노드 ID와 같은 리소스 및 다양한 연결 상태를 보여줍니다. 그러면 연결 실행에 실패한 리소스나 노드를 확인할 수 있습니다. 그런 다음 리소스 ID를 사용하여 명령 실행 세부 정보를 보고 명령의 어떤 단계가 실패했는지를 확인할 수 있습니다.

이 섹션의 예에는 [StartAssociationsOnce](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAssociationsOnce.html) API 작업을 사용하여 생성 시 한 번 연결을 실행하는 방법에 대한 정보도 포함되어 있습니다. 실패한 연결 실행을 조사할 때 이 API 작업을 사용할 수 있습니다. 연결이 실패했음을 확인하는 경우 리소스를 변경한 다음 연결을 즉시 실행하여 리소스 변경으로 인해 연결을 성공적으로 실행할 수 있는지 여부를 확인할 수 있습니다.

**참고**  
연결 실행 중에 SSM 문서에 의해 시작된 API 작업은 AWS CloudTrail에 로깅되지 않습니다.

## 연결 내역 보기(콘솔)
<a name="state-manager-associations-history-console"></a>

다음 절차를 사용하여 특정 연결 ID에 대한 실행 내역을 본 다음 하나 이상의 리소스에 대한 실행 세부 정보를 봅니다.

**특정 연결 ID에 대한 실행 내역을 보려면**

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

1. **State Manager**을 선택합니다.

1. **Association id(연결 ID)** 필드에서 내역을 보려는 연결을 선택합니다.

1. **세부 정보 보기(View details)** 버튼을 선택합니다.

1. **Execution history(실행 내역)** 탭을 선택합니다.

1. 리소스 레벨 실행 세부 정보를 보려는 연결을 선택합니다. 예를 들어, **Failed(실패)** 상태를 보여 주는 연결을 선택합니다. 그런 다음 연결을 실행하는 데 실패한 노드에 대한 실행 세부 정보를 볼 수 있습니다.

   검색 상자 필터를 사용하여 세부 정보를 보려는 실행을 찾습니다.  
![\[State Manager 연결 실행 목록 필터링\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/images/sysman-state-executions-filter.png)

1. 실행 ID를 선택합니다. **Association execution targets(연결 실행 대상)** 페이지가 열립니다. 이 페이지에는 연결을 실행한 모든 리소스가 표시됩니다.

1. 리소스 ID를 선택하여 해당 리소스에 대한 구체적인 정보를 봅니다.

   검색 상자 필터를 사용하여 세부 정보를 보려는 리소스를 찾습니다.  
![\[State Manager 연결 실행 대상 목록 필터링\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/images/sysman-state-executions-targets-filter.png)

1. 실행에 실패한 연결을 조사하는 경우 [**지금 연결 적용(Apply association now)**] 버튼을 사용하여 생성 시 연결을 한 번 실행할 수 있습니다. 연결 실행에 실패한 리소스를 변경한 후 탐색 이동 경로에서 **Association ID(연결 ID)** 랭크를 선택합니다.

1. **Apply association now(지금 연결 적용)** 버튼을 선택합니다. 실행이 완료된 후 해당 연결 실행이 성공했는지를 확인합니다.

## 연결 내역 보기(명령줄)
<a name="state-manager-associations-history-commandline"></a>

다음 절차에서는 AWS Command Line Interface(AWS CLI)(Linux 또는 Windows Server) 또는 AWS Tools for PowerShell을 사용하여 특정 연결 ID에 대한 실행 내역을 보는 방법을 설명합니다. 그런 다음, 하나 이상의 리소스에 대한 실행 세부 정보를 보는 방법을 설명합니다.

**특정 연결 ID에 대한 실행 내역을 보려면**

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. 다음 명령을 실행하여 특정 연결 ID의 작업 실행 목록을 봅니다.

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

   ```
   aws ssm describe-association-executions \
     --association-id ID \
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN
   ```

**참고**  
이 명령에는 특정 날짜 및 시간 이후에 발생한 실행으로만 결과를 제한하는 필터가 포함됩니다. 특정 연결 ID의 모든 실행을 보려는 경우 `--filters` 파라미터 및 ` Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN` 값을 제거합니다.

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

   ```
   aws ssm describe-association-executions ^
     --association-id ID ^
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN
   ```

**참고**  
이 명령에는 특정 날짜 및 시간 이후에 발생한 실행으로만 결과를 제한하는 필터가 포함됩니다. 특정 연결 ID의 모든 실행을 보려는 경우 `--filters` 파라미터 및 ` Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN` 값을 제거합니다.

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

   ```
   Get-SSMAssociationExecution `
     -AssociationId ID `
     -Filter @{"Key"="CreatedTime";"Value"="2019-06-01T19:15:38.372Z";"Type"="GREATER_THAN"}
   ```

**참고**  
이 명령에는 특정 날짜 및 시간 이후에 발생한 실행으로만 결과를 제한하는 필터가 포함됩니다. 특정 연결 ID의 모든 실행을 보려는 경우 `-Filter` 파라미터 및 ` @{"Key"="CreatedTime";"Value"="2019-06-01T19:15:38.372Z";"Type"="GREATER_THAN"}` 값을 제거합니다.

------

   시스템은 다음과 같은 정보를 반환합니다.

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

   ```
   {
      "AssociationExecutions":[
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"76a5a04f-caf6-490c-b448-92c02EXAMPLE",
            "CreatedTime":1523986028.219,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "CreatedTime":1523984226.074,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "CreatedTime":1523982404.013,
            "AssociationVersion":"1"
         }
      ]
   }
   ```

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

   ```
   {
      "AssociationExecutions":[
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"76a5a04f-caf6-490c-b448-92c02EXAMPLE",
            "CreatedTime":1523986028.219,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "CreatedTime":1523984226.074,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "CreatedTime":1523982404.013,
            "AssociationVersion":"1"
         }
      ]
   }
   ```

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

   ```
   AssociationId         : c336d2ab-09de-44ba-8f6a-6136cEXAMPLE
   AssociationVersion    : 1
   CreatedTime           : 8/18/2019 2:00:50 AM
   DetailedStatus        : Success
   ExecutionId           : 76a5a04f-caf6-490c-b448-92c02EXAMPLE
   LastExecutionDate     : 1/1/0001 12:00:00 AM
   ResourceCountByStatus : {Success=1}
   Status                : Success
   
   AssociationId         : c336d2ab-09de-44ba-8f6a-6136cEXAMPLE
   AssociationVersion    : 1
   CreatedTime           : 8/11/2019 2:00:54 AM
   DetailedStatus        : Success
   ExecutionId           : 791b72e0-f0da-4021-8b35-f95dfEXAMPLE
   LastExecutionDate     : 1/1/0001 12:00:00 AM
   ResourceCountByStatus : {Success=1}
   Status                : Success
   
   AssociationId         : c336d2ab-09de-44ba-8f6a-6136cEXAMPLE
   AssociationVersion    : 1
   CreatedTime           : 8/4/2019 2:01:00 AM
   DetailedStatus        : Success
   ExecutionId           : ecec60fa-6bb0-4d26-98c7-140308EXAMPLE
   LastExecutionDate     : 1/1/0001 12:00:00 AM
   ResourceCountByStatus : {Success=1}
   Status                : Success
   ```

------

   하나 이상의 필터를 사용하려 결과를 제한할 수 있습니다. 다음 예는 특정 날짜 및 시간 이전에 실행된 모든 연결을 반환합니다.

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

   ```
   aws ssm describe-association-executions \
     --association-id ID \
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=LESS_THAN
   ```

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

   ```
   aws ssm describe-association-executions ^
     --association-id ID ^
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=LESS_THAN
   ```

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

   ```
   Get-SSMAssociationExecution `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -Filter @{"Key"="CreatedTime";"Value"="2019-06-01T19:15:38.372Z";"Type"="LESS_THAN"}
   ```

------

   다음은 특정 날짜 및 시간 이후에 *성공적으로* 실행된 모든 연결을 반환합니다.

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

   ```
   aws ssm describe-association-executions \
     --association-id ID \
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN Key=Status,Value=Success,Type=EQUAL
   ```

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

   ```
   aws ssm describe-association-executions ^
     --association-id ID ^
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN Key=Status,Value=Success,Type=EQUAL
   ```

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

   ```
   Get-SSMAssociationExecution `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -Filter @{
         "Key"="CreatedTime";
         "Value"="2019-06-01T19:15:38.372Z";
         "Type"="GREATER_THAN"
       },
       @{
         "Key"="Status";
         "Value"="Success";
         "Type"="EQUAL"
       }
   ```

------

1. 다음 명령을 실행하여 특정 실행이 실행된 모든 대상을 봅니다.

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

   ```
   aws ssm describe-association-execution-targets \
     --association-id ID \
     --execution-id ID
   ```

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

   ```
   aws ssm describe-association-execution-targets ^
     --association-id ID ^
     --execution-id ID
   ```

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

   ```
   Get-SSMAssociationExecutionTarget `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -ExecutionId 76a5a04f-caf6-490c-b448-92c02EXAMPLE
   ```

------

   하나 이상의 필터를 사용하려 결과를 제한할 수 있습니다. 다음 예는 특정 연결 실행에 실패한 모든 대상에 대한 정보를 반환합니다.

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

   ```
   aws ssm describe-association-execution-targets \
     --association-id ID \
     --execution-id ID \
     --filters Key=Status,Value="Failed"
   ```

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

   ```
   aws ssm describe-association-execution-targets ^
     --association-id ID ^
     --execution-id ID ^
     --filters Key=Status,Value="Failed"
   ```

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

   ```
   Get-SSMAssociationExecutionTarget `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -ExecutionId 76a5a04f-caf6-490c-b448-92c02EXAMPLE `
     -Filter @{
         "Key"="Status";
         "Value"="Failed"
       }
   ```

------

   다음 예는 연결 실행에 실패한 특정 관리형 노드에 대한 정보를 반환합니다.

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

   ```
   aws ssm describe-association-execution-targets \
     --association-id ID \
     --execution-id ID \
     --filters Key=Status,Value=Failed Key=ResourceId,Value="i-02573cafcfEXAMPLE" Key=ResourceType,Value=ManagedInstance
   ```

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

   ```
   aws ssm describe-association-execution-targets ^
     --association-id ID ^
     --execution-id ID ^
     --filters Key=Status,Value=Failed Key=ResourceId,Value="i-02573cafcfEXAMPLE" Key=ResourceType,Value=ManagedInstance
   ```

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

   ```
   Get-SSMAssociationExecutionTarget `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -ExecutionId 76a5a04f-caf6-490c-b448-92c02EXAMPLE `
     -Filter @{
         "Key"="Status";
         "Value"="Success"
       },
       @{
         "Key"="ResourceId";
         "Value"="i-02573cafcfEXAMPLE"
       },
       @{
         "Key"="ResourceType";
         "Value"="ManagedInstance"
       }
   ```

------

1. 실행에 실패한 연결을 조사하는 경우 [StartAssociationsOnce](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAssociationsOnce.html) API 작업을 사용하여 연결을 한 번만 즉시 실행할 수 있습니다. 연결 실행에 실패한 리소스를 변경한 후 다음 명령을 실행하여 연결을 한 번만 즉시 실행합니다.

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

   ```
   aws ssm start-associations-once \
     --association-id ID
   ```

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

   ```
   aws ssm start-associations-once ^
     --association-id ID
   ```

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

   ```
   Start-SSMAssociationsOnce `
     -AssociationId ID
   ```

------

# IAM을 사용한 연결 작업
<a name="systems-manager-state-manager-iam"></a>

State Manager의 도구인 AWS Systems Manager는 [대상](systems-manager-state-manager-targets-and-rate-controls.md#systems-manager-state-manager-targets-and-rate-controls-about-targets)을 사용하여 연결을 구성할 인스턴스를 선택합니다. 원래 연결은 문서 이름(`Name`)과 인스턴스 ID(`InstanceId`)를 지정하여 생성되었습니다. 그러면 문서와 인스턴스 또는 관리형 노드드 간 연결이 생성됩니다. 이러한 파라미터에 의해 식별되는 데 사용되는 연결입니다. 이러한 파라미터는 이제 더 이상 사용되지 않지만 여전히 지원됩니다. 리소스 `instance` 및 `managed-instance`가 `Name` 및 `InstanceId`와 함께 작업에 리소스로 추가되었습니다.

AWS Identity and Access Management(IAM) 정책 시행 동작은 지정된 리소스 유형에 따라 다릅니다. State Manager 작업을 위한 리소스는 전달된 요청에 따라서만 시행됩니다. State Manager는 사용자 계정에 있는 리소스의 속성에 대한 정밀 검사를 수행하지 않습니다. 요청 파라미터에 지정된 정책 리소스가 포함된 경우에만 요청이 정책 리소스에 대해 검증됩니다. 예를 들어 리소스 블록에 인스턴스를 지정하면 요청에서 `InstanceId` 파라미터를 사용하는 경우 정책이 시행됩니다. 계정의 각 리소스에 대한 `Targets` 파라미터는 해당 `InstanceId`에 대해 확인되지 않습니다.

다음은 혼란스러운 동작이 포함된 몇 가지 경우입니다.
+  [DescribeAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_DescribeActivations.html), [DeleteAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_DeleteAssociation.html) 및 [UpdateAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_UpdateAssociation.html)은 `instance`, `managed-instance` 및 `document` 리소스를 사용하여 더 이상 사용되지 않는 연결 참조 방법을 지정합니다. 여기에는 더 이상 사용되지 않는 `InstanceId` 파라미터로 생성된 모든 연결이 포함됩니다.
+ [CreateAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_CreateAssociation.html), [CreateAssociationBatch](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_CreateAssociationBatch.html) 및 [UpdateAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_UpdateAssociation.html)은 `instance` 및 `managed-instance` 리소스를 사용하여 더 이상 사용되지 않는 연결 참조 방법을 지정합니다. 여기에는 더 이상 사용되지 않는 `InstanceId` 파라미터로 생성된 모든 연결이 포함됩니다. `document` 리소스 유형은 더 이상 사용되지 않는 연결 참조 방법의 일부이며 연결의 실제 속성입니다. 즉, 문서 이름을 기반으로 `Create` 및 `Update` 작업 모두에 대해 `Allow` 또는 `Deny` 권한이 있는 IAM 정책을 구성할 수 있습니다.

Systems Manager에서 IAM 정책을 사용하는 방법에 대한 자세한 내용은 *Service Authorization Reference*의 [AWS Systems Manager의 I자격 증명 및 액세스 관리](security-iam.md) 또는 [Actions, resources, and condition keys for AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html)를 참조하세요.