Multi-cloud et multi-region 25 min de lecture

Deploiement multi-region et multi-cloud

Multi-region avec alias de providers

Les alias de providers permettent de deployer dans plusieurs regions avec une seule configuration.

Configuration multi-region AWS

# Provider par defaut (region principale)
provider "aws" {
  region = "eu-west-1"
}

# Provider alias pour la region secondaire
provider "aws" {
  alias  = "us_east"
  region = "us-east-1"
}

# Ressource dans la region principale
resource "aws_s3_bucket" "primary" {
  bucket = "mon-app-primary"
}

# Ressource dans la region secondaire
resource "aws_s3_bucket" "replica" {
  provider = aws.us_east
  bucket   = "mon-app-replica"
}

# Replication entre regions
resource "aws_s3_bucket_replication_configuration" "repl" {
  bucket = aws_s3_bucket.primary.id
  role   = aws_iam_role.replication.arn

  rule {
    id     = "full-replication"
    status = "Enabled"

    destination {
      bucket        = aws_s3_bucket.replica.arn
      storage_class = "STANDARD"
    }
  }
}

Module multi-region

# Passer le provider au module
module "vpc_primary" {
  source = "./modules/vpc"
  providers = {
    aws = aws
  }
  cidr_block = "10.0.0.0/16"
}

module "vpc_secondary" {
  source = "./modules/vpc"
  providers = {
    aws = aws.us_east
  }
  cidr_block = "10.1.0.0/16"
}

Multi-cloud (AWS + GCP)

provider "aws" {
  region = "eu-west-1"
}

provider "google" {
  project = "mon-projet-gcp"
  region  = "europe-west1"
}

# CDN AWS pour le frontend
resource "aws_cloudfront_distribution" "cdn" {
  # ...
}

# Base de donnees GCP pour le backend
resource "google_sql_database_instance" "db" {
  name             = "mon-db"
  database_version = "POSTGRES_15"
  region           = "europe-west1"

  settings {
    tier = "db-f1-micro"
  }
}

Strategies de haute disponibilite

  • Active-Active — Trafic reparti entre les regions
  • Active-Passive — Region secondaire en standby (failover)
  • DNS failover — Route 53 / Cloud DNS pour basculer le trafic
Bonne pratique : Commencez par le multi-region avant le multi-cloud. Le multi-cloud ajoute une complexite significative et n'est justifie que pour des cas precis (vendor lock-in, best-of-breed).