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 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.
This is more advanced than Beanstalk and will require DevOps knowledge. For building Docker images we recommend you use Spree Starter Dockerfile.
EC2 is the most basic offering, running single or multiple instances of servers. This is the bare bones variant, you need to set up the deployment all by yourself using tools like Capistrano.
- 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 the Active Job background queue, which we use for sending out transactional emails
- AWS ElastiCache Memcached - we recommend using Memcached as cache storage to increase the performance and scalability of your Spree application