London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!
London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!
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.
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.
Log in to the AWS Management Console and follow the steps below.
When running on Amazon, the media (for example images) should be stored in the S3 storage to enable elastic scaling.
Refer to Creating a Bucket in the AWS documentation for more information.
To scale for running on several instances, we need to set up an SNS Topic to handle messages between site instances.
Do the following to create an SNS topic:
Refer to Create a Topic in the AWS documentation for more information.
Refer to Creating a DB Instance Running the Microsoft SQL Server Database Engine for more information.
Refer to Amazon EC2 Security Groups in the AWS documentation for more information.
Refer to Installing EPiServer for information on how to install a Commerce website. When you have a project with a working website, continue with the steps below.
If you are installing CommerceManager besides the EPiServer Commerce Core, some extra steps are needed:
Open EPiServerFramework.config and note the configuration under the episerver.framework section to map Blob/Event providers to Amazon.
<blob defaultProvider="s3blobs">
<providers>
<add name="s3blobs" type="EPiServer.Amazon.Blobs.AmazonBlobProvider,EPiServer.Amazon"
accessKey="{your_access_key}" secretKey="{your_secret_key}"region="{
region
_code}"
bucket="mysitemedia"/>
</providers>
</blob>
<event defaultProvider="amazonevents">
<providers>
<add name="amazonevents" type="EPiServer.Amazon.Events.AmazonEventProvider,EPiServer.Amazon"
accessKey="{your_access_key}" secretKey="{your_secret_key}"region="{
region
_code}"
topic="mysiteevents"/>
</providers>
</event>
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.
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.
<connectionStrings>
<add name="EPiServerDB" connectionString="Data Source={your_database_server_for_front_end};Initial Catalog={database_name_for_front_end};
Integrated Security=False;User ID={user_id};Password={password};MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
<add name="EcfSqlConnection" connectionString="Data Source={your_database_server_for_back_end};Initial Catalog={database_name_for_back_end};
Integrated Security=False;User ID={user_id};Password={password};MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Refer to the For .NET Developers section in the AWS Elastic Beanstalk - Getting Started, for more information.
Note that two websites are needed, one for the EPiServer Commerce front-end site, and one for Commerce Manager.
Transfer the website BLOBs to the S3 Bucket, usually, EPiServer BLOBs are stored in C:\EPiServer\<MyEPiServerSite>\appdata\blobs.
Refer to Add an Object to a Bucket for more information.
Refer to Search in Amazon section on Deploying to Amazon for more information about how to build content index.
Last updated: Sep 15, 2014