Utilisation

Provider Terraform Hero Load Balancer (HLB)

Le Provider Terraform Hero Load Balancer (HLB) vous permet de gérer les ressources HLB dans vos configurations Terraform. Ce document couvre les ressources disponibles et leur utilisation.

Configuration du Provider

Pour utiliser le provider HLB, vous devez le configurer dans votre configuration Terraform. Voici un exemple de base :

terraform {
  required_providers {
    hlb = {
      source = "orographiclift/hlb"
      version = "~> 1.0"
    }
  }
}

provider "hlb" {
  # Configuration options
}

Ressources

hlb_load_balancer

La ressource hlb_load_balancer vous permet de créer et de gérer un Hero Load Balancer.

Exemple d’utilisation

resource "hlb_load_balancer" "example" {
  name        = "example-hlb"
  internal    = false
  subnets     = ["subnet-12345678", "subnet-87654321"]
  enable_http2 = true

  access_logs {
    bucket  = "my-logs-bucket"
    prefix  = "my-hlb-logs"
    enabled = true
  }

  # Optional: customize the launch configuration
  launch_config {
    instance_type      = "c7g.large"
    min_instance_count = 2
    target_cpu_usage   = 40
  }

  tags = {
    Environment = "production"
  }
}

output "load_balancer_dns" {
  value = hlb_load_balancer.example.dns_name
}

Référence des arguments

Les arguments suivants sont pris en charge :

  • name - (Facultatif) Nom du HLB. Doit être unique dans votre compte, maximum 32 caractères, uniquement alphanumérique et tirets.
  • name_prefix - (Facultatif) Crée un nom unique commençant par le préfixe spécifié. Incompatible avec name.
  • internal - (Facultatif) Si vrai, le HLB sera interne. Par défaut : false.
  • subnets - (Facultatif) Liste des IDs de sous-réseaux à attacher au HLB.
  • security_groups - (Facultatif) Liste des IDs de groupes de sécurité à assigner au HLB.
  • access_logs - (Facultatif) Un bloc Access Logs. Détails ci-dessous.
  • launch_config - (Facultatif) Un bloc Launch Configuration. Détails ci-dessous.
  • enable_deletion_protection - (Facultatif) Empêche la suppression via l’API. Par défaut : false.
  • enable_http2 - (Facultatif) Active HTTP/2. Par défaut : true.
  • idle_timeout - (Facultatif) Délai d’inactivité en secondes. Par défaut : 60.
  • ip_address_type - (Facultatif) Type d’adresse IP. Valeurs valides : ipv4, dualstack, dualstack-without-public-ipv4.
  • preserve_host_header - (Facultatif) Préserve l’en-tête Host. Par défaut : false.
  • enable_cross_zone_load_balancing - (Facultatif) Équilibrage de charge inter-zones. Valeurs : “full”, “avoid” (par défaut), “off”.
  • client_keep_alive - (Facultatif) Keep-alive client en secondes (60-604800). Par défaut : 3600.
  • xff_header_processing_mode - (Facultatif) Traitement de l’en-tête X-Forwarded-For. Valeurs : append, preserve, remove. Par défaut : append.
  • tags - (Facultatif) Une map de tags à assigner à la ressource.
Arguments des journaux d’accès

Pour access_logs, les attributs suivants sont pris en charge :

  • bucket - (Requis) Le nom du bucket S3 où stocker les journaux.
  • prefix - (Facultatif) Le préfixe du bucket S3. Les journaux sont stockés à la racine si non configuré.
  • enabled - (Facultatif) Booléen pour activer/désactiver les journaux d’accès. Par défaut : false.
Arguments de configuration de lancement

Pour launch_config, les attributs suivants sont pris en charge :

  • instance_type - (Facultatif) Le type d’instance EC2 à utiliser pour les nœuds d’équilibrage de charge. Si non spécifié, le backend choisira une valeur par défaut appropriée (actuellement c7g.medium).
  • min_instance_count - (Facultatif) Le nombre minimum d’instances à maintenir (entier, minimum 1). Ce nombre sera arrondi au multiple supérieur du nombre d’AZ. Si non spécifié, le backend choisira une valeur par défaut appropriée.
  • max_instance_count - (Facultatif) Le nombre maximum d’instances à maintenir (entier, minimum 1). Ce nombre sera arrondi au multiple inférieur du nombre d’AZ. Si non spécifié, le backend choisira 10 x min_instance_count.
  • target_cpu_usage - (Facultatif) Le pourcentage d’utilisation CPU cible (10-90) pour l’auto-scaling. Si non spécifié, le backend choisira une valeur par défaut appropriée.

Note : La configuration de lancement est entièrement Facultatifle. Si non spécifiée, le backend utilisera des valeurs par défaut appropriées pour tous les champs. Cela permet au backend d’ajuster automatiquement les valeurs par défaut pour tous les clients qui n’ont pas explicitement défini ces valeurs.

Référence des attributs

En plus des arguments ci-dessus, les attributs suivants sont exportés :

  • id - L’ID du HLB.
  • uri - L’URI complète du HLB.
  • dns_name - Le nom DNS du HLB (fourni par l’API).
  • zone_id - L’ID de la zone hébergée canonique du HLB.

hlb_listener_attachment

La ressource hlb_listener_attachment vous permet de créer et de gérer un écouteur pour votre Hero Load Balancer.

Exemple d’utilisation

resource "hlb_listener_attachment" "front_end" {
  load_balancer_id     = hlb_load_balancer.front_end.id
  port                 = 443
  protocol             = "HTTPS"
  target_group_arn     = aws_lb_target_group.front_end.arn
  certificate_secrets_arn = "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-certificate-secret-123abc"
  alpn_policy          = "HTTP2Preferred"
}

Référence des arguments

Les arguments suivants sont pris en charge :

  • load_balancer_id - (Requis) L’ID du HLB.
  • port - (Requis) Le port sur lequel l’équilibreur de charge écoute.
  • target_group_arn - (Requis) L’ARN du groupe cible vers lequel diriger le trafic.
  • overprovisioning_factor - (Facultatif) Lorsque enable_cross_zone_load_balancing est défini sur avoid (par défaut), permet à l’équilibreur de charge d’envoyer au maximum ‘overprovisioning_factor * la quantité moyenne de requêtes’ à une seule instance. S’applique au groupe cible, le comportement est indéfini si différentes valeurs sont attribuées à différents écouteurs avec le même groupe cible. Par défaut : 1.1
  • protocol - (Facultatif) Le protocole pour les connexions des clients vers l’équilibreur de charge. Valeurs valides : HTTP et HTTPS. Par défaut : HTTP.
  • alpn_policy - (Facultatif) La politique de négociation de protocole applicatif (ALPN). Valeurs valides : HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, et None.
  • certificate_secrets_arn - (Facultatif) ARN du secret dans AWS Secrets Manager contenant le certificat SSL du serveur. Requis si le protocole est HTTPS.

Référence des attributs

En plus des arguments ci-dessus, les attributs suivants sont exportés :

  • id - L’ID de l’écouteur.
  • uri - L’URI complète de l’écouteur.

Importation

Les ressources HLB peuvent être importées en utilisant l’id, par exemple :

$ terraform import hlb_load_balancer.test hlb-1234567890abcdef
$ terraform import hlb_listener_attachment.test lis-1234567890abcdef

Pour plus d’informations sur l’utilisation du Provider Terraform HLB, veuillez consulter notre documentation complète ou contacter notre équipe de support.