使用Terraform设置安全组并连接EC2实例进行HTTP连接
首先
因为我开始学习Terraform,所以我想把我所做的事情作为备忘录发表出来。
这是上次发布的续篇。
上次的发布中,我使用Terraform设置了IAM并通过会话管理器连接到了EC2。
这次,我将使用Terraform设置安全组以实现HTTP连接。
※因为可以通过会话管理器连接到EC2,所以提前安装并启动了nginx。
我們可以使用Terraform來定義安全群組的設定。
定义用于HTTP连接的安全组
定义安全组以便可以通过HTTP连接。
resource "aws_security_group" "test" {
name = "tf_test"
tags = {
Name = "tf_test"
}
}
resource "aws_security_group_rule" "ingress_http" {
type = "ingress"
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
security_group_id = aws_security_group.test.id
}
resource "aws_security_group_rule" "egress_all" {
type = "egress"
from_port = 0
to_port = 0
protocol = "all"
cidr_blocks = ["0.0.0.0/0"]
security_group_id = aws_security_group.test.id
}
将在EC2中定义的安全组进行设置。
在上次创建的ec2.tf文件中,添加之前定义的安全组,并允许HTTP连接。
resource "aws_instance" "test" {
ami = "ami-0404778e217f54308"
instance_type = "t3.micro"
iam_instance_profile = aws_iam_instance_profile.test.name
# 以下を追加
vpc_security_group_ids = [
aws_security_group.test.id
]
tags = {
Name = "tf_test"
}
}
使用Terraform添加定义的安全组并创建EC2。
执行Terraform的计划应用
与上一次相同,执行terraform的plan apply命令,在AWS上创建资源。
terraform plan
terraform apply
进行HTTP连接
如果没有问题,使用EC2的公共IP进行http连接,将显示nginx的页面。
删除已创建的资源
和上一次一样,执行 terraform 的 destroy 命令以删除 AWS 上的资源。
terraform destroy
最后
本次我們定義了一個安全組,用於使EC2能夠進行http連接。
雖然還有許多設定不足以進行實際運營,但最起碼,我們已經能夠通過Terraform實現對創建的EC2的http連接功能。
希望能繼續以這個進度,逐步添加能夠通過Terraform進行設定的AWS服務。