15D. ElastiCache Memcached 클러스터 Security Group 생성 및 설정하기
15D. ElastiCache Memcached 클러스터 Security Group 생성 및 설정하기 관련
![](https://pyrasis.com/assets/images/pyrasis.png)
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 인스턴스에서만 접속할 수 있습니다.
자세한 내용은 링크를 참조하기 바랍니다.
ElastiCache Memecached 클러스터용 Security Group을 생성해보겠습니다.
![AWS 콘솔의 메인 화면에서 Compute & Networking의 <FontIcon icon="iconfont icon-select"/>를 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/15_.png)
[EC2]
를 클릭합니다.![<FontIcon icon="iconfont icon-select"/> → 를 클릭한 뒤 위쪽의 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/16_.png)
[NETWORK & SECURITY]
→ [Security Groups]
를 클릭한 뒤 위쪽의 [Create Security Group]
버튼을 클릭합니다.ElastiCache Memcached 클러스터용 Security Group을 생성합니다.
- 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 대역을 설정하도록 합니다).
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/17_.png)
[Create]
버튼을 클릭합니다.![Security Group 목록(<FontIcon icon="iconfont icon-select"/> → )에 Memcached Cluster Security Group이 생성되었습니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/18_.png)
[NETWORK & SECURITY]
→ [Security Groups]
)에 Memcached Cluster Security Group이 생성되었습니다.이제 다시 ElastiCache 캐시 클러스터 목록([Amazon ElastiCache]
→ [Cache Clusters]
)으로 이동합니다.
![ElastiCache 캐시 클러스터 목록에서 Memcached 클러스터()에 있는 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/19_.png)
examplememcached
)에 있는 [Modify]
버튼을 클릭합니다.ElastiCache Memcached 클러스터의 설정을 변경합니다.
![VPC Security Group(s)에서 방금 생성한 Memcached Cluster를 선택하고 아래쪽 <FontIcon icon="iconfont icon-select"/>를 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/20_.png)
[Yes, Modify]
를 클릭합니다.![Memcached 클러스터()의 설정이 변경 중입니다. 약 10초 정도 기다리면 설정이 완전히 적용됩니다. 1 nodes 링크를 클릭하여 캐시 노드 목록으로 이동합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/21_.png)
examplememcached
)의 설정이 변경 중입니다. 약 10초 정도 기다리면 설정이 완전히 적용됩니다. 1 nodes 링크를 클릭하여 캐시 노드 목록으로 이동합니다.![Memcached 클러스터의 캐시 노드 목록에서 포트 번호와 엔드포인트 주소를 확인할 수 있습니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter15/22_.png)
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 기능 사용/사용 안 함]
→ [텔넷 클라이언트 선택 후 설치]
sudo yum install telnet
sudo apt-get install telnet