我已经阅读了我能找到的所有AWS文档,GoogleFoo没有任何结果。
我的情况是,我们有一个域名example.com,到目前为止,我们只将其用于公共记录。有一个托管Zone设置为Public。我现在想为私有记录创建一个子域,以便在我们的应用程序的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
对于Googlers试图"subsetting"一个公共主机区域,或使一个私人主机区域"fallback"或"extend" to public。读下去。
首先,R53是权威的,这意味着您必须提供精确的分辨率,因此使用不同BIND视图的常用方法将不起作用。另外,当主机区域名称重叠时,以私有区域为准。
其次,R53将根据"特异性"决定使用哪个主机区域。因此,当用户请求www.example.com
时,则一个名为www.example.com
的主机区域优先于另一个名为example.com
的主机区域。这是我们可以利用的东西。
遵循程序:
- 为您的公共DNS记录(例如
example.com
)创建一个公共主机区域,或者只是使用任何其他公共DNS记录并跳过此步骤 - 为每个具有本地/私有镜像/缓存(例如
www.example.com
)的子域名的创建一个私有主机区域- 为每个私有主机区域创建一个默认记录集("Name"字段为空),并将它们指向本地地址
- 将私有主机区域附加到所选VPC的
这样,如果您的机器请求www.example.com
,并且有一个私有主机区域匹配,它将返回本地地址,否则,它将退回到使用公共主机区域。
此解决方案的缺陷是R53按主机区域的数量向您收费,因此您将不得不支付更多的费用。而且这也有点俗气。否则,它消除了创建和管理自己的BIND服务器、同步公共记录等的复杂性。
您需要为私有区域配置一个不同的域。比如"example。internal"然后是"cache。example。internal"
cache.private.example.com将无法在当前设置中解析,因为它将查找example.com来解析该dns。还要注意,它只能在VPC内部解析。