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

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

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

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

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

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

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


그림 15-15 EC2 Virtual Servers in the Cloud

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


그림 15-16 Security Group 목록에서 Security Group 생성

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

  • 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-17 ElastiCache Memcached 클러스터용 Security Group 생성

Security Group 목록(NETWORK & SECURITY → Security Groups)에 Memcached Cluster Security Group이 생성되었습니다.


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

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

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


그림 15-19 ElastiCache Memcached 클러스터 설정 변경

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


그림 15-20 ElastiCache Memcached 클러스터 설정 변경

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


그림 15-21 ElastiCache Memcached 클러스터 설정 변경 중

Memcached 클러스터의 캐시 노드 목록에서 포트 번호와 엔드포인트 주소를 확인할 수 있습니다.


그림 15-22 ElastiCache Memcached 캐시 노드 엔드포인트 주소 확인

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

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

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

telnet examplememcached.o5nouc.0001.apne1.cache.amazonaws.com 11211
Escape character is '^]'.
stats
STAT pid 1
STAT uptime 28596
STAT time 1399822401
STAT version 1.4.14
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 0.060003
STAT rusage_system 0.100006
STAT curr_connections 5
STAT total_connections 486
STAT connection_structures 7
STAT reserved_fds 5
생략...

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

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

텔넷 클라이언트 설치
Windows 7 이상: 제어판 → 프로그램 및 기능 → Windows 기능 사용/사용 안 함 → 텔넷 클라이언트 선택 후 설치

  • Amazon Linux, CentOS: sudo yum install telnet
  • Ubuntu: sudo apt-get install telnet

저작권 안내

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