我已阅读了我能找到的所有 AWS 文档。谷歌也没有取得任何成果。
我的情况是 - 我们有一个域名“example.com”,到目前为止仅用于公共记录。有一个托管区域设置为公共。现在,我想为私有记录创建一个子域,以便在我们的应用程序的 VPC 组内部使用(例如指向 ElastiCache 实例)。
我尝试创建“private.example.com”作为指向我们的 VPC 的私有托管区域。然后在其下创建“cache.private.example.com”作为记录。但并没有解决。
我很好奇是否可以以某种方式配置主域的子域?
example.com - Public
** app.example.com
private.example.com - Private
** cache.private.example.com - VPC
或
我还可以创建具有相同顶级域 example.com 的私有托管区域吗?我很紧张尝试这个,因为我不想影响申请。
example.com - Public
** app.example.com
example.com - Private
** cache.example.com - VPC'
对于尝试“子集化”公共主机区域,或将私有主机区域“回退”或“扩展”到公共区域的 Google 员工。继续阅读。
首先,R53是权威的,意味着你必须提供精确的分辨率,因此使用不同BIND视图的常见方法将不起作用。此外,当主机区域名称重叠时,以私有区域为准。
其次,R53会根据“特异性”来决定使用哪个主机区域。因此,当用户请求
www.example.com
时,名为 www.example.com
的主机区域优先于另一个名为 example.com
的主机区域。这是我们可以利用的。
遵循以下程序:
example.com
),或者仅使用任何其他公共 DNS 记录并跳过此步骤www.example.com
)这样,如果您的机器请求
www.example.com
,并且私有主机区域匹配,它将返回本地地址,否则,它将回退到使用公共主机区域。
此解决方案的陷阱是 R53 按主机区域的数量向您收费,因此您将需要支付更多费用。这也有点hacky。否则,它消除了创建和管理自己的 BIND 服务器、同步公共记录等的复杂性。
您需要为私有区域拥有不同的域。像“example.internal”这样的东西然后你可以有“cache.example.internal”
cache.private.example.com 在您当前的设置中不会解析,因为它将寻找 example.com 来解析该 dns。另请注意,它只会在 VPC 内部解析。