You have an application that will run on Compute Engine.
You need to design an architecture that takes into account a disaster recovery plan that requires your application to fail over to another region in case of a regional outage.
What should you do?
Click on the arrows to vote for the correct answer
A. B. C. D.C.
Option A is the correct answer. Deploying the application on two Compute Engine instances in different regions is a good approach to achieve disaster recovery. Here are the details on how this architecture works:
First, you need to create two Compute Engine instances in two different regions. You can use the same project or different projects. In this case, let's assume you are using the same project.
Next, deploy your application on both instances. Configure the first instance to serve traffic by setting up a domain name and configuring the DNS to point to the IP address of the first instance. You can use any web server or application server that supports your application. For example, you can use Apache HTTP Server or Nginx as a web server or Tomcat or Jetty as an application server.
Once your application is running on the first instance, you can configure HTTP load balancing to distribute incoming traffic between the two instances. To do this, you need to create an HTTP load balancer and configure it to use both instances as its backend. You can also configure health checks to monitor the health of your instances and automatically remove any unhealthy instances from the backend pool.
Now, when users access your application, their requests will be routed to the first instance by the load balancer. If there is a regional outage and the first instance becomes unavailable, the load balancer will automatically fail over to the second instance. This ensures that your application remains available to users even in the event of a disaster.
Option B is incorrect because it suggests using an instance on your premises as a failover solution. This may not be a practical solution as it requires you to maintain your own infrastructure, which can be costly and time-consuming. Moreover, it does not provide the same level of redundancy as having instances in different regions.
Option C is incorrect because it suggests using two instance groups in the same project but in different regions. While this approach provides some level of redundancy, it does not provide as much redundancy as having instances in different projects. Also, this approach does not provide isolation between the two instance groups, which may be a requirement for some applications.
Option D is incorrect because it suggests using two instance groups in different projects. While this approach provides more isolation between the two instance groups, it also adds complexity to the setup. Moreover, it may incur additional costs as you will need to pay for resources used in two separate projects.