명령 상태 이해 - AWS 시스템 관리자

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

명령 상태 이해

시스템 관리자 Run Command는 어떤 명령을 처리하는 동안과 명령을 처리한 각 인스턴스에 대해 그 명령이 거치게 되는 다양한 상태에 대한 자세한 상태 정보를 보고합니다. 다음 방법을 사용하여 명령 상태를 모니터링할 수 있습니다.

  • 콘솔의 명령 실행 페이지에서 새로 고침 아이콘을 클릭합니다.Amazon EC2

  • 를 사용하여 list-commands 또는 list-command-invocations를 호출합니다.AWS CLI 또는 를 사용하여 Get-SSMCommand 또는 Get-SSMCommandInvocationWindows PowerShell용 AWS 도구을 호출합니다.

  • 상태 또는 상태 변경에 응답하도록 EventBridge를 구성합니다.

  • 모든 상태 변경 또는 실패나 Amazon SNS 같은 특정 상태에 대한 알림을 보내도록 TimedOut를 구성합니다.

Run Command 상태

Run Command는 플러그인, 호출, 전체 명령 상태라는 세 가지 영역에 대한 자세한 상태 정보를 보고합니다. 플러그인은 명령의 시스템 관리자(SSM) 문서에 정의된 코드 실행 블록입니다. 플러그인에 대한 자세한 정보는 시스템 관리자 명령줄 문서 플러그인 참조 단원을 참조하십시오.

동시에 여러 인스턴스에 명령을 보내는 경우, 각 인스턴스를 대상으로 하는 명령 사본 각각을 명령 호출이라고 합니다. 예를 들어, AWS-RunShellScript 문서를 사용하고 ifconfig 명령을 20개의 Linux 인스턴스에 보내는 경우, 이 명령에는 20개의 호출이 있습니다. 각 명령 호출은 개별적으로 상태를 보고합니다. 지정된 명령 호출에 대한 플러그인 역시 상태를 개별적으로 보고합니다.

마지막으로, Run Command에는 모든 플러그인과 호출에 대한 총체적인 명령 상태가 포함되어 있습니다. 다음 표에 나와 있는 것처럼, 총체적인 명령 상태는 플러그인이나 호출에서 보고되는 상태와 다를 수 있습니다.

참고

max-concurrency 또는 max-errors 파라미터를 사용하여 많은 수의 인스턴스에 명령을 실행할 경우 다음 표의 설명과 같이 명령 상태는 해당 파라미터에 따른 제한을 반영합니다. 이런 파라미터에 대한 자세한 내용은 대상 및 비율 제어를 사용하여 플릿에 명령 전송 단원을 참조하십시오.

명령 플러그인 및 호출의 세부 상태
Status 세부 정보
대기 중 명령이 아직 인스턴스로 전송되지 않았거나 SSM 에이전트에서 수신되지 않았습니다. 제한 시간(초) 파라미터와 실행 제한 시간 파라미터의 합계와 동일한 시간이 경과되기 전에 에이전트가 명령을 수신하지 않으면 상태가 결국 로 변경됩니다.Delivery Timed Out
진행 중 시스템 관리자가 인스턴스로 명령을 전송하려고 시도 중이거나 명령이 SSM 에이전트에 수신되었고 인스턴스에서 실행을 시작했습니다. 모든 명령 플러그인의 결과에 따라 상태가 Success, Failed, Delivery Timed Out 또는 Execution Timed Out로 변경됩니다. . 예외: 에이전트가 실행 중이 아니거나 인스턴스에서 사용 가능한 상태가 아니면, 에이전트를 다시 사용할 수 있을 때까지 또는 실행 제한 시간에 도달할 때까지 명령 상태는 In Progress으로 유지됩니다. 그런 다음 상태가 종료 상태로 변경됩니다.
Delayed 시스템에서 인스턴스로 명령 전송을 시도했지만 성공하지 못했습니다. 전송을 재시도합니다.
성공 명령이 인스턴스의 SSM 에이전트에 수신되었고 종료 코드 0을 반환했습니다. 이 상태가 인스턴스에서 명령이 성공적으로 처리되었다는 뜻은 아닙니다. 이것은 종료 상태입니다.
참고

오류를 해결하거나 명령 실행에 대한 자세한 정보를 얻으려면 적절한 종료 코드(명령 실패에 대한 0 이외의 종료 코드)를 반환해 오류나 예외를 처리하는 명령을 전송합니다.

Delivery Timed Out 배달 제한 시간 만료 전까지 명령이 인스턴스로 전달되지 않았습니다. 전송 제한 시간은 상위 명령의 max-errors 제한에 포함되지 않지만 상위 명령 상태가 Success 또는 Incomplete인지 여부에는 영향을 미칩니다. 이는 종료 상태입니다.
Execution Timed Out 인스턴스에서 명령 실행이 시작되었지만, 실행 제한 시간 만료 전까지 실행이 완료되지 않았습니다. 실행 시간 초과는 상위 명령의 max-errors 제한에 계산됩니다. 이것은 종료 상태입니다. 제한 시간에 도달하면 시스템 관리자가 명령 실행을 멈춥니다.
실패

인스턴스에서 명령 실행에 성공하지 못했습니다. 플러그인의 경우 이는 결과 코드가 0이 아니었음을 나타냅니다. 명령 호출의 경우 이는 하나 이상의 플러그인에 대한 결과 코드가 0이 아니었음을 나타냅니다. 호출 실패는 상위 명령의 max-errors 제한에 계산됩니다. 이것은 종료 상태입니다.

취소됨 명령이 완료되기 전에 종료되었습니다. 이것은 종료 상태입니다.
Undeliverable 인스턴스로 명령을 전달할 수 없습니다. 해당 인스턴스가 없거나 응답하지 않는 것일 수 있습니다. 배달할 수 없는 호출은 상위 명령의 max-errors 제한에 포함되지 않지만 상위 명령 상태가 Success 또는 Incomplete인지 여부에는 영향을 미칩니다. 예를 들어 명령의 모든 호출이 Undeliverable 상태인 경우 반환된 명령 상태는 Failed입니다. 그러나 명령에 5개의 호출이 있고 그 중 4개가 Undeliverable 상태를 반환하고 그 중 하나가 Success 상태를 반환하는 경우 상위 명령의 상태는 Success입니다. 이는 종료 상태입니다.
Terminated 상위 명령이 max-errors 제한을 초과해 시스템에서 이후의 명령 호출을 취소했습니다. 이것은 종료 상태입니다.
잘못된 플랫폼 선택한 문서에서 지정한 필수 플랫폼과 일치하지 않은 인스턴스로 명령이 전송되었습니다. Invalid Platform는 상위 명령의 최대 오류 제한에 포함되지 않지만 상위 명령 상태가 성공 또는 실패인지 여부에 영향을 줍니다. 예를 들어 명령의 모든 호출이 Invalid Platform 상태인 경우 반환된 명령 상태는 Failed입니다. 그러나 명령에 5개의 호출이 있고 그 중 4개가 Invalid Platform 상태를 반환하고 그 중 하나가 Success 상태를 반환하는 경우 상위 명령의 상태는 Success입니다. 이는 종료 상태입니다.
액세스 거부됨 명령을 시작하는 IAM 사용자 또는 역할은 대상 관리형 인스턴스에 액세스할 수 없습니다. Access Denied는 상위 명령의 max-errors 제한에 대해 계산하지 않지만 상위 명령 상태가 Success 또는 Failed인지 여부에 영향을 줍니다. 예를 들어 명령의 모든 호출이 Access Denied 상태인 경우 반환된 명령 상태는 Failed입니다. 그러나 명령에 5개의 호출이 있고 그 중 4개가 Access Denied 상태를 반환하고 그 중 하나가 Success 상태를 반환하는 경우 상위 명령의 상태는 Success입니다. 이는 종료 상태입니다.
명령의 세부 상태
Status 세부 정보
대기 중 어떤 인스턴스에서도 에이전트가 아직 명령을 받지 않았습니다.
진행 중 한 개 이상의 인스턴스로 명령을 전송했지만 모든 인스턴스에서 최종 상태에 도달하지는 못했습니다.
Delayed 시스템에서 인스턴스로 명령 전송을 시도했지만 성공하지 못했습니다. 전송을 재시도합니다.
성공 지정되었거나 대상이 된 모든 인스턴스의 SSM 에이전트에 명령이 수신되었고 종료 코드 0을 반환했습니다. 모든 명령 호출이 터미널 상태에 도달했고 max-errors 값에 도달하지 않았습니다. 이 상태가 지정되었거나 대상이 된 모든 인스턴스에서 명령이 성공적으로 처리되었다는 뜻은 아닙니다. 이것은 종료 상태입니다.
참고

오류를 해결하거나 명령 실행에 대한 자세한 정보를 얻으려면 적절한 종료 코드(명령 실패에 대한 0 이외의 종료 코드)를 반환해 오류나 예외를 처리하는 명령을 전송합니다.

Delivery Timed Out 배달 제한 시간 만료 전까지 명령이 인스턴스로 전달되지 않았습니다. 또는 그 이상의 명령 호출 값이 max-errors 상태를 표시합니다.Delivery Timed Out 이는 종료 상태입니다.
Execution Timed Out 인스턴스에서 명령 실행이 시작되었지만, 실행 제한 시간 만료 전까지 실행이 완료되지 않았습니다. 또는 그 이상의 명령 호출 값이 max-errors 상태를 표시합니다.Execution Timed Out 이는 종료 상태입니다.
실패

인스턴스에서 명령 실행에 성공하지 못했습니다. 이상의 명령 호출 값이 max-errors 상태로 표시됩니다.Failed 이는 종료 상태입니다.

불완전 모든 인스턴스에서 명령을 시도했으나 하나 이상의 호출 값이 Success가 아닙니다. 하지만 상태가 Failed가 되기에 충분한 호출이 실패한 것은 아닙니다. 이는 종료 상태입니다.
취소됨 명령이 완료되기 전에 종료되었습니다. 이것은 종료 상태입니다.
Rate Exceeded 명령의 대상이 되는 인스턴스 수가 보류 중인 호출에 대한 계정 제한을 초과했습니다. 시스템에서 이 명령을 어떤 인스턴스에서 실행하기 전에 취소했습니다. 이것은 종료 상태입니다.
액세스 거부됨 명령을 시작하는 IAM 사용자 또는 역할은 대상 리소스 그룹에 액세스할 수 없습니다. AccessDenied는 상위 명령의 max-errors 제한에 대해 계산하지 않지만 상위 명령 상태가 Success 또는 Failed인지 여부에 영향을 줍니다. (예를 들어 명령의 모든 호출이 AccessDenied 상태인 경우 반환된 명령 상태는 Failed입니다. 그러나 명령에 5개의 호출이 있고 그 중 4개가 AccessDenied 상태를 반환하고 그 중 1개가 Success 상태를 반환하는 경우 상위 명령의 상태는 Success입니다.) 이는 종료 상태입니다.
태그에 인스턴스 없음 명령으로 대상 지정된 태그 키 페어 또는 리소스 그룹은 관리형 인스턴스와 일치하지 않습니다. 이것은 종료 상태입니다.

명령 제한 시간 값 이해

시스템 관리자는 명령을 실행할 때 다음 제한 시간 값을 적용합니다.

배달 제한 시간

시스템 관리자 콘솔에서 제한 시간(초) 필드에 배달 제한 시간 값을 지정합니다. 시스템 관리자는 대상에 명령을 배달해야 하며 대상의 SSM 에이전트는 제한 시간(초)에 지정된 시간(초) 내에 명령 처리를 시작해야 합니다.


					콘솔의 제한 시간(초) 필드시스템 관리자

실행 제한 시간

시스템 관리자 콘솔의 Execution Timeout(실행 제한 시간) 필드에 실행 제한 시간 값을 지정합니다(사용 가능한 경우). 모든 SSM 문서에 실행 제한 시간을 지정해야 하는 것은 아닙니다. 지정된 경우 이 시간 내에 명령이 완료되어야 합니다.


					콘솔의 Execution Timeout(실행 제한 시간) 필드시스템 관리자

기본 실행 제한 시간

시스템 관리자(SSM) 문서에서 실행 제한 시간 값을 명시적으로 지정할 필요가 없는 경우 시스템 관리자에서는 하드 코딩된 기본 실행 제한 시간을 적용합니다.

총 제한 시간

총 제한 시간은 delivery timeoutexecution timeout를 더한 값입니다. 이 execution timeout 문서에 필요하지 않은 경우 SSM은 total timeoutdelivery timeout을 더한 값과 같습니다.default execution timeout

시스템 관리자 보고서 제한 시간 방식

시스템 관리자가 대상의 SSM 에이전트로부터 execution timeout 응답을 수신한 경우 시스템 관리자는 명령 호출을 executionTimeout으로 표시합니다.

시스템 관리자가 대상의 SSM 에이전트로부터 응답을 수신하지 않았는데 명령 실행이 total timeout 값을 초과한 경우 시스템 관리자는 명령 호출을 deliveryTimeout으로 표시합니다.

대상의 제한 시간 상태를 확인하기 위해 SSM 에이전트는 모든 파라미터와 SSM 문서의 콘텐츠를 결합하여 executionTimeout를 계산합니다. 에서 명령이 시간 초과되었다고 확인하면 SSM 에이전트를 서비스로 전송합니다.executionTimeout

참고

SSM 에이전트는 SSM 문서 유형 및 문서 버전에 따라 executionTimeout을 다르게 처리합니다.