使用 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/HTTPSSSH任何地方连接。

7.2 —数据库 SG

这个安全组只从公共子网启用 MySQL 3306 端口、 pingSSH

现在我们将部署 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 "来销毁不需要的资源:


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除