VPC에서 생성한 CloudWatch Canary 실패에 대해 수신한 오류를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Virtual Private Cloud(VPC)에 있는 Amazon CloudWatch Canary가 오류를 수신하고 실패합니다.

간략한 설명

VPC에서 Canary를 생성하면 지정된 VPC 서브넷에 탄력적 네트워크 인터페이스가 있는 AWS Lambda 함수가 생성됩니다. 이 탄력적 네트워크 인터페이스는 퍼블릭 서브넷에 추가되었더라도 기본적으로 퍼블릭 IP 주소가 할당되지 않습니다. Amazon Simple Storage Service(S3)에 로그를 작성하고 데이터 요소를 CloudWatch에 게시하려면 Canary가 다음의 엔드포인트에 액세스되어 있어야 합니다.

  • Amazon S3 엔드포인트
  • CloudWatch Monitoring 엔드포인트

Canary에서 이러한 엔드포인트 중 하나에 액세스하는 데 문제가 있는 경우 다음 오류 메시지 중 하나가 표시됩니다.

  • TimeoutError: Navigation Timeout Exceeded:30000ms exceeded: 모니터링되는 엔드포인트의 응답이 page.goto 메서드에 대해 구성된 시간 제한 기간을 초과하면 이 오류가 발생합니다. 예를 들어, 구성이 "const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});"이라고 가정해 봅시다. 시간 제한이 30초이므로 응답이 30초를 초과하면 이 오류가 발생합니다.
    -또는-
    보안 그룹, 네트워크 액세스 제어 목록(ACL) 또는 라우팅 테이블이 Canary 엔드포인트에 대한 액세스를 허용하지 않는 경우 이 오류가 발생합니다.
  • No test result returned. Connection timed out after 30000msNo artifacts were uploaded: Canary에서 CloudWatch Monitoring 또는 Amazon S3 엔드포인트에 액세스할 수 없는 경우 이러한 오류가 발생합니다. Canary 지표에 데이터 요소가 없는 경우 Canary는 CloudWatch Monitoring에 액세스할 수 없습니다. Canary 지표에 데이터 요소가 있는 경우 Canary는CloudWatch Monitoring에 액세스할 수 있지만 Amazon S3에는 액세스할 수 없습니다. 30,000ms는 Canary에 구성된 시간 제한 기간을 나타냅니다.

언제든지 VPC Reachability Analyzer로 Canary의 인터넷 연결을 테스트할 수 있습니다.

해결 방법

"Navigation timeout" 오류 해결

Canary에 연결된 보안 그룹에 다음 속성이 있는지 확인합니다.

  • 구성된 포트와 모니터링되는 엔드포인트의 IP 주소 간의 연결을 허용하는 아웃바운드 규칙이 있어야 합니다.
  • 포트 443으로의 아웃바운드 트래픽을 허용해야 합니다. 참고로 Amazon S3와 CloudWatch Monitoring 엔드포인트는 HTTPS를 통해 연결할 수 있습니다. 필요한 경우, 유형에는 HTTPS(TCP 포트 443)를 지정하고 대상으로 0.0.0.0/0을 지정한 아웃바운드 규칙을 추가합니다.
  • Canary 서브넷의 네트워크 ACL은 인바운드 및 아웃바운드 액세스를 허용해야 합니다.
    인바운드 액세스의 경우: 임시 포트가 엔드포인트 IP 주소의 소스 주소 및 포트에 액세스하도록 허용합니다. 임시 포트가 포트 443에 대해 0.0.0.0/0에 액세스할 수 있도록 허용합니다.
    아웃바운드 액세스의 경우: 엔드포인트 IP 주소의 대상 주소 및 포트에 액세스하도록 허용합니다. 포트 443에 대해 대상 액세스를 0.0.0.0/0으로 허용합니다.
  • 엔드포인트가 구성된 시간 제한 기간 내에 응답하는지 확인합니다.

엔드포인트 응답 시간을 찾으려면 다음 명령을 실행하세요.

time curl http/(s)://[your Endpoint IP/DNS]:Port

Canary 코드에서 하트비트 시간 제한이 엔드포인트 응답 시간을 초과하도록 변경합니다.

const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});

"No artifacts were uploaded" 또는 "No test result returned" 오류 해결

네트워크 주소 변환(NAT) 게이트웨이 또는 NAT 인스턴스에 0.0.0.0/0으로 프라이빗 서브넷의 Canary를 추가합니다.

1.    NAT 게이트웨이를 생성합니다.

2.    Canary의 프라이빗 서브넷 라우팅 테이블을 업데이트합니다. NAT 게이트웨이를 라우팅 테이블의 대상으로 사용하는 방법에 대한 자세한 내용은 NAT 디바이스로 라우팅을 참조하세요.

-또는-

Amazon S3 및 CloudWatch Monitoring에 VPC 엔드포인트로 프라이빗 서브넷의 Canary를 추가합니다.

1.    Amazon S3 엔드포인트에 대한 게이트웨이 엔드포인트를 생성합니다.
참고: Service name(서비스 이름)은 Amazon S3를 검색한 다음 com.amazonaws.region.s3를 선택합니다.

2.    CloudWatch Monitoring 엔드포인트의 인터페이스 엔드포인트를 생성합니다. Enable DNS name(DNS 이름 활성화) 확인란을 선택해야 합니다.
참고: Service name(서비스 이름)은 monitoring을 검색한 다음 com.amazonaws.[region].monitoring을 선택합니다. Enable DNS name(DNS 이름 활성화) 확인란을 선택해야 합니다.


AWS 공식
AWS 공식업데이트됨 한 달 전
댓글 없음

관련 콘텐츠