AWS Lambda 함수가 다운스트림 AWS 서비스 또는 외부 엔드포인트에 연결하려고 하면 ETIMEDOUT 오류가 표시됩니다.
해결 방법
일정 시간이 지나도 호스트가 응답하지 않아 연결에 실패하면 ETIMEDOUT 오류가 발생합니다. 네트워크 구성 문제로 인해 Lambda 함수와 호스트 사이의 네트워크 경로가 유효하지 않을 수 있습니다. 이 유효하지 않은 경로로 인해 연결 시간 초과 오류가 발생합니다. ETIMEDOUT 오류 문제를 해결하려면 호스트 구성을 기반으로 네트워킹 구성을 확인하십시오.
공용 인터넷을 통해 액세스할 수 있는 호스트의 경우
Amazon Virtual Private Cloud(Amazon VPC)로 함수를 구성한 경우 함수가 공용 인터넷에 액세스할 수 있는지 확인하십시오. 간헐적인 시간 초과 오류가 발생하는 경우 함수에 대해 구성된 모든 서브넷이 프라이빗이고 NAT 게이트웨이로의 기본 경로가 있는지 확인하십시오. AWS Transit Gateway 전송 게이트웨이로 향하는 기본 경로의 경우, 전송 게이트웨이에서 함수가 공용 인터넷에 액세스할 수 있도록 허용하는지 확인하십시오.
참고: 기본적으로 VPC 구성이 없는 함수는 공용 인터넷에 액세스할 수 있습니다.
VPC 내에서만 액세스할 수 있는 호스트의 경우
호스트가 VPC 내에서만 액세스할 수 있는 경우, 먼저 VPC에서 Lambda 함수를 구성한 후 다음 구성을 확인하십시오.
- 라우팅 테이블에 호스트로의 유효한 라우팅 경로가 있습니다. 호스트 엔드포인트가 Lambda 함수와 동일한 VPC에 있는 경우 로컬 경로가 있는지 확인합니다. 호스트 엔드포인트가 다른 VPC에 있는 경우 라우팅 테이블에 VPC 피어링 연결을 위한 경로가 있는지 확인하십시오.
- Lambda 함수와 호스트 모두에 있는 서브넷의 네트워크 액세스 제어 목록(네트워크 ACL) 규칙은 인바운드 및 아웃바운드 규칙을 허용합니다.
- Lambda 함수의 보안 그룹 규칙은 필수 포트의 대상 호스트로의 아웃바운드 트래픽을 허용합니다.
- 호스트의 보안 그룹 규칙은 필수 포트에서 Lambda 함수의 인바운드 트래픽을 허용합니다.
- 호스트는 연결 요청에 지정된 HTTP 또는 HTTPS 프로토콜 및 포트를 사용한 요청을 지원합니다.
네트워크 경로 구성 문제를 분석하려면 VPC Reachability Analyzer를 사용하십시오.
NAT 게이트웨이의 350초 제한 시간 내에 시간 초과 오류가 발생하면 유휴 제한 시간을 재설정하십시오.
사용자 지정 DHCP 옵션 세트가 있는 VPC를 사용하는 호스트의 경우
VPC에 사용자 지정 DHCP(Dynamic Host Configuration Protocol) 옵션 세트가 있는 경우 Amazon Route 53 Resolver 쿼리 로그를 사용하여 DNS 쿼리 응답을 확인하십시오. 호스트의 IP 주소는 포트에 연결할 수 있어야 합니다. 또한 호스트는 함수와 동일한 서브넷 및 보안 그룹에 있는 프라이빗 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용해야 합니다.
호스트의 IP 주소를 식별하려면 EC2 인스턴스를 사용하여 다음 명령을 실행합니다.
nslookup amazon.com
참고: amazon.com을 호스트 이름으로 바꾸십시오.
IP 주소가 요청된 포트에 연결할 수 있는지 확인하려면 다음 명령을 실행합니다.
telnet host-name-IP-address 443
참고: host-name-IP-address를 호스트 이름 또는 IP 주소로, 443을 포트로 바꾸십시오.
문제 해결 정보는 AWS Lambda에서 일관되거나 간헐적으로 발생하는 DNS 관련 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
호스트 구성 확인
다운스트림 서비스 또는 외부 엔드포인트에서 요청을 수신하는지 확인합니다. 호스트의 사용 가능한 지표, 로그 또는 네트워크 추적을 사용합니다. VPC를 사용하는 경우 VPC 흐름 로그를 사용하여 아웃바운드 트래픽이 Lambda 함수를 떠나고 있는지 확인합니다. 탄력적 네트워크 인터페이스를 사용하는 경우 해당 IP 주소를 찾으려면 GitHub 웹사이트에서 Lambda ENI Finder를 사용합니다. Lambda ENI Finder bash 스크립트를 사용하는 방법에 대한 자세한 내용은 Lambda에서 생성한 탄력적 네트워크 인터페이스를 분리하거나 삭제할 수 없는 이유는 무엇입니까?를 참조하십시오.
수신 트래픽이 많아 호스트가 차단되어 구성된 소켓 제한 시간 내에 응답할 수 없는 경우 백오프 패턴으로 재시도를 사용하십시오.