6
votes

Does Google Cloud provide public hostnames for their Compute instances?

AWS seems to generate public hostnames for their EC2 instances:

A public (external) DNS hostname takes the form ec2-public-ipv4-address.compute-1.amazonaws.com for the us-east-1 region, and ec2-public-ipv4-address.region.compute.amazonaws.com for other regions. We resolve a public DNS hostname to the public IPv4 address of the instance outside the network of the instance...

Similar question:
This seems like a similar question but (1) setting up a DNS seems like an overkill, (2) seems like I'll need to do some sort of thing outside of Google Cloud anyway or it isn't public (not sure), and (3) it could be outdated (2014).

3

3 Answers

6
votes

No, GCE doesn't offer hostnames for an instance. It does assign external IP addresses for each instance. Associating a DNS record with your instance is the only method to generate a hostname.

GCE does have built in private hostnames, inside the same network. For example two instances in the same VPC can ping each other by name

Instance 'test-instance': start server on :8080
Instance 'second-instance': curl test-instance:8080
// Response 'Hello World'
4
votes

No. Source: FridayPush's answer (thanks! from his profile, seems worthy of trust for Google-Cloud things :-)).

The reason I wrote a separate answer is to make it clear that you can't have a public hostname totally through Google Cloud. You can either have an internal hostname totally through Google Cloud, or you'll need to do something outside of Google Cloud (e.g., own a domain name) to have a public hostname.

1
votes

GCE instances don't currently have a public DNS name for their external IP address. But there is now a gcloud compute config-ssh (docs) command that's a pretty good substitute.

This will insert Host blocks into your ~/.ssh/config file that contain the IP address and configuration for the host key.

Although this only helps with SSH (and SSH-based applications like Mosh and git+ssh), it does have a few advantages over DNS:

  • There is no caching/propagation delay as you might have with DNS

  • It pre-populates the right host key, and the host key is checked the right way even if the ephemeral IP address changes.

Example:

$ gcloud compute config-ssh
...
$ ssh myhost.us-west1-b.surly-koala-232