安装 Terraform: 地址
下载仓库代码模版本实验代码位于 task_ec2_s3connet 文件夹中。
变量文件 variables.tf
在上面的代码中,您将声明,aws_access_key,aws_secret_key和区域变量。
声明存储桶名称变量。
terraform.tfvars
在上面的代码中,您将定义变量的值。
main.tf
在上面的代码中,您将执行以下任务:
创建 Amazon S3 存储桶,并将index.html文件上传到新创建的 S3 存储桶中。
创建EC2 实例,EC2 实例类型为 t2.micro,以及 IAM 角色。
而且,在user_data部分中,您将安装 HTTPD 并从 S3 存储桶复制index.html文件
添加安全组,授权来自端口 80,端口22 和端口 443 的入站流量,以及来自所有端口的出站流量。
创建一个 IAM 角色,该角色使用案例为 EC2 实例
将 AWS 托管 IAM 策略AmazonSSMManagedInstanceCore 和 AmazonS3FullAccess 附加到上面创建的 IAM 角色。
此 IAM 策略将允许 EC2 实例在没有密钥对的情况下使用 SSH 会话管理器,并允许访问 S3 存储桶。
outputs.tf,将输出EC2 实例的公有 IP
使用 Terraform 部署
确保您这些文件在同一位置。
通过运行以下命令初始化 Terraform:
terraform init
注意:terraform init将检查所有插件依赖项并下载它们。
查看生成计划,请运行以下命令:
terraform plan
创建在 main.tf 配置文件中声明的所有资源 ,请运行以下命令:
terraform apply
您将能够看到将要创建的资源,通过输入 yes 批准所有资源的创建。
terraform apply 命令最多可能需要 2 分钟才能创建资源。
通过 AWS 控制台使用会话管理器将 SSH 连接到 EC2 实例
确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
通过单击 AWS 控制台顶部导航到 EC2。
左侧面板,单击"实例"。
注意:如果您没有看到 EC2 实例,或者看到 EC2 实例处于“正在运行”以外的任何其他状态。这意味着资源仍在创建中。请等待几分钟,直到环境准备就绪。
选择存在的 EC2 实例,然后单击连接按钮。
切换到“会话管理器”选项卡,然后单击“连接”按钮。
片刻之后,会话管理器已连接到 EC2 实例。
运行第一个命令以列出所有 S3 存储桶。并且,复制存储桶名称。
aws s3 ls
使用存储桶名称列出其对象。
aws s3 ls s3://<Bucket-Name>