Terraform AWS-EC2 grup keamanan
Saya cukup sibuk mencoba mempelajari lebih lanjut tentang Terraform tetapi saya mengalami satu masalah yang tidak saya ketahui cara mengatasi / memperbaikinya.
Masalahnya adalah sebagai berikut, dalam skrip saya, saya membuat instans ec2 (AWS) dengan beberapa hal sampingan seperti en EIP dan grup keamanan dari modul, yang semuanya berfungsi dengan baik. Tetapi saya tidak tahu cara memasang grup keamanan ke mesin, sekarang sedang dibuat dan hanya itu.
Kodenya adalah sebagai berikut:
data "aws_ami" "latest" {
most_recent = true
owners = [ "self"]
filter {
name = "name"
values = [ lookup(var.default_ami, var.ami) ]
}
}
module "aws_security_group" {
source = "./modules/services/Security groups/"
server_port = 443
}
resource "aws_instance" "test-ec2deployment" {
ami = data.aws_ami.latest.id
instance_type = var.instance_type
subnet_id = var.subnet_id
availability_zone = var.availability_zone
associate_public_ip_address = var.public_ip
root_block_device {
volume_type = "gp2"
volume_size = 60
delete_on_termination = true
}
tags = {
Name = "Testserver2viaTerraform"
}
}
resource "aws_eip" "ip" {
instance = aws_instance.test-ec2deployment.id
}
resource "aws_eip" "example" {
vpc = true
}
Di atas adalah file utama dan saya memuat modul berikut:
resource "aws_security_group" "my-webserver" {
name = "webserver"
description = "Allow HTTP from Anywhere"
vpc_id = "vpc-"
ingress {
from_port = 80
to_port = 80
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"]
}
tags = {
Name = "my-webserver"
Site = "my-web-site"
}
}
Langkah terakhir adalah memasang grup keamanan ke mesin tetapi sekali lagi, tidak ada petunjuk tentang cara melakukannya. Saya telah membaca beberapa dokumen dan mencoba google tetapi saya tidak dapat menemukan jawabannya atau jawabannya tidak berhasil untuk saya. Jadi semoga kalian bisa membantu saya lebih jauh.
Terima kasih atas waktu Anda, sangat kami hargai!
Jawaban
Dalam modul aws_security_group Anda perlu mengeluarkan ID grup keamanan dengan menambahkan yang berikut ini di ./modules/services/Security groups // main.tf
output "securitygroup_id" {
value = aws_security_group.my-webserver.id
}
lalu di file tf utama Anda lampirkan grup keamanan ke instance Anda seperti ini:
resource "aws_network_interface_sg_attachment" "sg_attachment" {
security_group_id = module.aws_security_group.securitygroup_id
network_interface_id = aws_instance.test-ec2deployment.primary_network_interface_id
}