testing/infra/terraform/modules/benchmark_executor/instance.tf (42 lines of code) (raw):
locals {
ec2_tags = {
name = "${var.user_name}-worker"
managed-by = "terraform"
owner = var.user_name
}
}
data "aws_ami" "worker_ami" {
owners = ["amazon"]
most_recent = true
filter {
name = "name"
values = ["amzn2-ami-hvm-*-x86_64-ebs"]
}
}
data "aws_subnets" "public_subnets" {
filter {
name = "vpc-id"
values = [var.vpc_id]
}
}
data "aws_security_group" "security_group" {
vpc_id = var.vpc_id
name = "default"
}
module "ec2_instance" {
source = "terraform-aws-modules/ec2-instance/aws"
version = "3.5.0"
ami = data.aws_ami.worker_ami.id
instance_type = var.instance_type
monitoring = false
vpc_security_group_ids = [data.aws_security_group.security_group.id]
subnet_id = data.aws_subnets.public_subnets.ids[0]
associate_public_ip_address = true
key_name = aws_key_pair.worker.id
tags = merge(var.tags, local.ec2_tags)
}
resource "aws_key_pair" "worker" {
key_name = "${var.user_name}_worker_key"
public_key = file(var.public_key)
tags = merge(var.tags, local.ec2_tags)
}