Amazon EC2 인스턴스를 관리하기 위해 프록시를 사용하도록 SSM 에이전트를 구성할 때 문제를 해결하려면 어떻게 해야 합니까?

5분 분량
0

SSM 에이전트와 함께 프록시를 사용하여 AWS Systems Manager로 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 관리할 때 오류가 발생합니다. 프록시 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

Systems Manager를 사용하여 Amazon EC2 인스턴스를 관리할 수 있습니다. 그러나 인스턴스가 프록시 뒤에 있는 경우 프록시를 통해 Amazon 엔드포인트와 통신하도록 SSM 에이전트를 구성해야 합니다. SSM 에이전트가 올바르게 구성되지 않은 경우 다음과 유사한 오류 메시지가 나타납니다.

Post https://ssm.RegionID.amazonaws.com/: proxyconnect tcp: dial tcp xxx.xxx.xxx.xxx:yyyy: i/o timeout

해결 방법

프록시 문제를 해결하려면 다음 단계를 따르세요.

EC2 인스턴스가 프록시 서버에 액세스할 수 있는지 확인

EC2 Windows 인스턴스

다음 Windows PowerShell 명령을 사용하여 프록시에 대한 연결을 확인할 수 있습니다. 다음 예에서는 호스트 이름을 프록시 호스트 이름으로 바꾸고 포트를 프록시 포트로 바꿉니다.

> Test-NetConnection hostname -port port

예상 출력:

ComputerName     : hostname
RemoteAddress    : xxx.xxx.xxx.xxx
RemotePort       : port
InterfaceAlias   : Ethernet
SourceAddress    : YYY.YYY.YYY.YYY
TcpTestSucceeded : True
PS C:\Windows\system32>

EC2 Linux 인스턴스

다음 telnet 또는 netcat 명령을 사용하여 프록시에 대한 연결을 확인할 수 있습니다. 다음 예에서는 호스트 이름을 프록시 호스트 이름으로 바꾸고 포트를 프록시 포트로 바꿉니다.

Telnet

$ telnet hostname port

예상 출력:

Trying xxx.xxx.xxx.xxx...
Connected to hostname.
Escape character is '^]'.

Netcat

$ nc -vz hostname port'

예상 출력:

Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to xxx.xxx.xxx.xxx:YYYY.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

참고: Netcat은 Amazon EC2 인스턴스에 사전 설치되어 있지 않습니다. Netcat을 수동으로 설치하려면 Nmap 웹 사이트에서 Ncat을 참조하세요.

EC2 인스턴스가 프록시 서버를 통해 Systems Manager 엔드포인트에 도달할 수 있는지 확인

다음 명령을 실행하여 인스턴스가 프록시 서버를 통해 Systems Manager 엔드포인트에 도달할 수 있는지 확인합니다. http 오류 코드 4xx를 수신하면 프록시 서버를 통해 엔드포인트에 도달할 수 있음을 나타냅니다.

참고: 다음 명령 예에서는 RegionIDAWS 리전으로 바꾸고 호스트 이름을 프록시 호스트 이름으로 바꾸고 포트를 프록시 포트로 바꿉니다.

EC2 Windows 인스턴스

> (invoke-webrequest https://ssm.RegionID.amazonaws.com -DisableKeepAlive -UseBasicParsing -Method head -Proxy http://hostname:port )

예상 출력:

invoke-webrequest : The remote server returned an error: (404) Not Found.

EC2 Linux 인스턴스

$  curl -k --proxy http://hostname:port -m 5 -s -o /dev/null -w "%{http_code}" https://ssm.RegionID.amazonaws.com

예상 출력:

404

SSM 에이전트가 프록시 정보를 사용하도록 구성되어 있는지 확인

EC2 Windows 인스턴스

SSM 에이전트 로그를 검토하여 다음 예에서와 같이 프록시 설정이 적용되는지 확인해야 합니다. 다음 명령을 입력합니다.

> type C:\ProgramData\Amazon\SSM\Logs\amazon-ssm-agent.log | findstr -i "proxy"

예상 출력:

2021-03-18 19:06:16 INFO Getting IE proxy configuration for current user: The operation completed successfully.
2021-03-18 19:06:16 INFO Getting WinHTTP proxy default configuration: The operation completed successfully.
2021-03-18 19:06:16 INFO Proxy environment variables:
2021-03-18 19:06:16 INFO http_proxy: hostname:port
2021-03-18 19:06:16 INFO https_proxy:
2021-03-18 19:06:16 INFO no_proxy: 169.254.169.254

자세한 내용은 Windows Server 인스턴스에 프록시를 사용하도록 SSM 에이전트 구성을 참조하십시오.

EC2 Linux 인스턴스

먼저 다음 명령을 실행하여 SSM 에이전트가 프로세스 환경 변수를 확인하여 현재 필요한 프록시 변수를 사용하는지 확인합니다.

sudo cat /proc/$(pidof amazon-ssm-agent)/environ | xargs -0 -L1 -I{} echo {}

예상 출력:

[root@host123~]# sudo cat /proc/$(pidof amazon-ssm-agent)/environ | xargs -0 -L1 -I{} echo {}
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
http_proxy=http://Hostname:Port
https_proxy=http://Hostname:Port
no_proxy=169.254.169.254

그런 다음 출력에 프록시 변수가 포함되지 않은 경우 인스턴스 유형에 대한 아래 지침에 따라 관련 파일을 확인하고 업데이트합니다.

Ubuntu 14.04와 같은 업스타트를 기반으로 한 EC2 Linux 인스턴스

amazon-ssm-agent.override 파일에 필요한 구성이 포함되어 있는지 확인합니다. 다음 명령을 입력하고 출력이 예시 예상 출력과 일치하는지 확인합니다. 자세한 내용은 프록시(업스타트)를 사용하도록 SSM 에이전트 구성을 참조하세요.

중요: amazon-ssm-agent.override 파일을 업데이트하는 경우 파일을 편집한 후 SSM 에이전트를 다시 시작해야 합니다.

$ cat  /etc/init/amazon-ssm-agent.override

HTTP 프록시 서버에 대한 예상 출력:

env http_proxy=http://hostname:port
env https_proxy=http://hostname:port
env no_proxy=169.254.169.254

HTTPS 프록시 서버에 대한 예상 출력:

env http_proxy=http://hostname:port
env https_proxy=https://hostname:port
env no_proxy=169.254.169.254

스냅을 사용하여 설치된 SSM 에이전트를 포함한 Ubuntu 16.04 이상을 기반으로 하는 EC2 Linux 인스턴스

다음 명령을 입력하고 프록시 정보가 예시 예상 출력과 일치하는지 확인합니다. 자세한 내용은 프록시(systemd)를 사용하도록 SSM 에이전트 구성을 참조하세요.

중요: amazon-ssm-agent.override 파일을 업데이트하는 경우 파일을 편집한 후 SSM 에이전트를 다시 시작해야 합니다.

$ cat /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf

HTTP 프록시 서버에 대한 예상 출력:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

HTTPS 프록시 서버에 대한 예상 출력:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

Amazon Linux 2를 기반으로 하는 EC2 Linux 인스턴스

다음 명령을 입력하고 프록시 정보가 예시 예상 출력과 일치하는지 확인합니다. 자세한 내용은 프록시(systemd)를 사용하도록 SSM 에이전트 구성을 참조하세요.

중요: amazon-ssm-agent.override 파일을 업데이트하는 경우 파일을 편집한 후 SSM 에이전트를 다시 시작해야 합니다.

$ cat /etc/systemd/system/amazon-ssm-agent.service.d/override.conf

HTTP 프록시 서버에 대한 예상 출력:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

HTTPS 프록시 서버에 대한 예상 출력:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

다른 운영 체제를 기반으로 하는 EC2 Linux 인스턴스

다음 명령을 입력하고 프록시 정보가 예시 예상 출력과 일치하는지 확인합니다. 자세한 내용은 프록시(systemd)를 사용하도록 SSM 에이전트 구성을 참조하세요.

중요: amazon-ssm-agent.override 파일을 업데이트하는 경우 파일을 편집한 후 SSM 에이전트를 다시 시작해야 합니다.

$ cat /etc/systemd/system/amazon-ssm-agent.service.d/amazon-ssm-agent.override

HTTP 프록시 서버에 대한 예상 출력:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

HTTPS 프록시 서버에 대한 예상 출력:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

관련 정보

SSM 에이전트 작업

SSM 에이전트 문제 해결

AWS 공식
AWS 공식업데이트됨 3년 전
댓글 없음

관련 콘텐츠