Amazon ElastiCache Redit 또는 Memchached 클러스터에 대한 연결을 테스트하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 10일

Linux 기반 클라이언트의 redis-cli 또는 telnet과 같은 클라이언트를 사용하여 Amazon ElastiCache for Redis 또는 Amazon ElastiCache for Memcached 클러스터에 대한 연결을 테스트하려면 어떻게 해야 합니까?

간략한 설명

Amazon ElastiCache는 현재 두 개의 메모리 내 키-값 엔진인 Redis 및 Memcached를 지원합니다. ElastiCache 캐시 클러스터를 시작할 때 선호하는 엔진을 선택할 수 있습니다.

참고: 이 해결 방법은 계획되지 않은 사용의 경우에만 연결 테스트를 다룹니다. 지원되는 Redis 클라이언트 목록은 Redis 설명서를 참조하십시오.

Java, .NET 또는 PHP를 사용하는 Memcached의 경우 자동 검색과 함께 ElastiCache 클라이언트를 사용하는 것이 가장 좋습니다. 자동 검색을 지원하는 ElastiCache 클라이언트는 새 ElastiCache 노드가 캐시 클러스터에 추가될 때 자동 검색을 지원합니다.

해결 방법

Redis 클러스터에 연결

ElastiCache는 클러스터 모드가 비활성화되었거나 클러스터 모드가 활성화된 Redis 클러스터를 모두 지원합니다. 이러한 클러스터에 대한 연결을 테스트하기 위해 redis-cli 유틸리티를 사용할 수 있습니다. 최신 버전의 redis-cli는 암호화/인증 사용 클러스터를 연결하기 위해 SSL/TLS를 지원합니다.

연결할 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 redis-cli 유틸리티를 다운로드하여 컴파일합니다. Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 자습서: Amazon EC2 Linux 인스턴스 시작하기를 참조하세요.

참고: 다음 예에서는 Amazon Linux와 Amazon Linux 2를 실행하는 EC2 인스턴스를 사용합니다. 다른 Linux 배포판과 함께 redis-cli를 설치 및 컴파일하는 방법에 대한 문서는 특정 운영 체제에 대한 설명서를 참조하십시오.

Amazon Linux 2

$sudo amazon-linux-extras install epel -y
$sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y
$sudo wget http://download.redis.io/redis-stable.tar.gz
$sudo tar xvzf redis-stable.tar.gz
$cd redis-stable
$sudo make BUILD_TLS=yes

Amazon Linux

$sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget
$sudo wget http://download.redis.io/redis-stable.tar.gz
$sudo tar xvzf redis-stable.tar.gz
$cd redis-stable
$sudo CC=clang make BUILD_TLS=yes

참고: 연결하려는 클러스터가 암호화되지 않은 경우 Build_TLS=yes 옵션이 필요하지 않습니다.

Redis 엔드포인트 찾기에 대한 자세한 내용은 연결 엔드포인트 찾기를 참조하십시오.

클러스터 모드에 연결이 비활성화된 암호화되지 않은 클러스터

1.    다음 명령을 실행하여 클러스터에 연결합니다. 다음 예제 명령에서 change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com6379를 클러스터의 엔드포인트와 포트 번호로 바꿉니다.

src/redis-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379

다음은 이전 명령에 의해 반환되는 Redis 명령 프롬프트의 예입니다.

change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>

2.    Redis 명령을 실행합니다.

클러스터에 연결한 후 Redis 명령을 실행할 수 있습니다. 다음은 Redis 명령의 예제입니다.

set a "hello"
OK
get a
"hello"
quit

클러스터 모드에 연결하여 암호화되지 않은 클러스터에 사용

1.    다음 명령을 실행하여 클러스터에 연결합니다. 다음 예제 명령에서 cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com6379를 클러스터의 엔드포인트와 포트 번호로 바꿉니다.

src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379

참고: 앞의 명령에서 -c 옵션은 -ASK 및 -MOVED 리디렉션 다음에 클러스터 모드를 활성화합니다.

Redis 명령 프롬프트의 결과는 다음과 유사합니다.

cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:6379>

2.    이제 Redis 명령을 실행할 수 있습니다. 리디렉션은 -c 옵션을 사용하도록 설정했기 때문에 발생함을 기억하십시오. 리디렉션이 활성화되지 않은 경우 명령은 MOVED 오류를 반환합니다. MOVED 오류에 대한 자세한 내용은 redis.io 웹 사이트에서 Redis 클러스터 사양을 참조하십시오.

set x Hi
-> Redirected to slot [16287] located at 172.31.28.122:6379
OK
set y Hello
OK
get y
"Hello"
set z Bye
-> Redirected to slot [8157] located at 172.31.9.201:6379
OK
get z
"Bye"
get x
-> Redirected to slot [16287] located at 172.31.28.122:6379
"Hi"

암호화/인증 사용 클러스터에 연결

기본적으로 redis-cli는 Redis에 연결할 때 암호화되지 않은 TCP 연결을 사용합니다. 옵션 BUILD_TLS=yes는 앞서 Redis 클러스터에 연결 섹션에서 보여진 것과 같이 redis-cli 컴파일 시점에 SSL/TLS를 활성화합니다. AUTH 활성화는 선택 사항입니다. 그러나 AUTH를 사용하려면 전송 중 암호화를 사용하도록 설정해야 합니다. ElastiCache 암호화 및 인증에 대한 자세한 내용은 ElastiCache for Redis 전송 중 암호화(TLS)를 참조하세요.

참고: --tls 옵션과 redis-cli를 사용하여 클러스터 모드가 활성화되었거나 비활성화된 암호화된 클러스터 모두에 연결할 수 있습니다. 클러스터에 AUTH 토큰 집합이 있는 경우 -a 옵션을 사용하여 AUTH 암호를 제공할 수 있습니다.

다음 예제에서는 클러스터의 엔드포인트 및 포트를 대체해야 합니다.

클러스터 모드가 비활성화된 암호화된 클러스터에 연결

다음 예제에서는 암호화 및 인증이 활성화된 클러스터에 연결합니다.

src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a <Password> -p 6379

다음 예제에서는 암호화만 활성화되도록 설정된 클러스터에 연결합니다.

src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379

클러스터 모드가 활성화된 암호화된 클러스터에 연결

다음 예제에서는 암호화 및 인증이 활성화된 암호화된 클러스터에 연결합니다.

src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -c -a <Password> -p 6379

다음 예제에서는 암호화만 활성화되도록 설정된 클러스터에 연결합니다.

redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379

클러스터에 연결한 후 암호화되지 않은 클러스터에 대한 앞의 예제처럼 Redis 명령을 실행할 수 있습니다.

Redis-cli 대안

클러스터가 클러스터 모드를 사용하지 않으며, 짧은 테스트를 위해 클러스터에 연결해야 하지만 redis-cli 컴파일을 거치지 않으면, telnet 또는 openssl을 사용할 수 있습니다. 다음 예제 명령에서는 필요하다면 클러스터의 엔드포인트 및 포트를 대체해야 합니다.

연결한 후에는 앞의 예제처럼 Redis 명령을 실행할 수 있습니다.

다음 예제에서는 암호화 및/또는 인증 클러스터 모드가 비활성화된 클러스터에 연결합니다.

openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379

클러스터에 암호가 설정되어 있으면 먼저 클러스터에 연결합니다. 연결 후 다음 명령을 사용하여 클러스터를 인증한 다음 Enter 키를 누릅니다. 다음 예에서는 Password를 클러스터의 암호로 바꿉니다.

Auth Password

다음 예제에서는 암호화 또는 인증이 활성화되지 않는 클러스터 모드가 비활성화된 클러스터에 연결합니다.

telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379

MemCached 클러스터에 연결

MemCached 클러스터에 연결하려면 telnet 유틸리티를 사용하십시오. Memcached 및 사용 가능한 Memcached 명령에 대한 자세한 내용은 Memcached 웹 사이트를 참조하십시오. Memcached 엔드포인트 찾기에 대한 자세한 내용은 연결 엔드포인트 찾기를 참조하십시오.

1.    연결을 테스트할 EC2 인스턴스에 telnet 유틸리티를 설치합니다.

CentOS 기반 시스템: 

$sudo yum install telnet

Debian 기반 시스템(Ubuntu): 

$sudo apt-get install telnet

Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 자습서: Amazon EC2 Linux 인스턴스 시작하기를 참조하세요.

2.    다음 명령을 사용하여 엔드포인트에 연결합니다. eaogs8.0001.usw2.cache.amazonaws.com를 엔드포인트로, 그리고 11211를 노드의 포트로 재설정합니다.

telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211

출력은 다음과 유사합니다.

Trying 128.0.0.1...
Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.
Escape character is '^]'.
>

이제 노드에 연결되었습니다. 다음 예제와 같이 Memcached 명령을 실행할 수 있습니다.

set a 0 0 5
hello
STORED
get a
VALUE a 0 5
hello
END

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?