Files
but3-iac/terraform/modules/compute/main.tf

86 lines
1.8 KiB
HCL

# Définition du disque de démarrage
locals {
disk_config = {
frontend = 10
backend = 10
database = 20 # 20GB pour la base de données
}
}
# Instance Frontend (publique)
resource "google_compute_instance" "frontend_instance" {
project = var.project_id
name = "frontend-instance"
machine_type = var.instance_type
zone = var.zone
tags = ["frontend", "ssh"] # Tags pour les règles de firewall
boot_disk {
initialize_params {
image = var.image
size = local.disk_config.frontend
}
}
network_interface {
subnetwork = var.frontend_subnet_id
# Configuration IP publique
access_config {
# Laissez vide pour IP éphémère
}
}
metadata = {
enable-oslogin = "TRUE" # OS Login enabled
}
}
# Instance Backend (privée)
resource "google_compute_instance" "backend_instance" {
project = var.project_id
name = "backend-instance"
machine_type = var.instance_type
zone = var.zone
tags = ["backend", "ssh"]
boot_disk {
initialize_params {
image = var.image
size = local.disk_config.backend
}
}
network_interface {
subnetwork = var.backend_subnet_id
# PAS de bloc access_config pour n'avoir qu'une IP interne
}
metadata = {
enable-oslogin = "TRUE"
}
}
# Instance Database (privée)
resource "google_compute_instance" "database_instance" {
project = var.project_id
name = "database-instance"
machine_type = var.instance_type
zone = var.zone
tags = ["database", "ssh"]
boot_disk {
initialize_params {
image = var.image
size = local.disk_config.database
}
}
network_interface {
subnetwork = var.database_subnet_id
# PAS de bloc access_config pour n'avoir qu'une IP interne
}
metadata = {
enable-oslogin = "TRUE"
}
}