How to connect to AWS elasticache?

13,445

Solution 1

You cannot connect to Elasticache from outside its VPC. It's a weird design decision on AWS' part, and although it's not documented well, it is documented here:

Amazon ElastiCache Nodes, deployed within a VPC, can never be accessed from the Internet or from EC2 Instances outside the VPC.

You can set your security groups to allow connections from everywhere, and it will look like it worked, but it won't matter or let you actually connect from outside the VPC (also a weird design decision).

Solution 2

Two things we might forget when trying to connect to ElasticCache,

  1. Configuring inbound TCP rule to allow incoming requests on port 6379
  2. Adding EC2 security group in ElasticCache instance

enter image description here

Second one helped me.

Reference to (2) : https://www.youtube.com/watch?v=fxjsxtcgDoc&ab_channel=HendyIrawanSocialEnterprise

Solution 3

In your Redis cluster properties you have a reference to the Security Group. Copy it.

In our EC2 instance you also have a Security Group. You should edit this Security Group and add the ID of the Redis Security Group as CIDR in the outbound connections + the port 6379.

This way the two Security Groups are linked and the connection can be established.

Share:
13,445
Jimmy Gong
Author by

Jimmy Gong

Updated on June 04, 2022

Comments

  • Jimmy Gong
    Jimmy Gong almost 2 years

    Could someone give a step-by-step procedure for connecting to elasticache.

    I'm trying to connect to a redis elasticache node from inside my EC2 instance (sshed in). I'm getting Connection Timed Out errors each time, and I can't figure out what's wrong with how I've configured my AWS settings.

    They are in different VPCs, but in my elasticache VPC, I have a custom TCP inbound rule at port 6379 to accept from anywhere. And the two VPCs share an Active Peer connection that I set up. What more am I intended to do?

    EDIT:

    I am trying to connect via the redis-cli command. I sshed in because I was originally trying to connect via the node-redis module since my EC2 instance hosts a node server. So officially my two attempts are 1. A scripted module and 2. The redis-cli command provided in the AWS documentation.

    As far as I can tell, I have also set up the route tables correctly according to this: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html#route-tables-vpc-peering

    • Mark B
      Mark B over 8 years
      How are you trying to connect, via the redis-cli command or via some application library? Please provide more details.
    • Jimmy Gong
      Jimmy Gong over 8 years
      Updated to reflect - I've tried both
  • Jimmy Gong
    Jimmy Gong over 8 years
    I can't seem to create my EC2 instances (using ECS) inside the same VPC as my elasticache instances. Any tips on that? In the meantime though, thanks for clearing that up for me, good to know my limitations.
  • Eli
    Eli over 8 years
    Can you ask a separate question with more details for that? It's not the same as this one, and it's nice to avoid cluttering up SO.
  • Razvan Dumitru
    Razvan Dumitru over 6 years
    There is a republished AWS guide for connecting from outside: stackoverflow.com/a/43285441/2204877
  • user1735921
    user1735921 over 3 years
    it can be accessed from aws vpn