Disaster Recovery(App Engine) - Multi Region

1,443 views
Skip to first unread message

andy

unread,
Jul 25, 2017, 9:12:51 AM7/25/17
to Google App Engine
Hi ,

I am planning to deploy an Enterprise Grade Application in Google App Engine. With both Standard & Flex environment.

How do I ensure the DR in case a region goes down.

Example : I deploy my application in AppEngine "N.Virginia" region & if there is an outage in the region , how to do I serve the requests from another region ?
Could anyone explain on how do I setup a DR site for AppEngine Applications.

andy

unread,
Jul 25, 2017, 9:12:51 AM7/25/17
to Google App Engine
Hi ,

I am planning to deploy an Enterprise Grade Application in Google App Engine using both Standard & Flex environment.

How do I ensure the DR in case a region goes down.

Example : I deploy my application in AppEngine "N.Virginia" region & there is an outage in the region , how to do I serve the requests from another region ?
Could anyone explain on how do I setup a DR site in another region for AppEngine Applications, Also if there is an automated way to switch over to the other region when there is a disruption/outage.


Thanks in Advance.

sincerely
Andy

Yannick (Cloud Platform Support)

unread,
Jul 25, 2017, 4:49:33 PM7/25/17
to Google App Engine
Hello Andy,

App Engine is a regional service and while it is replicated to all zones of a region to reduce potential downtime, it cannot span to more than a region. The recommended way to deploy your application to several regions is to use one region per project, but there is no good way to load balance between those projects if you use App Engine Standard.

This means that the real answer to accomplish what you want to do is to use Compute Engine, or at the very least App Engine Flexible. Compute Engine gives you more liberty to create instances in any region of the world and to load balance between them however you like.

Read more on this subject in these articles:

andy

unread,
Jul 26, 2017, 9:18:26 AM7/26/17
to Google App Engine
Hi Yannick,

Thank you so much for the response.

The links you have shared is more to do with Compute (as u have already mention).

Our mandate is to  deploy the application in "App Engine" (we can use a combination of standard & flex), and it should be resistant to regional failures (should be able to run from another region if there is an outage).

If I deploy the front-end service using "Flex" environment and the back-end services in "Standard", and create a copy of the same in another region using another project -  
1. Would I be able to do a load balancing between the two flex servers ?
2. Would I be able to do a fail-over to Flex server in alternate region using Cloud DNS ?

Also is there a way to backup the entire App engine service deployed in region "A" and copy it to another region "B" ?

Kindly let me know the possibility of the above 3 options.


Thanks

Andy

Yannick (Cloud Platform Support)

unread,
Jul 26, 2017, 5:00:20 PM7/26/17
to Google App Engine
Hello Andy,

I did some more research and the consensus is that at this time this really cannot be done with App Engine, flexible or standard, as this use case goes against the design goals of App Engine and is not supported. The main selling point of App Engine is that it will automatically manage and load balance instances on which to run your application, meaning you use App Engine when you do not wish to manage instances yourself. As such it already runs its own load balancer and there's no way to have it play well with the Compute Engine Load Balancer.

To quickly answer your questions: you cannot direct traffic to an App Engine service using the Compute Engine Load Balancer; Cloud DNS on its own is not a load balancer and therefore cannot do fail-over; You cannot copy projects directly. The only way to have 2 projects be identical is to duplicate actions on both projects or to migrate the data and configuration of each product in a project.

It sounds like you really should be doing this using Container Engine, which uses the same container technology as App Engine Flexible but gives you greater control to manage the distribution, replication and scaling of your instances.

Could you tell me if there's a specific reason why you feel like you need to use App Engine? If I understand this better I might be able to give a better and more complete recommendation as to how you can accomplish this on the Google Cloud Platform.

Sincerely,

Yannick

troberti

unread,
Jul 27, 2017, 8:41:42 AM7/27/17
to Google App Engine
Isn't App Engine Standard multi-regional? It used to be back in the days, if your app was created in a region that has multi-regional Datastore (us-central and eu-west). I can't find it anymore i the docs, but that could be because App Engine Flex is not multi-regional.

Yannick (Cloud Platform Support)

unread,
Jul 27, 2017, 10:41:54 AM7/27/17
to Google App Engine
While Datastore and some other services are indeed multi-regional, App Engine never was. It is a regional service and is replicated accross all zones in that region.
Reply all
Reply to author
Forward
0 new messages