我正在从 Microsoft Azure 迁移到 Google Cloud,我希望能够公开访问我的一台虚拟机,而不是myapp.uswest.cloudapp.google.com
其外部静态 IP 地址。我希望有人能告诉我我是否在设置中遗漏了什么,以及我对所需内容的理解是否正确。
我进入 Google Cloud DNS 并创建了一个 DNS 名称为 的区域,uswest.cloudapp.google.com
并将其设为公共区域,以便可以公开访问。然后我创建了一个 A 记录,其值是我的虚拟机的外部 IP 地址,并将该 A 记录的 DNS 名称设置为myapp.uswest.cloudapp.google.com
。
此时,我是否只需要等待 DNS 传播,还是我遗漏了什么?
答案1
只需为遇到同样问题的人发布此答案,以防万一stackoverflow 答案被删除。
您配置的方式不起作用,因为此名称 (myapp.uswest.cloudapp.google.com.) 不会被递归解析。原因在于它不会在“google.com.”下为“uswest.cloudapp.google.com”区域创建任何记录。
GCP 具有Compute Engine 虚拟机的内部 FQDN用于同一 VPC 网络中实例之间的通信,可通过指定目标实例的完全限定 DNS 名称 (FQDN) 来将数据包发送到实例。VPC 网络会自动将该名称解析为实例的内部 IP 地址。但是,无法在外部使用它。
对于外部通信,您必须拥有自己的域(如果您还没有域,可以注册一个)并创建一个可以解析虚拟机外部 IP 的 A 记录。但是,在这种情况下,您可以使用云端 DNS为您注册的域名创建一个区域。
答案2
...并创建一个可以解析虚拟机外部 IP 的 A 记录
这不是很好,因为免费的“临时”地址将来可能会改变。
微软做得更好 - 对于 Azure 中的动态 VM IP 地址,您可以拥有一个免费的永久 DNS 名称(例如 myapp567.azurewebsites.net),然后只需创建一个指向您自己的域的 CNAME(例如 myapp.mydomain.com)。