Amazon ElastiCache Redis나 Memcached 클러스터에 대한 연결을 테스트하려면 어떻게 해야 하나요?

7분 분량
0

Linux 기반 클라이언트에서 Amazon ElastiCache for Redis 또는 Amazon ElastiCache for Memcached 클러스터에 대한 연결을 테스트하려고 합니다.

간략한 설명

Amazon ElastiCache는 두 개의 메모리 내 키 값 엔진인 Redis와 Memcached를 지원합니다. ElastiCache 캐시 클러스터를 시작할 때 선호하는 엔진을 선택하세요.

참고: 이 해결 방법은 계획되지 않은 사용을 위한 연결 테스트에만 적용됩니다. 지원되는 Redis 클라이언트 목록은 Redis 웹사이트 설명서를 참조하세요.

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

해결 방법

ElastiCache 클러스터 생성

참고: 기존 클러스터에 연결하는 경우 다음 단계로 진행하세요.

ElastiCache Redis 클러스터를 생성하는 방법에 대한 자세한 내용을 보려면 클러스터 생성(Amazon ElastiCache for Redis 사용 가이드)을 참조하세요.

Memcached 클러스터를 생성하는 방법에 대한 자세한 내용을 보려면 클러스터 생성하기(Amazon ElastiCache for Memcached 사용 가이드)를 참조하세요.

ElastiCache Redis 클러스터에 연결하기

ElastiCache는 클러스터 모드 비활성화 및 클러스터 모드 활성화 Redis 클러스터를 모두 지원합니다. 이러한 클러스터에 대한 연결을 테스트하려면 redis-cli 또는 redis6-cli 유틸리티를 사용하세요. 최신 버전의 redis-cli 및 redis6-cli는 암호화 및 인증이 설정된 클러스터에 연결할 수 있도록 SSL/TLS를 지원합니다. 연결하려는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 redis-cli 유틸리티를 다운로드하고 컴파일합니다. Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 자습서: Amazon EC2 Linux 인스턴스 시작을 참조하세요.

참고: 다음 예에서는 Amazon Linux, Amazon Linux 2 및 Amazon Linux 2023을 실행하는 EC2 인스턴스를 사용합니다. 다른 Linux 배포판에서 redis-cli 및 redis6-cli를 설치하고 컴파일하는 방법에 대한 설명서는 특정 운영 체제에 대한 설명서를 참조하세요.

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 엔드포인트를 찾는 방법에 대한 자세한 내용을 보려면 연결 엔드포인트 찾기를 참조하세요.

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

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

    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>
  2. 클러스터에 연결한 후 다음 예제와 같은 Redis 명령을 실행할 수 있습니다.

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

    자세한 내용을 보려면 redis.io 웹 사이트에서 Commands를 참조하세요.

클러스터 모드가 활성화된 암호화되지 않은 클러스터에 연결하기

클러스터에 연결하려면 다음 명령을 실행합니다. 다음 예제 명령에서 cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com6379를 클러스터의 구성 끝점 및 포트 번호로 바꿉니다.

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 리디렉션 뒤에 클러스터 모드를 활성화합니다. 자세한 내용을 보려면 redis.io 웹 사이트의 Redis 클러스터 프로토콜의 클라이언트 및 서버 역할을 참조하세요.

Redis 명령 프롬프트의 결과는 다음 예제와 유사하게 표시됩니다.

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

이제 Redis 명령을 실행할 수 있습니다. -c 옵션으로 인해 리디렉션이 발생합니다. 리디렉션을 설정하지 않으면 명령이 MOVED 오류를 반환합니다. MOVED 오류에 대한 자세한 내용을 보려면 Redis 웹 사이트의 Redis 클러스터 사양을 참조하세요.

다음은 몇 가지 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"

암호화 및 인증이 활성화된 클러스터에 연결하기

AUTH를 활성화하는 옵션이 있습니다. 그러나 AUTH를 활성화하려면 전송 중 암호화를 활성화해야 합니다. ElastiCache 암호화 및 인증에 대한 자세한 내용을 보려면 ElastiCache 전송 중 암호화(TLS)를 참조하세요.

클러스터 모드 사용 및 클러스터 모드 비활성화 암호화된 클러스터에 모두 연결하려면 redis-cli와 함께 --tls 옵션을 사용합니다. 클러스터에 AUTH 토큰이 설정되어 있는 경우 -a 옵션을 사용하여 AUTH 암호를 제공할 수 있습니다.

참고: Redis 버전 7 이상에서는 전송 중 암호화가 기존 ElastiCache 클러스터에 대해 사용 설정되어 있습니다. Redis 클러스터를 다시 빌드하거나 다시 프로비저닝하거나 애플리케이션 가용성에 영향을 주지 않고도 Redis 클러스터의 TLS 구성을 변경할 수 있습니다. 전송 중 암호화를 사용 설정하는 경우, 새로운 TLS 전용 엔드포인트를 사용하도록 클라이언트 구성을 업데이트하세요. 자세한 내용을 보려면 전송 중 암호화 사용 전, 사용 중, 사용 후 연결을 설정하는 모범 사례를 참조하세요.

다음 예제에서는 클러스터의 엔드포인트와 포트를 대체하세요.

클러스터 모드 사용 안 함 암호화된 클러스터에 연결

다음 예제 명령은 암호화 및 인증이 설정된 클러스터에 연결합니다.

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

다음 예제 명령은 암호화만 설정된 클러스터에 연결합니다.

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

클러스터 모드를 사용하도록 설정된 암호화된 클러스터에 연결

다음 예제 명령은 암호화 및 인증이 설정된 클러스터에 연결합니다.

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

다음 예제 명령은 암호화만 설정된 클러스터에 연결합니다.

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 명령을 실행할 수 있습니다.

Redis-cli 대체 기능

redis-cli 컴파일을 거치지 않고 짧은 테스트를 위해 클러스터 모드가 사용되지 않은 클러스터에 연결할 수 있습니다. 이렇게 하려면 텔넷 또는 openssl을 사용합니다. 다음 예제 명령에서 클러스터의 엔드포인트와 포트를 대체합니다.

참고: 텔넷 유틸리티를 설치하려면 다음 섹션 전송 중 암호화 없이 Memcached 클러스터에 연결을 참조하세요.

연결한 후 앞의 예제와 같이 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

ElastiCache Memcached 클러스터에 연결하기

Memcached 클러스터에 연결하려면 텔넷 유틸리티를 사용합니다.

전송 중 암호화 없이 Memcached 클러스터에 연결

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

    CentOS 기반 시스템의 경우, 다음 명령을 실행합니다.

    $sudo yum install telnet

    Debian 기반 시스템(Ubuntu)의 경우, 다음 명령을 실행합니다.

    $sudo apt-get install telnet

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

  2. 엔드포인트에 연결하려면 다음 예제 명령을 실행합니다. mycachecluster.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 5hello
STORED
get a
VALUE a 0 5
hello
END

전송 중 암호화를 사용하여 MemCached 클러스터에 연결 중

전송 중 암호화는 Memcached 버전 1.6.12 이상을 실행하는 클러스터에서 지원됩니다. 텔넷은 암호화를 사용하지 않습니다. 암호화가 활성화된 MemCached 클러스터에 연결하려면 openssl 클라이언트를 사용합니다.

참고: 클러스터를 만들 때만 클러스터에서 전송 중 암호화를 설정할 수 있습니다. 클러스터를 수정하여 전송 중 암호화를 설정하거나 해제할 수 없습니다. 자세한 내용을 보려면 ElastiCache TLS(전송 중 암호화)를 참조하세요.

엔드포인트에 연결하려면 다음 예제 명령을 실행합니다. testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com을 엔드포인트로 바꾸고 11211을 노드의 포트로 바꿉니다.

openssl s_client -quiet -crlf -connect 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 명령을 실행할 수 있습니다.

set a 0 0 5hello
STORED
get a
VALUE a 0 5
hello
END
AWS 공식
AWS 공식업데이트됨 7달 전