This document describes how to set up an EPiServer Commerce site (8.0 and higher) to run on Amazon Web Services. In this scenario a Commerce core website is installed, and most steps can be applied through NuGet packages.
This document does not describe how to create/update a working EPiServer Commerce website, which is required for the Amazon deployment. Refer to Installing EPiServer updates for more information on how to do this.
A specific cloud enabled license is required, refer to the EPiServer License Center to get this (add this license to the Commerce website).
Deploying to cloud based websites requires that each deployed application and module is designed for cloud.
In order for the website to work properly with Amazon, it is required that the databases are created with collation "SQL_Latin1_General_CP1_CI_AS". When creating a new Commerce site, first create the databases with the correct collation. When you then create the site using Deployment Center, use the "Install site without database" option and make sure to point to these databases instead of creating new ones.
Cloud website setup
Like an EPiServer CMS webite on Amazon, the Commerce website can be run in an AWS Elastic Beanstalk environment with caching and multiple instances. The website instances share the same Amazon SQL instance, and the S3 storage in Amazon is used for storing of the file binary data. Load balancing is applied, and the Amazon SNS manages events between the Commerce websites.
Using Auto Scaling, you can scale automatically through configuration.
Follow the steps below to create an EPiServer Commerce website running in an Amazon environment.
1. Creating Amazon resources
Log in to the AWS Management Console and follow the steps below.
Creating an S3 storage bucket
When running on Amazon, the media (for example images) should be stored in the S3 storage to enable elastic scaling.
In the AWS Management Console, select S3 from the Services menu.
Select Create Bucket in the upper right corner, and in the dialog select a region and provide a name.
Note that when hosting in Amazon, the recommendation is to use a scalable search solution such as EPiServer Find. Since this is also a hosted service that you connect to, it will work the same way as when your site runs on-premise. Refer to Configuring EPiServer Find search provider, for more information on how to install and configure EPiServer Find for Commerce.
The Commerce website is now ready for deployment to Amazon.
Migrating the database to Amazon RDS SQL instance
Note that in EPiServer Commerce, two databases need to be migrated and both the connectionStrings.config in the front-end and back-end sites need to be changed. Refer to Migrating Commerce databases to Amazon for more detailed information.
Open connectionStrings.config, change the connection string for EPiServerDB, EcfSqlConnection to the connection string from Amazone RDS SQL Database. Remember to keep the setting MultipleActiveResultSets=true.