Redis won’t talk to Web Server.

redis-aws-love.png

The Problem: #

Thinking you’ve correctly configured everything in your shiny new cloud architecture, and having a key piece not work properly can be extremely frustrating.

For me, it was trying to get a web server (on EC2) to talk to a Redis cluster (on ElasticCache).

Trying to use redis-cli on my local machine kept getting me to this point:

Could not connect to Redis at xxx.usw2.cache.amazonaws.com:6379: Operation timed out

This is when I found out that Redis by default isn’t meant to be accessed from outside the sphere of AWS. Since I was running redis-cli from my laptop, this wasn’t going to work.

The next logical step was to SSH into my EC2 machine, and then run the redis-cli command to try and PING the Redis host. But this method also ran into the timed out error.

Since the machine on AWS couldn’t even produce a handshake with the Redis host, this is when I knew that there was something wrong with the security permissions which was restricting any traffic from communicating with the Redis host.

The Fix: #

First, go to your Elastic Cache Console and click on the specific Redis instance which is giving you a hard time. Take note of the Security Group ID (marked by the purple arrow):

elasticcache.png

Next, go to your VPC Management Console and head to the Security Groups section. Make sure that your Redis Group ID (purple arrow) has allowed inbound connection (custom TCP Rule on Port Range 6379) with the Source being the Group ID of the group which your EC2 instance is on (orange arrows). As for the Outbound Rules, allow ALL Traffic.

security groups.png

This finally made it so my “PING” was met with a “PONG” from the Redis host. When you observe errors like this, make sure your security groups are able to properly talk to the respective servers.

 
4
Kudos
 
4
Kudos

Now read this

Getting react-big-calendar to work.

Recently, a popular React calendar library (react-big-calendar) went through an upgrade which introduced breaking changes and made many of the online tutorials and documentation irrelevant. The breaking change comes from the fact that... Continue →