Amazon Web Services offers reliable, scalable, and inexpensive cloud computing services. Free to join, pay only for what you use.
AWS is also one of the most popular choices for hosting a Spree application. There are several services you can use to host Spree on AWS, here we’re briefly touch upon those options.
The easiest way to run Spree or any other Ruby on Rails application on AWS is through AWS Elastic Beanstalk which is comparable to Heroku PaaS (Platform as a Service).
This is the recommended approach if you’re just starting up. Please follow Beanstalk Deployment guide for more details.
Another option is Elastic Container Service to host and deploy your Docker containers.
This is more advanced than Beanstalk and will require DevOps knowledge. For building Docker images we recommend you use Spree Starter Dockerfile.
- AWS S3 - object storage service to store and read your uploaded files such as Product images etc. We do not recommend keeping your uploads on the same instance as the application.
- AWS RDS - Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud. Spree works great with multiple databases: Amazon Aurora (both MySQL and PostgreSQL variants), RDS PostgreSQL, RDS MySQL and RDS MariaDB
- AWS ElastiCache Redis - we recommend setting up a Redis database for Active Job background queue, which we use for sending out transactional emails
- AWS ElastiCache Memcached - we recommend using Memcached as a cache storage to increase performance and scalability of your Spree application