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).