# 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" } }