我在AWS的Route 53中设置了主域www.example.com
。
我想将subdomain1.example.com
指向Google Cloud,特别是指向在Google Compute Engine中运行的实例组。
这可能吗?
答案 0 :(得分:3)
是的,这是一种称为名称服务委托的良好设计实践。最好的方法是为GCP委派整个子域,因此我们将example.com和gcp.example.com域用作域和子域。
这样,Google会为您管理DNS,而不是您手动更新route53中的A和CNAME记录。
总体而言,这将采取以下步骤(1)在GCP中创建gcp.example.com
区域(2)获取gcp.example.com
的NS记录(3)将NS
委派给gcp.example.com
到Google Cloud NS,然后(4)在GCP Cloud DNS中创建资源级别的记录(例如,对于VM或appengine应用)。
(1)在GCP中创建区域
这可以在控制台中Network Services -> Cloud DNS
下或在Cloud Shell中完成。我喜欢外壳。
$ gcloud dns managed-zones create gcp-example --description="GCP Example Zone" \
--dns-name="gcp.example.com"
(2)获取新区域的NS记录
下面是一个示例-复制特定于您的NS的
gcloud dns managed-zones describe gcp-example |grep -A5 nameServers
nameServers:
- ns-cloud-d1.googledomains.com.
- ns-cloud-d2.googledomains.com.
- ns-cloud-d3.googledomains.com.
- ns-cloud-d4.googledomains.com.
(3)在AWS中添加委托NS记录
创建update.json(确保值记录正确):
{
"Comment": "CREATE/DELETE/UPSERT a record ",
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "gcp.example.com",
"Type": "NS",
"TTL": 300,
"ResourceRecords": [ {"Value" : "ns-cloud-d1.googledomains.com."}, {"Value": "ns-cloud-d2.googledomains.com."},
{"Value" : "ns-cloud-d3.googledomains.com."}, {"Value": "ns-cloud-d4.googledomains.com."}]
}}]
}
HOSTED_ZONE_ID=XXXXXX
aws route53 change-resource-record-sets --hosted-zone-id=${HOSTED_ZONE_ID} --change-batch=file://./update.json
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "CREATE/DELETE/UPSERT a record ",
"SubmittedAt": "2019-02-27T23:43:35.327Z",
"Id": "/change/XXXXXX"
}
}
(4)在GCP Cloud DNS中,在gcp.example.com
目前,您可以在GCP Cloud DNS中管理所有GCP dn。继续创建vm1.gcp.example.com
或appengine1.gcp.example.com