首页 > 解决方案 > terraform 模块 ec2 和 vpc AWS

问题描述

我对如何在 terraform 中使用模块有疑问。请参阅下面我的代码。

module "aws_vpc"{
  source = "../modules/vpc"
  vpc_cidr_block = "192.168.0.0/16"
  name_cidr = "ec2-eks"
  name_subnet = "ec2-eks-subnet"
  subnet_cidr = ["192.168.1.0/25"]
}
module "ec2-eks" {
  source = "../modules/ec2"
  ami_id = "ami-07c8bc5c1ce9598c3"
  subnet_id = module.aws_vpc.aws_subnet[0]
  count_server = 1
}
output "aws_vpc" {
  value = module.aws_vpc.aws_subnet[0]
}

我正在创建一个 vpc,并希望下一步通过我创建的子网附加 ec2。但默认情况下 VPC 附加了 terraform。我需要做什么才能将 ec2 附加到我的 vpc(子网)?谢谢你的回答

标签: amazon-web-servicesamazon-ec2moduleterraformamazon-vpc

解决方案


我需要做什么才能将 ec2 附加到我的 vpc(子网)?

aws_instance具有subnet_id属性。因此,要将您的实例放置在给定的子网中,您必须设置subnet_id.

由于您使用模块来创建您的aws_vpc,因此该模块也可能会输出子网 ID。由于缺乏模块的详细信息,很难提供准确的答案,但在一般情况下,您会按照以下方式做一些事情(示例):

resource "aws_instance" "web" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"

  subnet_id = module.aws_vpc.subnet_id

  tags = {
    Name = "HelloWorld"
  }
}

显然,以上取决于您的模块的实现。


推荐阅读