65 lines
1.1 KiB
HCL
65 lines
1.1 KiB
HCL
terraform {
|
|
required_version = ">= 1.0"
|
|
|
|
required_providers {
|
|
aws = {
|
|
source = "hashicorp/aws"
|
|
version = "~> 5.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "aws" {
|
|
region = var.aws_region
|
|
profile = var.aws_profile
|
|
|
|
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 ---
|
|
|
|
# --- Instance EC2 ---
|
|
resource "aws_instance" "server" {
|
|
ami = var.ami_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"
|
|
}
|
|
}
|