Короче говоря, используя Terraform, я хочу
- Создание виртуальной машины в AWS
- Включите виртуальную машину в группу безопасности, которая разрешает порты 80, 443 и 22.
Выполнить пункт 1 было просто.
Для выполнения пункта 2 я понял, что:
- Сначала мне нужно было создать VPC. Это сработало.
- Затем мне понадобилась подсеть внутри виртуальной машины. Это сработало.
- Затем мне нужно было создать группы безопасности, связанные с VPC. Это сработало.
- Затем мне нужно было добавить идентификаторы группы безопасности VPC к моему aws_instance. ЭТА ЛИНИЯ ПРИЗЫВАЕТ ЕГО ПРОВЕРИТЬ
vpc_security_group_ids = ["${aws_security_group.allow_ssh.id},${aws_security_group.allow_web.id}"]
У меня есть следующий план Terraform:
# Provider Details
provider "aws" {
region = "us-east-1"
shared_credentials_file = "/Users/default/.aws/credentials"
profile = "my-profile"
}
# Main VPC
resource "aws_vpc" "vpc_main" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
tags {
Name = "Main VPC"
}
}
resource "aws_subnet" "public" {
vpc_id = "${aws_vpc.vpc_main.id}"
cidr_block = "10.0.0.1/16"
map_public_ip_on_launch = true
tags {
Name = "Public Subnet"
}
}
resource "aws_security_group" "allow_web" {
name = "allow-web-traffic"
description = "Allow all inbound/outbound traffic on 80 443"
vpc_id = "${aws_vpc.vpc_main.id}"
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_security_group" "allow_ssh" {
name = "allow-ssh-traffic"
description = "Allow ssh traffic on 22"
vpc_id = "${aws_vpc.vpc_main.id}"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_instance" "proxy_server" {
ami = "ami-6871a115" # RHEL 7.5 HVM SSD
instance_type = "t2.micro"
key_name = "cwood_sa"
vpc_security_group_ids = ["${aws_security_group.allow_ssh.id},${aws_security_group.allow_web.id}"] # this breaks it
subnet_id = "${aws_subnet.public.id}"
}
Получившаяся ошибка.
* aws_instance.proxy_server: Error launching source instance: InvalidGroup.NotFound: The security group 'sg-063c2b4b4836f18aa,sg-07e562845b70bf125' does not exist in VPC 'vpc-0397460a8f633574c'
status code: 400, request id: dae8b8e8-8259-4ef1-b9c2-a8b782f96235
Но если я загляну в Консоль AWS, эти группы безопасности связаны с VPC.
Я предполагаю, что где-то здесь делаю фундаментальную ошибку и мне нужна помощь.