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 avecname
.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 xmin_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) Lorsqueenable_cross_zone_load_balancing
est défini suravoid
(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
etHTTPS
. Par défaut :HTTP
.alpn_policy
- (Facultatif) La politique de négociation de protocole applicatif (ALPN). Valeurs valides :HTTP1Only
,HTTP2Only
,HTTP2Optional
,HTTP2Preferred
, etNone
.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.