![](/img/trans.png)
[英]Getting issue while trying to access internet from private-subnet instance via nat intance in aws?
[英]Terraform AWS How to create count instance that every intance get self subnet?
我創建了兩個子網:
resource "aws_subnet" "ws_net_public-a" {
vpc_id = aws_vpc.ws_net.id
cidr_block = "10.0.10.0/24"
map_public_ip_on_launch = true
availability_zone = data.aws_availability_zones.available.names[0]
tags = {
"Name" = "WS Public-A"
}
}
resource "aws_subnet" "ws_net_public-b" {
vpc_id = aws_vpc.ws_net.id
cidr_block = "10.0.20.0/24"
map_public_ip_on_launch = true
availability_zone = data.aws_availability_zones.available.names[1]
tags = {
"Name" = "WS Public-B"
}
}
並用'count'創建兩個實例(我知道沒有'count'很簡單,但是用'count'來做):
resource "aws_instance" "webserver" {
count = 2
ami = lookup(var.ec2_ami, var.region)
instance_type = lookup(var.instance_type, var.region)
root_block_device {
volume_type = "gp2"
volume_size = 8
encrypted = false
}
tags = {
Name = "ws-${count.index}"
}
// key_name = var.key_name
vpc_security_group_ids = [aws_security_group.ws_sg.id]
subnet_id = format("%s/%s/%s",aws_subnet.ws_net_public-,var.zones[count.index],".id")
}
我收到錯誤:“未在根模塊中聲明托管資源“aws_subnet”“ws_net_public”。 這是正確的。 但是如何解決呢? )
您必須在兩個地方都使用count
元參數,即在子網和實例代碼中。 因此,您必須進行的更改是:
resource "aws_subnet" "ws_net_public" {
count = 2
vpc_id = aws_vpc.ws_net.id
cidr_block = "10.0.${count.index+1}0.0/24"
map_public_ip_on_launch = true
availability_zone = data.aws_availability_zones.available.names[count.index]
tags = {
"Name" = "WS Public-${count.index}"
}
}
resource "aws_instance" "webserver" {
count = 2
ami = lookup(var.ec2_ami, var.region)
instance_type = lookup(var.instance_type, var.region)
root_block_device {
volume_type = "gp2"
volume_size = 8
encrypted = false
}
tags = {
Name = "ws-${count.index}"
}
// key_name = var.key_name
vpc_security_group_ids = [aws_security_group.ws_sg.id]
subnet_id = aws_subnet.ws_net_public[count.index].id
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.