如何通过 CloudFormation 设置 AWS 对等连接的 DNS 解析选项?

10

我有两个VPC:

  • VPC1用于容纳我们的RDS实例。
  • VPC2用于容纳我们的EC2实例群集。

我们已经成功建立了VPC对等连接、路由和安全组,以允许适当的通信。

为了从主机名解析出RDS实例AZ适当的本地IP地址,我们需要遵循这些说明并设置--requester-peering-connection-options AllowDnsResolutionFromRemoteVpc=true

如果我通过AWS控制台或AWS CLI手动执行此操作,则一切正常,但是我正在通过CloudFormation创建EC2实例群集,而该选项在CloudFormation文档中找不到。

这样做的效果是我的堆栈启动失败,因为服务本身无法连接到数据库。

我是否明显地做错了什么,还是亚马逊公司的文档不完整?

谢谢!


当您创建VPCPeeringConnection时,是否尝试将以下属性添加到云形成模板中? “myVPCPeeringConnection”:{ “类型”:“AWS :: EC2 :: VPCPeeringConnection”, “属性”:{ “VpcId”:{“Ref”:“myVPC”}, “PeerVpcId”:{“Ref”:“myPrivateVPC”}, “AllowDnsResolutionFromRemoteVpc”:“true”, “RequesterPeeringConnectionOptions”:“Allow” } } - Ali
我尝试了AWS CLI文档中翻译的许多排列组合,包括AllowDnsResolutionFromRemoteVpc和RequesterPeeringConnectionOptions。在所有情况下,堆栈都会回滚并显示类似于以下内容的消息:"10:23:16 UTC+0100 CREATE_FAILED AWS::EC2::VPCPeeringConnection databasePeeringConnection Encountered unsupported property AllowDnsResolutionFromRemoteVpc"。如果存在未记录的属性,我还没有通过试错组合找到它。 - Dan Hardiker
那么现在只剩下两个选项,一个是在实例启动时通过init.d脚本进行API调用,另一个是使用像Ansible这样的自动化工具运行自定义命令来创建VPC对等连接。 - Ali
这两个属性似乎不起作用。文档中似乎没有支持它的说明。你可能需要在PC设置中添加它。 - Joe
1个回答

3
由于更新的频繁,很多时候AWS的功能在CloudFormation中无法使用(如以前不能将ALB定向到Lambda),你最终得创建一个自定义资源进行管理。这不是太麻烦,只要确保你的Lambda在包括异常情况在内的所有场景下都能成功或失败响应,否则你的堆栈将处于“正在处理”状态数小时。

2
我最终转向了Terraform。 - Dan Hardiker
1
我们已经来到了2019年的尾声,但似乎仍然无法通过CloudFormation暴露出来... - tschumann
2
我知道,对吧!四年时间了,他们竟然不能添加两个可选的真/假参数来管理它。 - Aaron Medacco
1
到了2022年仍然没有暴露出来!唉,真是个大问题,没有理由让某些事情像这样荒废下去... - DrCord

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接