2020. 2. 4. 00:26ㆍ서버 프로그래밍
AWS의 ElastiCache(Redis)를 로컬에서 접속을 하려고 하니, 정상적인 연결이 되지 않아 찾아보니 ElastiCache는 같은 VPC 내부에서만 접속이 가능하다는 것을 알게되었다. 아마도 RDS나 MongoDB와는 달리 상대적으로 보안이 취약해서인 듯.
RDS와는 다르게, ElastiCache 는 같은 VPC 내부에서만 direct하게 접속이 가능하다. 따라서, AWS 외부의 컴퓨터 (ex: 집 컴퓨터)에서는 물론이고, AWS의 다른 VPC의 EC2에서도 direct 하게 접속되지 않는다. 따라서, AWS 외부에서 접속하고 싶다면, 같은 VPC 내에 EC2 를 하나 만들고(또는 redis node 를 시작할 때, 원래 존재하던 EC2와 같은 VPC 를 사용하도록 설정한다.), 해당 EC2에 ssh 로 접속한 후, 다시 해당 EC2를 거쳐서 telnet 으로 접속한다. EC2는 계속 terminate 되고 다시 생성되면서 VPC가 바뀌므로, redis의 subnet 을 필요할 때마다 바꿔주면서 접속한다.
https://jjangga0214.gitbooks.io/spring-boot/redis/elasticache-redis.html
덕분에 기존에 이를 감안하지 않고 다른 VPC 기반의 EC2 인스턴스를 생성해서 사용했다면, 아쉽게도 낭패! 이런 경우 ElastiCache가 속한 VPC로 이동시켜야 한다. 아니면 새로 생성하는 인스턴스는 이를 감안하여 반드시 접속이 가능한 VPC 및 서브넷으로 지정해야 한다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/move-ec2-instance/