使用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服務。

广告
将在 10 秒后关闭
bannerAds