Amazon Elastic Compute Cloud(Amazon EC2) Windows 인스턴스에서 AWS Systems Manager Agent(SSM Agent)를 시작할 수 없는 문제를 해결하려고 합니다.
해결 방법
참고: 인스턴스가 관리형 노드에 필요한 요구 사항을 충족하는지 확인하려면 ssm-cli 버전 3.1.501.0을 사용하는 것이 좋습니다. 자세한 내용은 ssm-cli를 사용하여 관리형 노드 가용성 문제 해결을 참조하십시오.
SSM 에이전트가 Windows 인스턴스를 시작하지 못하는 이유는 다음과 같습니다.
IAM 역할에 필요한 권한이 없음
Systems Manager 엔드포인트에 대한 API 호출을 수행하려면 올바른 권한이 있어야 합니다. AmazonSSMManagedInstanceCore 권한 정책을 인스턴스와 연결된 AWS Identity and Access Management(IAM) 역할에 연결하십시오. 사용자 지정 IAM 정책을 사용하는 경우 사용자 지정 정책이 AmazonSSMManagedInstanceCore의 권한을 사용하는지 확인합니다. 또한 IAM 역할의 신뢰 정책에서 ec2.amazonaws.com이 이 역할을 맡을 수 있도록 허용하는지 확인하십시오. 자세한 내용은 1단계: Systems Manager에 대한 인스턴스 권한 구성을 참조하십시오.
SSM 에이전트가 인스턴스의 메타데이터에 액세스할 수 없음
SSM 에이전트는 인스턴스의 메타데이터 서비스와 통신하여 인스턴스에 대해 필수 정보를 가져와야 합니다. 인스턴스의 메타데이터에 액세스하려면 실행 중인 인스턴스 내에서 브라우저를 사용하십시오.
메타데이터에 액세스할 수 없는 경우 Windows PowerShell 또는 CMD에서 route print 명령을 실행합니다. 출력을 검토하여 다음과 비슷한 경로가 있는지 확인하십시오.
Persistent Routes:
Network Address Netmask Gateway Address Metric
169.254.169.254 255.255.255.255 172.31.16.1 15
169.254.169.250 255.255.255.255 172.31.16.1 15
169.254.169.251 255.255.255.255 172.31.16.1 15
169.254.169.249 255.255.255.255 172.31.16.1 15
169.254.169.123 255.255.255.255 172.31.16.1 15
169.254.169.253 255.255.255.255 172.31.16.1 15
경로가 없거나 게이트웨이 주소가 현재 서브넷과 일치하지 않으면 다음 단계 중 하나를 수행하십시오.
-
경로를 수동으로 추가합니다.
route add -p 169.254.169.254 mask 255.255.255.255 x.x.x.x
참고: x.x.x.x를 인스턴스의 게이트웨이 주소로 바꾸십시오.
-
인스턴스에 EC2Launch 버전 1이 있는 경우 향상된 Windows PowerShell 세션에서 다음 명령을 실행합니다.
import-Module c:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psm1 ; Add-Routes
-
인스턴스에 EC2Launch 버전 2 또는 EC2Config가 있는 경우 서비스를 다시 시작합니다. 이렇게 하면 메타데이터 서비스와 AWS KMS 서버에 도달하는 비영구 정적 경로가 설정됩니다.
경로가 존재하지만 인스턴스가 메타데이터를 검색할 수 없는 경우에는 인스턴스의 Windows Defender 방화벽, 타사 방화벽 또는 바이러스 백신 구성을 검토하십시오. 169.254.169.254로의 트래픽이 명시적으로 거부되지 않는지 확인하십시오. 자세한 내용은 Amazon EC2 Windows 인스턴스에서 "Waiting for the metadata service" 오류가 발생하는 이유는 무엇입니까?를 참조하십시오.
인스턴스가 SSM 엔드포인트에 연결되지 않음
인스턴스가 포트 443의 Systems Manager 엔드포인트에 연결되어 있는지 확인하십시오. 연결을 확인하려면 다음 Windows PowerShell 명령을 실행합니다. RegionID를 인스턴스가 위치한 AWS 리전으로 바꾸십시오.
- Test-NetConnection ssm.RegionID.amazonaws.com -port 443
- Test-NetConnection ec2messages.RegionID.amazonaws.com -port 443
- Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443
퍼블릭 서브넷
Systems Manager 엔드포인트는 퍼블릭 엔드포인트입니다. 따라서 인터넷에 연결하려면 인스턴스에서 인터넷 게이트웨이를 사용해야 합니다. 퍼블릭 서브넷의 인스턴스에서 엔드포인트에 연결할 때 문제가 발생하는 경우 다음 구성을 확인하십시오.
- 인스턴스에서 사용하는 라우팅 테이블에는 인터넷 경로가 포함되어 있어야 합니다.
- Amazon Virtual Private Cloud(Amazon VPC) 보안 그룹 및 네트워크 액세스 제어 목록(네트워크 ACL)이 포트 443에서 아웃바운드 연결을 허용해야 합니다.
프라이빗 서브넷
프라이빗 서브넷의 경우 인스턴스는 NAT 게이트웨이를 사용하여 인터넷에 연결해야 합니다. 또는 Systems Manager 엔드포인트에 도달하도록 Amazon VPC 엔드포인트를 구성하십시오. 이를 통해 프라이빗 IP 주소를 사용하여 Amazon EC2 및 Systems Manager API에 액세스할 수 있습니다. 자세한 내용은 Systems Manager에서 EC2 인스턴스가 관리형 노드로 표시되지 않거나 "연결 끊김" 상태가 표시되는 이유는 무엇입니까?를 참조하십시오.
프록시 설정이 적용되지 않음
프록시를 사용하면 SSM 에이전트를 시작할 때 프록시 설정이 평가되고 에이전트 구성에 적용됩니다. 자세한 내용은 Windows Server 인스턴스에 프록시를 사용하도록 SSM 에이전트 구성을 참조하십시오.
SSM 에이전트가 최신 버전이 아님
최신 SSM 에이전트 버전을 다운로드하여 수동으로 설치하는 것이 좋습니다. 최신 SSM 에이전트 버전에 대한 정보를 확인하려면 GitHub 웹사이트에서 Amazon SSM 에이전트 릴리스를 참조하십시오.
이전 단계를 완료한 후에도 인스턴스가 SSM 에이전트를 시작하지 못하면 SSM 에이전트 로그를 확인하여 문제를 추가로 해결하십시오.