내용으로 건너뛰기

OpenSearch Service의 연결 및 소켓 시간 초과 문제를 해결하려면 어떻게 해야 합니까?

4분 분량
0

Amazon OpenSearch Service에 연결하려고 하면 클라이언트 애플리케이션에서 연결 시간 초과 또는 소켓 오류가 발생합니다.

해결 방법

시간 초과 문제 해결

다음 작업을 수행하십시오.

‘Connection timed out’ 오류 해결

연결 시간이 초과되면 다음 예와 유사한 오류 메시지를 받습니다.

"curl: (7) Failed to connect to vpc-acbdefxyz.us-east-1.es.amazonaws.com port 443: Connection timed out

curl: (28) Operation timed out after 1001 milliseconds with 0 out of 0 bytes received"

사용하는 도메인 유형에 따라 다음과 같은 문제 해결 작업을 수행하십시오.

퍼블릭 도메인

클라이언트가 인터넷에 연결되어 있거나 인터넷 경로를 사용하는 경우 인터넷을 통해 퍼블릭 도메인에 액세스할 수 있습니다. 클라이언트가 인터넷에 연결되어 있지 않거나 인터넷 경로를 사용하지 않는 경우 telnet 또는 curl 명령을 실행할 때 다음과 같은 출력이 표시될 수 있습니다.

Trying xyz.xyz.xyz.xyz...
telnet: connect to address xyz.xyz.xyz.xyz: Connection timed out

-또는-

*   Trying xyz.xyz.xyz.xyz:443...
* connect to xyz.xyz.xyz.xyz port 443 failed: Operation timed out
* Failed to connect to search-domain-name-someid.aws-region.es.amazonaws.com port 443 after 75243 ms: Couldn't connect to server
* Closing connection 0
curl: (28) Failed to connect to search-domain-name-someid.aws-region.es.amazonaws.com port 443 after 75243 ms: Couldn't connect to server

이 문제를 해결하려면 클라이언트에 인터넷 경로가 있고 검색 엔드포인트에 대한 아웃바운드 요청을 차단하지 않는지 확인하십시오.

연결을 테스트하려면 다음 명령을 실행합니다.

telnet search-domain-name-someid.aws-region.es.amazonaws.com 443

참고: search-domain-name-someid를 도메인 이름으로 바꾸고, aws-region을 AWS 리전으로 바꾸십시오.

검색 엔드포인트의 성공적인 응답 예:

Trying xyz.xyz.xyz.xyz...
Connected to search-domain-name-someid.aws-region.es.amazonaws.com.
Escape character is '^]'.

VPC 내부 도메인

가상 프라이빗 클라우드(VPC) 내부에 만든 OpenSearch Service 도메인의 경우 VPC의 각 데이터 노드에 탄력적 네트워크 인터페이스가 있습니다. 네트워크 인터페이스는 네트워크 트래픽을 도메인으로 전달합니다.

네트워크 인터페이스와 도메인 간의 연결을 확인하려면 다음 단계를 완료하십시오.

  1. 다음 명령 중 하나를 실행하여 VPC의 네트워크 인터페이스 IP 주소를 가져옵니다.

    nslookup -q=A vpc-domain-name-id.aws-region.es.amazonaws.com

    -또는-

    dig +short vpc-domain-name-id.aws-region.es.amazonaws.com

    참고: domain-name-id를 도메인 이름으로 바꾸고 aws-region을 리전으로 바꾸십시오.
    출력에서 네트워크 인터페이스 IP 주소를 기록해 둡니다.

  2. 연결을 테스트하려면 각 데이터 노드 IP 주소에 대해 다음 명령 중 하나를 실행합니다.

    telnet ip-address 443

    -또는-

    curl -v telnet://ip-address:443

    참고: ip-address를 네트워크 인터페이스 IP 주소로 바꾸십시오.
    시간 초과 응답 예:

    Trying xyz.xyz.xyz.xyz...telnet: connect to address xyz.xyz.xyz.xyz: Connection timed out

    성공적인 응답 예:

    Trying xyz.xyz.xyz.xyz...Connected to xyz.xyz.xyz.xyz.
    Escape character is '^]'.
  3. 연결 시간이 초과되면 VPC의 보안 그룹, 라우팅 테이블, 네트워크 액세스 제어 목록(네트워크 ACL)이 도메인에 대한 액세스를 허용하는지 확인합니다. 일부 네트워크 인터페이스에 연결할 수 있지만 다른 인터페이스에서 시간이 초과된 경우 AWS Support 사례를 만듭니다.

참고: VPC 외부에서는 OpenSearch Service 도메인에 액세스할 수 없습니다. 자세한 내용은 VPC 내에서 OpenSearch Service 도메인 시작을 참조하십시오.

‘HTTP 504 gateway timeout’ 오류 해결

로드 밸런서는 인바운드 트래픽을 데이터 노드로 분산합니다. OpenSearch Service 요청이 유휴 제한 기간 내에 확인을 반환하지 않으면 로드 밸런서가 TCP 연결을 종료합니다. 그 결과 다음 예와 유사한 오류 메시지가 표시됩니다.

"error msg: org.elasticsearch.client.ResponseException:

method[POST], host[https: //acbdefjhxyz.eu-central-1.es.amazonaws.com:443],

URI [/eks*/_search?typed_keys=true],status line [HTTP/1.1 504 Gateway Time-out]"

일반적으로 ‘HTTP 504 Gateway timeout’ 오류는 OpenSearch Service가 동시 요청을 너무 많이 수신하거나 요청이 복잡할 때 발생합니다. 오류가 반드시 클러스터에 문제가 있음을 나타내는 것은 아닙니다. 원인 및 문제 해결 단계에 대한 자세한 내용은 HTTP 504: 게이트웨이 시간 초과를 참조하십시오.

‘SocketTimeoutException’ 오류 해결

소켓 시간 초과 오류는 일반적으로 클라이언트가 너무 많은 요청이나 복잡한 요청을 보낼 때 발생합니다. OpenSearch Service 도메인은 클라이언트 응답이 지연되어 리소스 사용량이 높아질 수 있습니다. 오류 메시지 예시:

"j.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-5083 [ACTIVE]

java.net.SocketTimeoutException: Read timed out

Caused by: java.net.SocketTimeoutException: Read timed out"

이 문제를 해결하려면 다음 작업을 수행하십시오.

관련 정보

OpenSearch Service 문제 해결

OpenSearch Service 클러스터에서 검색 대기 시간 급증 문제를 해결하려면 어떻게 해야 합니까?

OpenSearch Service 클러스터에서 인덱싱 성능을 개선하려면 어떻게 해야 합니까?

Amazon CloudWatch Logs 스트리밍 및 Kibana를 사용하여 OpenSearch Service의 느린 로그 분석

AWS 공식업데이트됨 일 년 전