ElastiCache Redis OSS 또는 Memcached 클러스터와의 연결을 테스트하려면 어떻게 해야 합니까?
Linux 기반 클라이언트에서 Amazon ElastiCache Redis OSS 또는 Amazon ElastiCache 멤캐시드 클러스터와의 연결을 테스트하려고 합니다.
해결 방법
참고: 다음 해결 방법은 계획되지 않은 사용에 대해서만 연결을 테스트합니다. 지원되는 Redis 클라이언트 목록은 Redis 웹사이트에서 Redis 클라이언트에 연결을 참조하십시오.
Amazon ElastiCache는 Redis OSS 및 Memcached 인메모리 키-값 엔진을 지원합니다. ElastiCache 캐시 클러스터를 시작할 때 선호하는 엔진을 선택하십시오.
Java, .NET 또는 PHP를 사용하는 Memcached의 경우, 자동 검색과 함께 ElastiCache 클라이언트를 사용하는 것이 좋습니다. 자동 검색 기능이 있는 ElastiCache 클라이언트는 캐시 클러스터에 추가될 때 새 ElastiCache 노드를 자동으로 식별합니다.
ElastiCache 클러스터 생성
ElastiCache Redis OSS 클러스터를 생성하려면 Valkey 또는 Redis OSS용 클러스터 생성을 참조하십시오.
Memcached 클러스터를 생성하려면 Memcached 클러스터 생성을 참조하십시오.
ElastiCache Redis 클러스터에 연결
ElastiCache는 클러스터 모드 비활성화(CMD) 및 클러스터 모드 활성화(CME) Redis OSS 클러스터를 모두 지원합니다. 클러스터에 대한 연결을 테스트하려면 redis-cli 또는 redis6-cli 유틸리티를 사용하십시오. 최신 버전의 redis-cli 및 redis6-cli는 암호화 또는 인증이 설정된 클러스터에 연결할 수 있도록 SSL/TLS를 지원합니다.
연결하려는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 redis-cli 유틸리티를 다운로드하고 컴파일합니다. 자세한 내용은 Amazon EC2 시작하기를 참조하십시오.
참고: 다음 예에서는 Amazon Linux, Amazon Linux 2, Amazon Linux 2023을 실행하는 Amazon EC2 인스턴스를 사용합니다. 다른 Linux 배포판에서 redis-cli와 redis6-cli를 설치하고 컴파일하려면 해당 운영 체제의 설명서를 참조하십시오.
ElastiCache Redis OSS 클러스터에 연결하려면 운영 체제에 대해 다음 명령 중 하나를 실행하십시오.
Amazon Linux 2023:
sudo yum install redis6 -y
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
Redis-CLI가 Redis에 연결되면 암호화되지 않은 TCP 연결을 사용합니다. redis-cli가 컴파일될 때 BUILD_TLS=yes 옵션은 SSL/TLS를 활성화합니다. 연결하는 클러스터에 전송 중 암호화가 적용되지 않은 경우 Build_TLS=yes 옵션이 필요하지 않습니다.
참고: redis6 패키지를 설치하면 기본 SSL/TLS를 지원하는 redis6-cli가 자동으로 설치됩니다.
Redis 엔드포인트를 찾는 방법에 대한 자세한 내용은 ElastiCache에서 연결 엔드포인트 찾기를 참조하십시오.
다음 단계에서 암호화된 클러스터 또는 암호화되지 않은 클러스터는 전송 중인 암호화를 의미합니다.
CMD 암호화되지 않은 클러스터에 연결
참고: 다음 명령에서 change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com을 클러스터의 엔드포인트로 바꾸고 6379를 포트 번호로 바꾸십시오.
OS에 대해 다음 명령 중 하나를 실행합니다.
Amazon Linux 2023:
redis6-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
Amazon Linux 및 Amazon Linux 2:
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>
클러스터에 연결한 후 Redis 명령을 실행할 수 있습니다.
명령 예시:
set a "hello" OK get a "hello" quit
자세한 내용을 보려면 redis.io 웹사이트에서 Commands를 참조하십시오.
CME로 암호화되지 않은 클러스터에 연결
참고: 다음 명령에서 cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com을 클러스터의 구성 엔드포인트로, 6379를 포트 번호로 바꾸십시오.
OS에 대해 다음 명령 중 하나를 실행합니다.
Amazon Linux 2023:
redis6-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
Amazon Linux 및 Amazon Linux 2:
src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
참고: 이전 명령에서 -c 옵션은 -ASK 및 -MOVED 리디렉션 후에 클러스터 모드를 설정합니다. 리디렉션을 설정하지 않으면 명령이 MOVED 오류를 반환합니다. 자세한 내용은 Redis 웹사이트에서 Redis 클러스터 프로토콜의 클라이언트 및 서버 역할 및 Redis 클러스터 사양을 참조하십시오.
위 명령은 다음 예와 비슷한 Redis 명령 프롬프트를 반환합니다.
cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:>
Redis 명령 예시:
set x Hi-> Redirected to slot [16287] located at 172.31.28.122:6379OK 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"
암호화 또는 인증을 활성화한 상태로 클러스터에 연결
AUTH를 활성화하려면 전송 중 암호화도 켜야 합니다. 자세한 내용을 보려면 ElastiCache 전송 중 암호화(TLS)를 참조하십시오.
CME 및 클러스터 CMD 암호화 클러스터 모두에 연결하려면 redis-cli에서 --tls 옵션을 사용하십시오. 클러스터에 AUTH 토큰이 설정되어 있는 경우 -a 옵션을 사용하여 AUTH 암호를 제공하십시오.
참고: Redis 버전 7 이상에서는 기존 ElastiCache 클러스터에 대해 전송 중 암호화가 켜져 있습니다. Redis OSS 클러스터의 TLS 구성을 변경하기 위해 클러스터를 다시 빌드하거나 다시 프로비저닝할 필요가 없습니다. 애플리케이션 가용성은 영향을 받지 않습니다.
전송 중 암호화를 사용 설정하는 경우, 새로운 TLS 전용 엔드포인트를 사용하도록 클라이언트 구성을 업데이트하십시오.
CMD 암호화 클러스터에 연결
참고: 다음 명령에서 master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com을 클러스터의 구성 엔드포인트로, 6379를 포트 번호로 바꾸십시오.
암호화 및 인증을 설정한 상태로 CMD 클러스터에 연결하려면 OS에서 다음 명령 중 하나를 실행합니다.
Amazon Linux 2023:
redis6-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
Amazon Linux 및 Amazon Linux 2:
src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
암호화만 켜져 있는 CMD 클러스터에 연결하려면 OS에서 다음 명령 중 하나를 실행합니다.
Amazon Linux 2023:
redis6-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
Amazon Linux 및 Amazon Linux 2:
src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
**CME 암호화 클러스터에 연결 **
암호화 및 인증을 설정한 상태로 CME 클러스터에 연결하려면 OS에 대해 다음 명령 중 하나를 실행합니다.
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
Amazon Linux 및 Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
암호화만 켜져 있는 CME 클러스터에 연결하려면 OS에서 다음 명령 중 하나를 실행합니다.
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Amazon Linux 및 Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Redis-cli 대체
redis-cli 컴파일 없이 간단한 테스트를 실행하려면 telnet 또는 openssl을 사용하여 CMD 클러스터에 연결합니다.
연결한 후 Redis 명령을 실행할 수 있습니다.
다음 예제 명령은 암호화되거나 인증된 CMD 클러스터에 연결됩니다.
openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379
클러스터에 암호를 설정한 경우 먼저 클러스터에 연결합니다. 연결한 후 다음 명령을 사용하여 클러스터를 인증한 다음 Enter 키를 누릅니다.
Auth Password
참고: 위 예시 명령에서 Password를 클러스터의 암호로 바꾸십시오.
다음 예제 명령은 암호화나 인증이 켜져 있지 않은 CMD 클러스터에 연결합니다.
telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379
ElastiCache Memcached 클러스터에 연결
Memcached 클러스터에 연결하려면 telnet 유틸리티를 사용합니다.
전송 중 암호화 없이 Memcached 클러스터에 연결
다음 단계를 완료합니다.
-
연결을 테스트하려는 인스턴스에 telnet 유틸리티를 설치합니다.
CentOS 기반 시스템의 경우, 다음 명령을 실행합니다.
sudo yum install telnet
Debian 기반 시스템(Ubuntu)의 경우, 다음 명령을 실행합니다.
sudo apt-get install telnet
인스턴스에 연결하려면 EC2 인스턴스에 연결을 참조하십시오.
-
엔드포인트에 연결하려면 다음 예시 명령을 실행합니다.
telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
참고: 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 명령을 실행할 수 있습니다.
Memcached 명령 예시:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
전송 중 암호화를 사용하여 MemCached 클러스터에 연결
전송 중 암호화는 Memcached 버전 1.6.12 이상을 실행하는 클러스터에서 지원됩니다. Telnet은 암호화를 사용하지 않습니다. 암호화가 활성화된 MemCached 클러스터에 연결하려면 openssl을 사용합니다.
참고: 클러스터를 생성할 때만 클러스터에서 전송 중 암호화를 설정할 수 있습니다. 전송 중 암호화를 켜거나 끄도록 클러스터를 수정할 수 없습니다. 자세한 내용을 보려면 ElastiCache 전송 중 암호화(TLS)를 참조하십시오.
엔드포인트에 연결하려면 다음 예시 명령을 실행합니다.
openssl s_client -quiet -crlf -connect testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com:11211
참고: testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com을 엔드포인트로, 11211을 노드의 포트로 바꾸십시오.
출력 예시:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M02 verify return:1 depth=0 CN = *.testwithtls.qtyxq7.apse2.cache.amazonaws.com verify return:1
이제 노드에 연결되었으므로 Memcached 명령을 실행할 수 있습니다.
Memcached 명령 예시:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 2달 전lg...
- 질문됨 2년 전lg...
- AWS 공식업데이트됨 7달 전