【问题标题】:How do I set the AWS peering connection DNS resolution options through CloudFormation?如何通过 CloudFormation 设置 AWS 对等连接 DNS 解析选项?
【发布时间】:2017-12-22 14:45:13
【问题描述】:

我有两个 VPC:

  • VPC1 持有我们的 RDS 实例。
  • VPC2 包含我们的 EC2 实例集群。

我们已成功设置 VPC 对等连接、路由和安全组以允许适当的通信。

为了从 RDS 实例的主机名中解析出适合 AZ 的本地 IP 地址,我们需要关注 these instructions 并设置 --requester-peering-connection-options AllowDnsResolutionFromRemoteVpc=true。

如果我通过 AWS 控制台或 AWS CLI 手动执行此操作,一切正常,但是我正在通过 CloudFormation 创建 EC2 实例集群,CloudFormation documentation 中缺少该选项。

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

我是在做一些明显的错误,还是只是亚马逊不完整?

谢谢!

【问题讨论】:

  • 您在创建 VPCPeeringConection "myVPCPeeringConnection" 时是否尝试将以下属性添加到云形成模板:{ "Type": "AWS::EC2::VPCPeeringConnection", "Properties": { “VpcId”:{“Ref”:“myVPC”},“PeerVpcId”:{“Ref”:“myPrivateVPC”},“AllowDnsResolutionFromRemoteVpc”:“true”,“RequesterPeeringConnectionOptions”:“Allow”}}
  • 我尝试了许多排列,这些排列来自 AWS CLI 的文档,包括 AllowDnsResolutionFromRemoteVpc 和 RequesterPeeringConnectionOptions。在所有情况下,堆栈都会通过以下方式回滚:“10:23:16 UTC+0100 CREATE_FAILED AWS::EC2::VPCPeeringConnection databasePeeringConnection Encountered unsupported property AllowDnsResolutionFromRemoteVpc”。如果有一个未记录的属性,我还没有在尝试错误组合时遇到它。
  • 然后有两个选项可以在实例启动时通过 init.d 脚本进行 API 调用,或者使用 Ansible 等自动化工具运行自定义命令来创建 VPC 对等
  • 这两个属性似乎不起作用。它看起来不像文档中支持的那样。您可能需要在 PC 设置中添加它。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

由于更新的频率,很多时候 AWS 功能在 CloudFormation 中不可用(ALB 目标 Lambda 曾经是) - 您最终必须创建一个自定义资源来管理它。还不错,只需确保您的 lambda 在所有场景(包括异常)中响应成功或失败,否则您的堆栈将“进行中”几个小时。

【讨论】:

  • 我最终搬到了 Terraform。
  • 到了 2019 年年底,它似乎仍然没有通过 CloudFormation 暴露出来......
  • 我知道,对吧!?整整 4 年,他们无法添加 2 个 true/false 可选参数来管理它。
猜你喜欢
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 2021-03-01
相关资源
最近更新 更多