terraform { required_version = ">= 1.0" required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = var.aws_region default_tags { tags = { Owner = var.owner CourseId = var.course_id } } } # --- VPC --- resource "aws_vpc" "main" { cidr_block = var.vpc_cidr enable_dns_support = true enable_dns_hostnames = true tags = { Name = "${var.trigramme}-vpc" } } # --- Sous-reseaux --- resource "aws_subnet" "subnets" { count = length(var.subnet_cidrs) vpc_id = aws_vpc.main.id cidr_block = var.subnet_cidrs[count.index] availability_zone = var.availability_zones[count.index] tags = { Name = "${var.trigramme}-subnet-${count.index + 1}" } } # --- AMI Amazon Linux 2023 (derniere version) --- data "aws_ami" "amazon_linux" { most_recent = true owners = ["amazon"] filter { name = "name" values = ["al2023-ami-*-x86_64"] } filter { name = "virtualization-type" values = ["hvm"] } } # --- Instance EC2 --- resource "aws_instance" "server" { ami = data.aws_ami.amazon_linux.id instance_type = var.instance_type subnet_id = aws_subnet.subnets[0].id root_block_device { volume_size = var.root_volume_size volume_type = "gp3" } tags = { Name = "${var.trigramme}-instance" } }