使用Terraform在AWS上构建Web服务器,配置使之能够操作AWS资源
目标
创建一个EC2实例,并在其中安装Nginx,目标是通过浏览器能够确认默认页面。通过使用Terraform将基础架构进行代码化,可以实现与手动操作相比,具有更高的再现性、可重用性和速度。此相关代码请参阅GitHub链接。
步驟
-
- 设置Terraform以操作AWS资源
-
- 安装Terraform
-
- 尝试使用Terraform启动EC2服务器
-
- 配置网络(VPC、子网、路由表、Internet网关)
-
- 设置安全组(防火墙)
-
- 启动用于Web服务器的EC2
- 在Web服务器启动时安装Web服务器软件的设置
这次的目标达成了
将Terraform配置为能够操作AWS资源
步骤0. 安装AWS CLI
AWS CLI的安装
在Terraform中,可以通过命令对AWS资源进行操作,但需要通过AWS CLI来实现。
版本2没有特别的问题。
要确认安装是否成功,请在命令提示符或终端中运行以下命令。如果显示版本号,则表示安装成功。
$ aws --version
aws-cli/2.11.18 Python/3.11.3 Windows/10 exe/AMD64 prompt/off
步骤1:在AWS上创建默认IAM用户的访问密钥。
创建用于登录等的默认用户访问密钥。
在 AWS 控制台上访问
IAM > 用户 > 默认用户 > 创建访问密钥
步骤2:在AWS上创建适用于Terraform的IAM用户
创建一个能够通过Terraform对AWS进行操作的IAM用户。
可以操作AWS的方式是使用AWS资源或IAM用户(虽然根用户也可以,但不推荐)。
因此需要创建用于Terraform的IAM用户。
第三步:创建Terraform使用的IAM用户访问密钥(参考步骤一)。
通过Terraform创建IAM用户的访问密钥。
通过在Terraform中设置该访问密钥,实现对AWS的操作。
请访问AWS控制台
IAM > 用户 > 创建的用户2 > 创建访问密钥
记住所创建的访问密钥ID和密钥访问密钥(还可以下载CSV文件,以备不时之需)。
步骤四:将默认用户的访问密钥配置到AWS CLI中。
$ aws configure
AWS Access Key ID [None]: [ここにデフォルトユーザのアクセスキーを入力]
AWS Secret Access Key [None]: [ここにデフォルトユーザのシークレットキーを入力]
Default region name[None]: ap-northeast-1
Default output format [None]: json
步骤5:在AWS CLI中配置Terraform使用的IAM用户访问密钥。
$ aws configure --profile terraform
AWS Access Key ID [None]: [ここにTerraform用IAMユーザのアクセスキーを入力]
AWS Secret Access Key [None]: [ここにTerraform用IAMユーザのシークレットキーを入力]
Default region name[None]: ap-northeast-1
Default output format [None]: json
步骤六
请确认以下文件中是否反映了访问密钥的设置:
~/.aws/credentials
[default]
aws_access_key_id = [デフォルトユーザのアクセスキー]
aws_secret_access_key = [デフォルトユーザのシークレットキー]
[terraform]
aws_access_key_id = [Terraform用IAMユーザのアクセスキー]
aws_secret_access_key = [Terraform用IAMユーザのシークレットキー]