使用 Terraform 将 AWS VPC 作为基础架构和代码进行管理
使用 Terraform 将 AWS VPC 作为基础架构和代码进行管理
原文:https://medium.com/hackernoon/manage-aws-vpc-as-infrastructure-as-code-with-terraform-55f2bdb3de2a

在本教程中,我将向您展示如何使用地形在不到 1 分钟的时间内设置一个 VPC ,如下图所示:

上面的 VPC 拓扑是将要实现的内容的最佳演示:
- 互联网无法访问私有子网(包括进出)
- 公共子网是可访问的,所有流量(0.0.0.0/0)被直接路由到互联网网关
在我们开始之前,本演示中使用的所有代码都可以在我的 Github 中找到。
注意:我已经做了一个 教程 关于如何开始使用 Terraform 所以确保阅读它以获得更多细节。
1 —全局变量
该文件包含特定于环境的配置,如区域名称、CIDR 块和 AWS 凭证…
2 —配置 AWS 提供者
3 —创建一个 VPC
4 —创建子网
为了使公共子网可由互联网寻址,我们需要一个互联网网关:
5 —互联网网关
为了允许流量从公共子网通过 NAT 网关到达互联网,我们需要创建一个新的路由表。
6 —路由表
接下来,我们将为每个子网创建一个安全组。
7 —安全组
7 .1 —网络服务器 SG
这个安全组允许 HTTP/HTTPS 和 SSH 从任何地方连接。
7.2 —数据库 SG
这个安全组只从公共子网启用 MySQL 3306 端口、 ping 和 SSH 。
现在我们将部署 EC2 实例,但在此之前,我们需要创建一个密钥对,以便稍后通过 SSH 连接到实例。
8 —密钥对
9 — EC2 实例
9.1 —网络服务器实例
这个实例将扮演一个网络服务器的角色。因此,我们向实例用户数据传递一个 shell 脚本 install.sh ,它包含安装 Apache 服务器的命令:
9.2 —数据库实例
一旦定义了所有需要的模板,确保将 AWS 凭证变量设置为环境变量:
|导出 AWS_ACCESS_KEY_ID= "您的访问密钥 ID " |导出 AWS_SECRET_ACCESS_KEY= "您的秘密访问密钥"
注意:您可以始终使用您的根用户对任何事情都有访问权限,但是出于安全考虑,建议您只使用有限权限的用户帐户。所以使用 AWS IAM 创建一个新的。
要查看 terraform 计划如何创建资源类型“ terraform 计划”。要创建基础设施类型" terraform 应用":
这将调出 VPC ,以及所有必要的资源。现在,在您的 AWS 管理控制台 中,您应该看到创建的资源:

如果你点击子网菜单,你应该看到公共 & 私有子网:

同样适用于路由表:

以及互联网网关:

安全组也:

web 服务器安全组:

数据库安全组:

最后是 EC2 实例:

网络服务器实例:

数据库实例:

不要忘记通过键入" terraform destroy "来销毁不需要的资源:

