Utilizzo
Provider Terraform Hero Load Balancer (HLB)
Il Provider Terraform Hero Load Balancer (HLB) ti permette di gestire le risorse HLB nelle tue configurazioni Terraform. Questo documento copre le risorse disponibili e il loro utilizzo.
Configurazione del Provider
Per utilizzare il provider HLB, devi configurarlo nella tua configurazione Terraform. Ecco un esempio di base:
terraform {
required_providers {
hlb = {
source = "orographiclift/hlb"
version = "~> 1.0"
}
}
}
provider "hlb" {
# Opzioni di configurazione
}
Risorse
hlb_load_balancer
La risorsa hlb_load_balancer
ti permette di creare e gestire un Hero Load Balancer.
Esempio di utilizzo
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
}
# Facoltativo: personalizza la configurazione di lancio
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
}
Riferimento degli argomenti
Sono supportati i seguenti argomenti:
name
- (Facoltativo) Nome dell’HLB. Deve essere unico nel tuo account, massimo 32 caratteri, solo alfanumerici e trattini.name_prefix
- (Facoltativo) Crea un nome unico che inizia con il prefisso specificato. Incompatibile conname
.internal
- (Facoltativo) Se vero, l’HLB sarà interno. Predefinito: false.subnets
- (Facoltativo) Lista degli ID delle subnet da collegare all’HLB.security_groups
- (Facoltativo) Lista degli ID dei gruppi di sicurezza da assegnare all’HLB.access_logs
- (Facoltativo) Un blocco Access Logs. Dettagli di seguito.launch_config
- (Facoltativo) Un blocco Launch Configuration. Dettagli di seguito.enable_deletion_protection
- (Facoltativo) Impedisce la cancellazione tramite API. Predefinito: false.enable_http2
- (Facoltativo) Abilita HTTP/2. Predefinito: true.idle_timeout
- (Facoltativo) Timeout di inattività in secondi. Predefinito: 60.ip_address_type
- (Facoltativo) Tipo di indirizzo IP. Valori validi:ipv4
,dualstack
,dualstack-without-public-ipv4
.preserve_host_header
- (Facoltativo) Preserva l’header Host. Predefinito: false.enable_cross_zone_load_balancing
- (Facoltativo) Bilanciamento del carico tra zone. Valori: “full”, “avoid” (predefinito), “off”.client_keep_alive
- (Facoltativo) Keep-alive client in secondi (60-604800). Predefinito: 3600.xff_header_processing_mode
- (Facoltativo) Elaborazione dell’header X-Forwarded-For. Valori:append
,preserve
,remove
. Predefinito:append
.tags
- (Facoltativo) Una mappa di tag da assegnare alla risorsa.
Argomenti dei log di accesso
Per access_logs
, sono supportati i seguenti attributi:
bucket
- (Necessario) Il nome del bucket S3 dove memorizzare i log.prefix
- (Facoltativo) Il prefisso del bucket S3. I log vengono memorizzati nella radice se non configurato.enabled
- (Facoltativo) Booleano per abilitare/disabilitare i log di accesso. Predefinito: false.
Argomenti della configurazione di lancio
Per launch_config
, sono supportati i seguenti attributi:
instance_type
- (Facoltativo) Il tipo di istanza EC2 da utilizzare per i nodi di bilanciamento del carico. Se non specificato, il backend sceglierà un valore predefinito appropriato (attualmente c7g.medium).min_instance_count
- (Facoltativo) Il numero minimo di istanze da mantenere (intero, minimo 1). Questo numero verrà arrotondato al multiplo superiore del numero di AZ. Se non specificato, il backend sceglierà un valore predefinito appropriato.max_instance_count
- (Facoltativo) Il numero massimo di istanze da mantenere (intero, minimo 1). Questo numero verrà arrotondato al multiplo inferiore del numero di AZ. Se non specificato, il backend sceglierà 10 xmin_instance_count
.target_cpu_usage
- (Facoltativo) La percentuale di utilizzo CPU target (10-90) per l’auto-scaling. Se non specificato, il backend sceglierà un valore predefinito appropriato.
Nota: La configurazione di lancio è completamente Facoltativo. Se non specificata, il backend utilizzerà valori predefiniti appropriati per tutti i campi. Questo permette al backend di regolare automaticamente i valori predefiniti per tutti i clienti che non hanno esplicitamente definito questi valori.
Riferimento degli attributi
Oltre agli argomenti sopra, vengono esportati i seguenti attributi:
id
- L’ID dell’HLB.uri
- L’URI completo dell’HLB.dns_name
- Il nome DNS dell’HLB (fornito dall’API).zone_id
- L’ID della zona ospitata canonica dell’HLB.
hlb_listener_attachment
La risorsa hlb_listener_attachment
ti permette di creare e gestire un listener per il tuo Hero Load Balancer.
Esempio di utilizzo
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"
}
Riferimento degli argomenti
Sono supportati i seguenti argomenti:
load_balancer_id
- (Necessario) L’ID dell’HLB.port
- (Necessario) La porta su cui il load balancer ascolta.target_group_arn
- (Necessario) L’ARN del gruppo target verso cui indirizzare il traffico.overprovisioning_factor
- (Facoltativo) Quandoenable_cross_zone_load_balancing
è impostato suavoid
(predefinito), permette al load balancer di inviare al massimo ‘overprovisioning_factor
* la quantità media di richieste’ a una singola istanza. Si applica al gruppo target, il comportamento è indefinito se vengono assegnati valori diversi a diversi listener con lo stesso gruppo target. Predefinito:1.1
protocol
- (Facoltativo) Il protocollo per le connessioni dei client verso il load balancer. Valori validi:HTTP
eHTTPS
. Predefinito:HTTP
.alpn_policy
- (Facoltativo) La policy di negoziazione del protocollo applicativo (ALPN). Valori validi:HTTP1Only
,HTTP2Only
,HTTP2Optional
,HTTP2Preferred
, eNone
.certificate_secrets_arn
- (Facoltativo) ARN del segreto in AWS Secrets Manager contenente il certificato SSL del server. Necessario se il protocollo è HTTPS.
Riferimento degli attributi
Oltre agli argomenti sopra, vengono esportati i seguenti attributi:
id
- L’ID del listener.uri
- L’URI completo del listener.
Importazione
Le risorse HLB possono essere importate utilizzando l’id
, per esempio:
$ terraform import hlb_load_balancer.test hlb-1234567890abcdef
$ terraform import hlb_listener_attachment.test lis-1234567890abcdef
Per ulteriori informazioni sull’utilizzo del Provider Terraform HLB, consulta la nostra documentazione completa o contatta il nostro team di supporto.