Hosting a web app using GCE managed instance groups

371 views Asked by At

I have NGINX setup on Google Cloud Compute Engine using a managed instance group setup [powered by managed instance templates].

I simulated a cpu load on one of the servers and that spawned a couple of additional servers, each running NGINX.

So what's the best practice for hosting a website using this?

  1. Do I just create an A-record in DNS and point it to the IP address of the original instance [of the group]? Looks like this would be problematic given that the IPs are ephemeral?!

  2. Do I reserve a static IP address [in VPC Network]? I tried to create a static IP address and attach it to the original instance in the group, but when I did that, the said instance went away leaving another spawned instance as the new primary instance?!

  3. Is there some load balancer hidden somewhere that I can point an A-record to?

Managed instance groups seem like a great idea, but would like to know the best way to set it up that will not break unexpectedly in DNS.

1

There are 1 answers

4
Vincent On BEST ANSWER

You should setup a load balancer to distribute traffic across the instances in your group. To create a load balancer, you'll have to setup several components, instance groups being one of them. Check out this example. This uses unmanaged groups, but you can use managed instead. Once you've setup a load balancer, I would recommend creating a script in a language of your choice (python, JS, bash) that automates this process. I would even go further and write a script to tear down your load balancer.

As far as your domain is concerned, during the setup of your load balancer, you'll have to create static IPv4 and optional IPv6 addresses. You can then create A/AAAA records that point to these addresses. Finally, make sure you wait ~5-20 minutes after you've pointed your A/AAAA records to these ip's before you wonder why it's not working.