如何使用 AWS CloudFormation 创建 Amazon VPC?

Posted

技术标签:

【中文标题】如何使用 AWS CloudFormation 创建 Amazon VPC?【英文标题】:How to create an Amazon VPC using AWS CloudFormation? 【发布时间】:2012-04-23 14:14:53 【问题描述】:

我目前正在为我的应用程序使用AWS CloudFormation。现在我能够自动缩放实例。现在,我想把所有东西都放在Amazon VPC 上。我们可以使用 CloudFormation 创建 VPC 吗?当我们在模板中有 ELB 时,我们如何通过 CloudFormation 管理弹性 IP 地址?我在AWS CloudFormation Sample Templates 上找到了一个与 VPC 相关的示例,但它仅将资源配置到现有 VPC 中,而不会在模板中创建新的。

【问题讨论】:

【参考方案1】:

更新

由于pointed out by Jeff 已经 (+1),AWS 刚刚于 2012 年 4 月 25 日宣布了AWS CloudFormation Support for Creating VPC Resources,涵盖了他们最初的 VPC 支持中缺失的部分:

我们很高兴地宣布 AWS CloudFormation 现在支持 创建 Amazon Virtual Private Cloud (VPC) 资源。 [...]

现在,您可以创建新的虚拟私有云 (VPC)、子网、 使用 CloudFormation 的网关、网络 ACL、路由和路由表 模板。 [...]

[...] CloudFormation 现在可以完全代表您的 VPC 配置 以及在 VPC。

有关更多详细信息和示例,请参阅 Jeff Barr 的介绍性帖子 AWS CloudFormation Can Now Create Virtual Private Clouds。特别是,AWS CloudFormation Sample Templates 还具有两个新的示例模板 [...] 以帮助您入门

VPC with a single EC2 Instance - 示例模板展示了如何创建 VPC 并添加具有弹性 IP 地址和安全组的 EC2 实例。 VPC with public and private subnets, an Elastic load Balancer, and an EC2 instance - 显示如何创建具有多个子网的 VPC 的示例模板。第一个子网是公共子网并包含负载均衡器,第二个子网是私有子网并在负载均衡器后面包含一个 EC2 实例。

初步回答

我认为不支持使用AWS CloudFormation 创建Amazon VPC。

虽然 AWS 刚刚在 2012 年 2 月 12 日宣布 AWS CloudFormation Support For VPC,但这仅涵盖现有资源类型:

所有资源类型,例如 Amazon EC2 实例、安全组和 弹性 IP 地址、弹性负载均衡器、Auto Scaling 组和 Amazon RDS 数据库实例现在可以部署到任何现有的 使用 CloudFormation 模板的 Amazon VPC。模板允许您 运行多层 Web 应用程序和企业应用程序 专用网络。借助 Amazon VPC 和 CloudFormation,您可以轻松 控制您要公开公开哪些资源以及哪些资源 应该是私有的。

Amazon VPC 明显不在此列表中,这与它也未列在受支持的AWS Resource Types Reference 中的事实相符。

【讨论】:

【参考方案2】:

现已支持:详情请参阅AWS CloudFormation Support for Creating VPC Resources。

【讨论】:

以上是关于如何使用 AWS CloudFormation 创建 Amazon VPC?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CloudFormation 模板更新现有 AWS API Gateway

AWS::CloudFormation::Init 它是如何工作的?

如何使用 AWS CloudFormation 在 AWS API Gateway 上应用安全策略?

如何使用 Cloudformation 在 AWS RestAPI 中创建嵌套资源路径?

如何使用 CloudFormation 创建具有集成 RDS 的 AWS Elasticbeanstalk 应用程序?

如何使用 aws cloudformation 模板在 aws cognito 用户池中设置所需属性?