Redash on AWS: AMI or Elastic Beanstalk?


#1

I’m interested in setting up Redash on AWS to analyze & visualize data from an AWS Elasticsearch cluster as well as a Redshift instance. I’m wondering what’s the best way to setup Redash on AWS. I have a few concerns about using the provided AMI images:

  • The AMI image bundles Redash with Postgres and Redis on one EC2 instance; what if that instance fails?
  • Bundling all three services on one machine makes it difficult to scale them up individually.
  • Redash is configured through environment variables - how do I set these using the provided AMI image and in such a way that when I need to replace the instance all my configuration can be copied over easily?

Has anyone tried running Redash on AWS Elastic Beanstalk instead and using external Redis and Postgres instances through AWS ElastiCache and RDS instead?

What kind of data does Redash store in Redis/Postgres? I haven’t been able to find much documentation on this.


#2

What kind of data does Redash store in Redis/Postgres?

Redash stores most of its metadata in Postgres. Redis is used for light caching and backgorund task queues.

Redash is configured through environment variables - how do I set these using the provided AMI image and in such a way that when I need to replace the instance all my configuration can be copied over easily?

If you’re using the AMI/single instance, you need to backup the Postgres database & the .env file which contains the configuration.

Has anyone tried running Redash on AWS Elastic Beanstalk instead and using external Redis and Postgres instances through AWS ElastiCache and RDS instead?

In theory, it should be possible to run Redash on Elastic Beanstalk. Personally I had issues with it and ended up using ECS. But the main thing is: use an RDS instance for your metadata instead of a local Postgres DB. Then the Redash is instance is practically ephemeral and aside from the one configuration file, can be easily replaced.

You can use a single EC2 instances alongside the RDS database, or EC2/EB + ElasticCache Redis + RDS.

I guess the choice depends on how important Redash’s uptime to your organization and the scale you need to handle. It sounds like you’re just starting, so I would start with an EC2 instance and RDS. This way it’s easy to scale and/or change later on if needed.


#3

I used the prebuilt image in the AWS to create my instance (Redash version 1.0.1). It has its own local postgres server.
Now I want to update it to version 2.1.

But I can not create a backup of the data base.
How can I do it?
Where I can see the redash user password ?

In the .env file

....
export REDASH_DATABASE_URL="postgresql:///redash"
...

#4

It has no password, but rather uses the system’s user management. You can access it by running commands as the redash user, for example: with sudo -u redash psql .