Running Umbraco on AWS with multiple instances and load balancing
Hi,
I was curious about something. We are looking to use Umbraco on a new development which will be deployed to AWS. Thing is, it will be running on multiple instances with a load-balancer in place.
Saving the media to S3 storage is the obvious solution when uploading images and media (I noticed there is a provider for this), however, what happens in the case when the users create new Layouts, Templates and views in Umbraco? These get saved down to the local file system meaning the other instances will be out of sync.
Has anyone else encountered this issue and a way to solve it?
Are you using an Elastic Beanstalk instance or just multiple EC2 instances? If you're using an ELB, you won't be able to load balance your environment as you can't nominate one of your ELB's EC2 instances as master and the rest as slaves. You'd have to run a separate EC2 instance for the back office and run it via a different domain.
Secondly, distributed calling won't work when deployed to an ELB. Reason being is that the Distributed Calling section in umbracoSettings.config requires a predefined list of all IP address within your environment. There are ways around this but you'll have to role your own implementation of Distributed Calling if you want to tell your slaves to refresh their cache file from your back office server.
I've found that with media items, you won't be able to use S3 buckets unless you can find a way to map your bucket as a virtual directory on each of your EC2 instances. It doesn't seem as though you can override Rich Text Editors to use S3 bucket urls. You might be best off having a separate EC2 instance to host your media files and connect to them via an IIS Virtual Directory.
If you are deploying new versions of your solution via a build server then things like Layouts, Templates and Views shouldn't be a problem.
right now my umbracoconfig in <addkey="umbracoContentXML"value="~/App_Data/Temp/umbraco.config"/>
if i change <addkey="umbracoContentXML"value="~/media/umbraco.config"/>
but media is synchronize in both server via Vice Versa pro file synchronization tool.so, in case i am publishing from one server in every changes it will replicate the file in another server is my assumption.
Please suggest me what is the best approach for umbracoconfig should updated on both the server either one of them is down as well.
I would avoid sharing the same Umbraco cache file across servers. That's what Distributed Calling is for. What environment are you running on? If its an ELB environment, you might want to look at the Extended Distributed Calling package. It should help with an ELB setup containing multiple EC2 instances.
i am having 2 server server1+loadbalanceurl and server2.In setting purpose i given umbracoconfig file path in appdata/temp/umbracoconfig in bothe the server my question if i give the server2 to admin and when he is going to create 1 page in server2 at thet time server1 is down so, i am nble to found that page in server1 or load balance url because umbraco config not updated for server1.is there any way to always in both server umbracoconfig should be up to date either one of server is switched off or down.
i have put my umbracoconfi in both server inside appdata/temp
distrubuted call true and configure both server in umbracosetting file
using vice versa pro synch the media in both server.
so is there any way to always up to date umbraco config file in both server either of any server down or swithced off
For public access on nodes:
If i am giving public access in LB1 server. "access.config" of LB2 is not updating is there anyway to sync
access.config on both the server.
is there vice versa pro can do this? but access.config is resides App Data which we are generally not sync
or in umbraco any way i can up to date both the server access.config.
Running Umbraco on AWS with multiple instances and load balancing
Hi,
I was curious about something. We are looking to use Umbraco on a new development which will be deployed to AWS. Thing is, it will be running on multiple instances with a load-balancer in place.
Saving the media to S3 storage is the obvious solution when uploading images and media (I noticed there is a provider for this), however, what happens in the case when the users create new Layouts, Templates and views in Umbraco? These get saved down to the local file system meaning the other instances will be out of sync.
Has anyone else encountered this issue and a way to solve it?
Thanks in advance
Gordon
Are you using an Elastic Beanstalk instance or just multiple EC2 instances? If you're using an ELB, you won't be able to load balance your environment as you can't nominate one of your ELB's EC2 instances as master and the rest as slaves. You'd have to run a separate EC2 instance for the back office and run it via a different domain.
Secondly, distributed calling won't work when deployed to an ELB. Reason being is that the Distributed Calling section in umbracoSettings.config requires a predefined list of all IP address within your environment. There are ways around this but you'll have to role your own implementation of Distributed Calling if you want to tell your slaves to refresh their cache file from your back office server.
I've found that with media items, you won't be able to use S3 buckets unless you can find a way to map your bucket as a virtual directory on each of your EC2 instances. It doesn't seem as though you can override Rich Text Editors to use S3 bucket urls. You might be best off having a separate EC2 instance to host your media files and connect to them via an IIS Virtual Directory.
If you are deploying new versions of your solution via a build server then things like Layouts, Templates and Views shouldn't be a problem.
Hi Dan,
right now my umbracoconfig in <addkey="umbracoContentXML"value="~/App_Data/Temp/umbraco.config"/>
if i change <addkey="umbracoContentXML"value="~/media/umbraco.config"/>
but media is synchronize in both server via Vice Versa pro file synchronization tool.so, in case i am publishing from one server in every changes it will replicate the file in another server is my assumption.
Please suggest me what is the best approach for umbracoconfig should updated on both the server either one of them is down as well.
@Dan find my post related to this topic in http://our.umbraco.org/forum/getting-started/installing-umbraco/45868-Load-balanced-setup?p=0#comment177563
Regards
Pushpendra singh
Hi Pushpendra,
I would avoid sharing the same Umbraco cache file across servers. That's what Distributed Calling is for. What environment are you running on? If its an ELB environment, you might want to look at the Extended Distributed Calling package. It should help with an ELB setup containing multiple EC2 instances.
Thanks,
Dan.
Hi Dan,
i am having 2 server server1+loadbalanceurl and server2.In setting purpose i given umbracoconfig file path in appdata/temp/umbracoconfig in bothe the server my question if i give the server2 to admin and when he is going to create 1 page in server2 at thet time server1 is down so, i am nble to found that page in server1 or load balance url because umbraco config not updated for server1.is there any way to always in both server umbracoconfig should be up to date either one of server is switched off or down.
i have put my umbracoconfi in both server inside appdata/temp
distrubuted call true and configure both server in umbracosetting file
using vice versa pro synch the media in both server.
so is there any way to always up to date umbraco config file in both server either of any server down or swithced off
Hi Dan,
For public access on nodes: If i am giving public access in LB1 server. "access.config" of LB2 is not updating is there anyway to sync access.config on both the server.
is there vice versa pro can do this? but access.config is resides App Data which we are generally not sync
or in umbraco any way i can up to date both the server access.config.
is working on a reply...