Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
This topic describes how to set up an Episerver Commerce site (8.0 and higher) to run on Amazon Web Services (AWS). In this scenario, a Commerce core website is installed, and most steps can be applied through NuGet packages.
Note: This document does not describe how to create/update a working Episerver Commerce website, which is required for the Amazon deployment. See Installing Episerver updates to do this.
Like an Episerver CMS webite on Amazon, you can run the Commerce website 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 stores 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 these steps create an Episerver Commerce website running in an Amazon environment.
When you run on Amazon, store the media (such as images) in the S3 storage to enable elastic scaling. See also Creating a Bucket in the AWS documentation.
To scale for running on several instances, set up an SNS Topic to handle messages between site instances. See also Create a Topic in the AWS documentation.
See Installing Episerver to install a Commerce website. When you have a project with a working website, continue with the following steps.
Note: If you are installing CommerceManager besides the Episerver Commerce Core, continue with the following steps; otherwise, skip to Step C. Configure updates.
Open EPiServerFramework.config and note the configuration under the episerver.framework section to map Blob/Event providers to Amazon.
XML
<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: When hosting in Amazon, use a scalable search solution such as Episerver Find. Because this is also a hosted service that you connect to, it works the same way as when your site runs on-premises. See the Configuring Episerver Find search provider to install and configure Episerver Find for Commerce.
The Commerce website is ready for deployment to Amazon.
Note: In EPiServer Commerce, you need to migrate two databases, and you need to change both the connectionStrings.config in the front-end and back-end sites. See Migrating Commerce databases to Amazon.
Open connectionStrings.config, change the connection string for EPiServerDB, EcfSqlConnection to the connection string from Amazone RDS SQL Database. Keep the setting MultipleActiveResultSets=true.
XML
<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>
See also For .NET Developers section in the AWS Elastic Beanstalk - Getting Started.
Note: You need two websites: one for the Episerver Commerce front-end site, and one for Commerce Manager.
Transfer the website BLOBs to the S3 Bucket. Typically, Episerver BLOBs are stored in C:\EPiServer\<MyEPiServerSite>\appdata\blobs. See also Add an Object to a Bucket.
Last updated: Oct 12, 2015