ElastiCache for Redis 자체 설계 클러스터의 연결 문제를 해결하려면 어떻게 해야 하나요?

5분 분량
0

Amazon ElastiCache for Redis에서 자체 설계한 클러스터의 연결 문제를 해결하고 싶습니다.

해결 방법

자체 설계된 Redis용 ElastiCache 클러스터의 연결 문제를 해결하려면 다음을 완료하세요.

클러스터가 사용 가능 상태인지 확인합니다.

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

최근에 클러스터를 생성한 경우, 클러스터 생성이 완료되었고 클러스터가 연결을 수락할 준비가 되었는지 확인하세요. 클러스터의 상태를 확인하려면 ElastiCache 콘솔, AWS CLI 또는 ElastiCache API를 사용하여 클러스터의 세부 정보를 확인합니다. 상태 열을 검토하고 다음 사항을 확인합니다:

  • 상태 열에 사용 가능이 표시되면 클러스터가 준비된 것입니다.
  • 상태 열에 생성 중이 표시되면 클러스터 생성이 진행 중입니다. 상태가 사용 가능으로 업데이트될 때까지 몇 분 정도 기다립니다.
  • 상태 열에 수정 중이 표시되면 클러스터의 구성이 업데이트 중입니다. 수정이 완료되고 상태가 사용 가능으로 업데이트될 때까지 몇 분 정도 기다립니다.

클러스터가 정상인지 확인

정상 클러스터의 노드는 사용 가능 상태입니다. 클러스터의 상태를 확인하려면 다음 작업을 수행합니다.

클러스터와 클라이언트 리소스 간의 네트워크 연결 확인

지연 시간을 최소화하려면 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 동일한 Amazon Virtual Private Cloud(Amazon VPC) 내의 리소스에서 ElastiCache에 액세스하세요. 또한 Amazon VPC 외부 또는 AWS 외부에서 연결할 수도 있습니다. 자세한 내용은 Amazon VPC의 ElastiCache 캐시에 액세스하기 위한 액세스 패턴클러스터 또는 복제 그룹에 액세스를 참조하십시오. 연결을 분석하고 AWS 리소스 간의 연결 문제를 추가로 해결하려면 Amazon VPC Network Access Analyzer를 사용하세요.

보안 그룹과 네트워크 액세스 제어 목록(네트워크 ACL)이 연결을 허용하는지 확인

연결이 시작되는 클러스터 및 리소스의 보안 그룹 및 네트워크 ACL을 확인하세요. 보안 그룹과 네트워크 ACL이 올바르게 구성되었는지 확인합니다. 다음은 클라이언트 리소스의 예입니다.

  • Amazon EC2 인스턴스
  • AWS Lambda 함수
  • Amazon Elastic Container Service(Amazon ECS) 컨테이너
  • Amazon Elastic Kubernetes Service(Amazon EKS) 컨테이너

클러스터 보안 그룹 확인

클러스터의 보안 그룹을 확인하려면 다음 단계를 완료하세요.

  1. ElastiCache 콘솔을 엽니다.
  2. Redis 클러스터 메뉴에서 클러스터 이름을 선택한 다음 네트워크 및 보안 탭을 선택합니다.
    참고: 기본적으로 클러스터는 연결된 보안 그룹이 없는 경우 Amazon VPC 보안 그룹을 사용합니다.
  3. 연결된 보안 그룹 중 하나 이상이 클러스터의 포트에서 클라이언트 리소스에서 클러스터로의 인바운드 연결을 허용하는지 확인합니다.
  4. 포트 번호를 확인하려면 클러스터 엔드포인트 중 하나를 확인하세요. 엔드포인트는 domain_name:port 형식입니다.
    참고: 기본적으로 클러스터의 포트는 6379/TCP입니다. 클러스터를 만들 때 포트 번호를 재정의할 수 있습니다.
  5. 클라이언트 리소스에서 보안 그룹이 클러스터의 포트 및 클러스터 서브넷의 CIDR 블록에 대한 아웃바운드 연결을 허용하는지 확인합니다.
  6. 네트워크 ACL이 클라이언트와 클러스터 간의 나가는 연결 및 들어오는 연결을 허용하는지 확인합니다.
    참고: 기본적으로 네트워크 ACL은 모든 연결을 허용합니다.
  7. 보안 그룹 및 네트워크 ACL 구성에 대한 추가 문제를 해결하려면 Amazon VPC Network Access Analyzer를 사용하세요.

연결에 올바른 엔드포인트가 사용되는지 확인

연결 엔드포인트는 클러스터 구성에 따라 권장됩니다. 자세한 내용은 연결 엔드포인트 찾기를 참조하세요.

클라이언트측 DNS 해결 방법 확인

DNS 문제가 있는 경우 이름 또는 서비스를 알 수 없음 또는 NXDOMAIN 오류가 발생할 수 있습니다. 이러한 오류를 해결하려면 Amazon VPC 클라이언트 리소스에 올바른 DNS 속성이 있는지 확인하세요. Amazon DNS 서버를 사용하는 것이 가장 좋습니다.

Redis와 클라이언트 간의 TCP 연결 확인

Redis와 클라이언트 간의 연결을 설정하고 확인하려면 curl 명령을 사용합니다.
참고: example-cluster-endpoint을 클러스터의 엔드포인트로 바꿉니다.

$ curl -v telnet://example-cluster-endpoint:6379

출력 예시:

*   Trying 172.31.1.242:6379...
* Connected to example-cluster-endpoint (172.31.1.242) port 6379

앞의 예에서 Connected 키워드는 TCP 연결이 성공했음을 보여줍니다. 명령 출력에 Connected가 나타나지 않으면 다음을 확인하세요.

참고: Amazon ElastiCache는 지연 시간이 짧도록 동일한 Amazon VPC에서 액세스하도록 설계되었습니다. Amazon VPC 외부에서 연결하면 지연 시간이 증가할 수 있습니다. 공용 인터넷을 직접 사용하거나 터널링을 통해 연결하는 경우 지연 시간이 증가합니다. 또한 지연 시간이 증가하면 연결 또는 시간 초과 문제가 발생할 수 있습니다. 액세스를 차단한 경우 Amazon VPC Reachability Analyzer를 사용하여 추가 문제를 해결하세요.

전송 중 암호화가 있는 클러스터에 대한 연결 확인

TLS를 통해 Redis 트래픽을 전송하려면 전송 중 암호화를 사용합니다. 연결이 설정되려면 클라이언트가 TLS를 지원해야 합니다.

TLS를 지원하는 redis-cli가 있는 경우 명령에 --tls 인수를 추가합니다:
참고: example-encrypted-cluster-endpoint을 클러스터의 암호화된 엔드포인트로 바꿉니다.

$ redis-cli -h example-encrypted-cluster-endpoint --tls

출력 예시:

example-encrypted-cluster-endpoint:6379>

TLS를 지원하지 않는 redis-cli가 있는 경우 다음 오류가 나타납니다.

"Unrecognized option or bad number of args for: '--tls'"

앞의 오류를 해결하려면 TLS를 지원하는 redis-cli를 설치하거나 TLS를 지원하지 않는 redis-cli에 대해 openssl 명령을 사용합니다. 자세한 내용은 Redis 클러스터 또는 복제 그룹에 연결(Linux) 섹션을 참조하십시오. 이 섹션은 4단계: 클러스터의 노드에 연결에 있습니다.

인증이 켜져 있는 클러스터에 대한 연결 확인

인증이 설정된 클러스터에 대한 연결을 확인하려면 redis-cli 또는 openssl 명령을 사용합니다. 자세한 내용은 암호화/인증 사용 클러스터에 연결하기 섹션을 참조하십시오. 이 섹션은 4단계: 클러스터의 노드에 연결에 있습니다.

참고: redis-cli 명령에는 --tls--askpass(또는 -a) 인수가 모두 필요합니다. 이러한 인수가 제공되지 않거나 잘못된 비밀번호를 사용하면 NOAUTH 또는 AUTH failed 메시지가 표시됩니다. redis-cli --tls를 사용하는 경우 연결한 후 AUTH 비밀번호를 사용하여 인증을 완료합니다.

관련 정보

추가 문제 해결 단계

AWS 공식
AWS 공식업데이트됨 8달 전