확장 가능한 분산 인 메모리 캐시를 제공하는 ElastiCache

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

ElastiCache Redis 클러스터 Security Group 생성 및 설정하기

ElastiCache Redis 클러스터와 캐시 노드가 완전히 생성되었더라도 엔드포인트 주소로 접속이 되지 않습니다. Redis 클러스터를 생성할 때 Security Group을 기본값인 default (VPC)로 설정했습니다. 이 default (VPC)는 모든 트래픽에 대해 Inbound가 열려있지만접속 가능한 IP 대역Source은 default 자기 자신으로 설정되어 있습니다. 즉 같은 default (VPC) Security Group 설정 안에서만 접속이 허용되므로 외부에서는 접속할 수 없습니다. 따라서 Redis 클러스터 전용 Security Group을 생성하고 포트(6379)를 열어줘야 합니다.

RDS와 ElastiCache는 큰 차이점이 있습니다. RDS의 데이터베이스 엔진은 AWS 외부(인터넷)에서 접속이 허용되어 있지만 ElastiCache의 캐시 엔진은 AWS 외부에서 접속할 수 없습니다. Security Group을 생성하여 모든 IP 대역에 대해 접속을 허용하더라도 동일한 VPC에 속한 EC2 인스턴스에서만 접속할 수 있습니다.

자세한 내용은 링크를 참조하기 바랍니다.
http://aws.amazon.com/ko/elasticache/faqs/#general-security

ElastiCache Redis 클러스터용 Security Group을 생성해보겠습니다. AWS 콘솔의 메인 화면에서 Compute & Networking의 EC2를 클릭합니다.


그림 15-37 EC2 Virtual Servers in the Cloud

NETWORK & SECURITY → Security Groups를 클릭한 뒤 위쪽의 Create Security Group 버튼을 클릭합니다.


그림 15-38 Security Group 생성

ElastiCache Redis 클러스터용 Security Group을 생성합니다(그림 15-39).

  • Security group name: Security Group의 이름입니다. Memcached Cluster를 입력합니다.
  • Description: Security Group 설명입니다. Memcached Cluster를 입력합니다.
  • VPC: Security Group이 적용될 VPC입니다. 기본값 그대로 사용합니다.

외부에서 들어오는 트래픽인 Inbound 탭을 선택합니다(Inbound가 기본으로 선택되어 있을 것입니다). 아래쪽 Add Rule 버튼을 클릭합니다.

  • Type: 트래픽 종류입니다. Memcached는 미리 정의된 것이 없으므로 Custom TCP Rule을 선택합니다.
  • Protocol: 프토로콜입니다. Custom TCP Rule 선택하면 자동으로 TCP가 설정됩니다.
  • Port Range: 포트 번호입니다. 우리는 Memcached 포트를 열어야 하므로 11211을 입력합니다.
  • Source: 접속 가능한 IP 또는 IP 대역입니다. Anywhere를 선택합니다(실무에서는 My IP를 선택하여 자신의 IP만 접속할 수 있도록 설정하거나, Custom IP를 선택하여 특정 IP 대역을 설정하도록 합니다).

설정이 완료되었으면 Create 버튼을 클릭합니다.


그림 15-39 ElastiCache Redis 클러스터용 Security Group 생성 완료

이제 다시 ElastiCache 캐시 클러스터 목록(Amazon ElastiCache → Cache Clusters)으로 이동합니다.

ElastiCache 캐시 클러스터 목록에서 Memcached 클러스터(examplememcached)에 있는 Modify 버튼을 클릭합니다.


그림 15-40 ElastiCache Redis 클러스터 설정 변경

ElastiCache Redis 클러스터의 설정을 변경합니다. VPC Security Group(s)에서 방금 생성한 Redis Cluster를 선택하고 아래쪽 Yes, Modify를 클릭합니다.


그림 15-41 ElastiCache Redis 클러스터 설정 변경

Redis 클러스터(exampleredis)의 설정이 변경 중입니다. 10초 정도 기다리면 설정이 완전히 적용됩니다. 1 node 링크를 클릭하여 캐시 노드 목록으로 이동합니다.


그림 15-42 ElastiCache Redis 클러스터 설정 변경 중

Redis 클러스터의 캐시 노드 목록에 포트 번호와 엔드포인트 주소가 표시됩니다.


그림 15-43 ElastiCache Redis 캐시 노드 Endpoint 확인

Redis는 텔넷telnet으로 접속할 수 있습니다. 앞에서 생성한 EC2 인스턴스(Example Server)에서 텔넷을 이용하여 Redis 캐시 노드로 접속해보겠습니다(아직 EC2 인스턴스를 생성하지 않았다면 ‘4.3 EC2 인스턴스 생성하기’를 참조하여 EC2 인스턴스를 생성하기 바랍니다).

telnet <엔드포인트 주소> 6379 순으로 명령을 입력하면 Redis 캐시 노드로 접속할 수 있습니다. 접속한 후 info를 입력하면 현재 캐시 노드의 정보가 표시됩니다.

exampleredis.o5nouc.0001.apne1.cache.amazonaws.com는 제가 생성한 캐시 노드 엔드포인트 주소 입니다. 여러분들이 생성한 캐시 노드의 엔드포인트 주소를 입력하기 바랍니다.

telnet exampleredis.o5nouc.0001.apne1.cache.amazonaws.com 6379
Escape character is '^]'.
info
$1747
# Server
redis_version:2.8.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:37f1586c49770bbe
redis_mode:standalone
os:Amazon ElastiCache
arch_bits:64
multiplexing_api:epoll
gcc_version:0.0.0
process_id:1
run_id:6e1a8b8dacf399db74b53526ed722c9820e8e20b
tcp_port:6379
생략...

접속이 되지 않는다면 Security Group에 포트 번호를 정상적으로 입력하였는지, Memcached 클러스터 설정에서 방금 생성한 Security Group을 선택하였는지, 텔넷 접속에서 엔드포인트 주소와 포트 번호를 정확하게 입력하였는지, EC2 인스턴스가 같은 VPC에 속해 있는지 확인합니다.

앞에서 설명한 것처럼 ElastiCache의 캐시 노드는 AWS 외부에서 접속할 수 없습니다.

redis-cli
Redis는 redis-cli라는 전용 클라이언트를 제공하고 있습니다. 다운로드 및 설치방법은 링크를 참조하기 바랍니다.
http://redis.io/download


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.