HUAWEI CLOUD ELB → STACKIT · HANDLEIDING
Huawei Cloud ELB naar STACKIT load balancing, in de praktijk
Deze handleiding laat een kleine Huawei Cloud-omgeving met één shared en één dedicated load balancer door StackToIT lopen en leest wat eruit komt. De shared load balancer wordt gekoppeld aan de STACKIT Network Load Balancer als RECONFIGURE. De dedicated load balancer laat de run aan u over als MANUAL_REVIEW, met de Application Load Balancer als kandidaat. Listeners, pools, members en monitors worden in deze build helemaal niet beoordeeld, en daar zit de echte beslissing: layer 4 of layer 7, en wie TLS beëindigt. De onderstaande secties tonen de invoer, het commando, de uitvoer en wat u aanpast voordat u iets bouwt.
Stap 1: het commando en het variabelenbestand
De demo-omgeving heeft twaalf resources in één main.tf: een VPC, een subnet, een security group, twee servers, een shared load balancer met listener, pool, members en monitor, en een dedicated load balancer met listener en pool. De dedicated load balancer leest twee flavor-ID's uit variabelen zonder standaardwaarde. Plaatshouderwaarden staan in een variabelenbestand; de twee certificaat-ID's van de listeners in main.tf zijn ook plaatshouders. Gebruik uw eigen ID's.
stacktoit assess ./edge-terraform --var-file ./demo.tfvarsl4_flavor_id = "l4-flavor-placeholder"
l7_flavor_id = "l7-flavor-placeholder"Er verbindt niets met Huawei Cloud
StackToIT leest de Terraform-code en het variabelenbestand. Er wordt geen Huawei Cloud-account geopend.
De uitvoermap
assessment.json, engineering/architect-report.md, migration/technical-sequencing.md, execution/manual/actions.md en index.html zijn de bestanden die u hierna leest.
Stap 2: wat een ontbrekende variabele doet
Dezelfde omgeving, één keer zonder het variabelenbestand en één keer ermee. Zonder het bestand meldt de run de zichtbaarheid van de bron als Required input missing en noemt de twee variabelen zonder waarde (var.l4_flavor_id, var.l7_flavor_id); met het bestand is de zichtbaarheid Complete.
Drie eenheden zonder concept
Zonder waarden voor l4_flavor_id en l7_flavor_id hebben de dedicated load balancer en de twee eenheden die ervan afhangen geen concept, omdat een invoer die de bron nodig heeft niet in het pakket zit. Ze krijgen ook geen golf.
In beide gevallen twaalf eenheden
Het aantal eenheden en de klassen veranderen niet. De variabelen bepalen hoe volledig het beeld is en welke eenheden in golven kunnen worden geordend.
Stap 3: de shared load balancer
Links de drie blokken uit de invoer die de openbare webingang vormen (de members en de monitor staan in hetzelfde bestand), rechts het resultaat dat de run ervoor vastlegde: een fragment van assessment.json.
resource "huaweicloud_lb_loadbalancer" "web" {
name = "edge-web"
vip_subnet_id = huaweicloud_vpc_subnet.app.ipv4_subnet_id
}
resource "huaweicloud_lb_listener" "https" {
name = "edge-web-https"
protocol = "TERMINATED_HTTPS"
protocol_port = 443
default_tls_container_ref = "web-certificate-id-placeholder"
loadbalancer_id = huaweicloud_lb_loadbalancer.web.id
}
resource "huaweicloud_lb_pool" "web" {
name = "edge-web-pool"
protocol = "HTTP"
lb_method = "ROUND_ROBIN"
listener_id = huaweicloud_lb_listener.https.id
}[
{
"id": "huaweicloud_lb_loadbalancer.web",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Network Load Balancer"
},
"reason": "A shared load balancer becomes a STACKIT Network Load Balancer. Listeners and backends are rewritten, and the public address changes."
}
},
{
"id": "huaweicloud_lb_listener.https",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_lb_listener is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "huaweicloud_lb_pool.web",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_lb_pool is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
}
]De balancer wordt gekoppeld
Een shared load balancer wordt een STACKIT Network Load Balancer, RECONFIGURE met zekerheidsniveau MEDIUM. Listeners en backends worden herschreven en het publieke adres verandert.
De listener en pool niet
huaweicloud_lb_listener, lb_pool, lb_member en lb_monitor staan niet in de kennisbankcatalogus van deze build. Elk is MANUAL_REVIEW met zekerheidsniveau LOW en er wordt niets van beoordeeld of als concept geschreven.
De HTTPS-listener is het signaal
Poort 443 met HTTPS betekent dat TLS op de balancer eindigt. De Network Load Balancer werkt uitsluitend op layer 4, dus deze listener wijst naar een Application Load Balancer. De run kan dat niet zien, omdat de run de listener niet leest.
Stap 4: de dedicated load balancer
De dedicated balancer in dezelfde opzet. De flavor-ID's komen uit het variabelenbestand van stap 1.
resource "huaweicloud_elb_loadbalancer" "api" {
name = "edge-api"
vpc_id = huaweicloud_vpc.main.id
ipv4_subnet_id = huaweicloud_vpc_subnet.app.ipv4_subnet_id
l4_flavor_id = var.l4_flavor_id
l7_flavor_id = var.l7_flavor_id
availability_zone = ["eu-west-101a", "eu-west-101b"]
}
resource "huaweicloud_elb_listener" "api" {
name = "edge-api-https"
protocol = "HTTPS"
protocol_port = 8443
server_certificate = "api-certificate-id-placeholder"
loadbalancer_id = huaweicloud_elb_loadbalancer.api.id
}
resource "huaweicloud_elb_pool" "api" {
name = "edge-api-pool"
protocol = "HTTP"
lb_method = "LEAST_CONNECTIONS"
listener_id = huaweicloud_elb_listener.api.id
}[
{
"id": "huaweicloud_elb_loadbalancer.api",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"target": {
"service": "STACKIT Application Load Balancer"
},
"reason": "A dedicated ELB can serve layer 4 and layer 7. Choose a STACKIT Application or Network Load Balancer from its listeners, and rewrite them."
}
},
{
"id": "huaweicloud_elb_listener.api",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_elb_listener is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "huaweicloud_elb_pool.api",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_elb_pool is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
}
]Kandidaat, geen beslissing
De run noemt de STACKIT Application Load Balancer als kandidaat en deelt de eenheid in als MANUAL_REVIEW: een dedicated ELB kan layer 4 en layer 7 bedienen, dus de keuze hangt af van de listeners.
Zes instellingen voor u
Availability zones, subnet, beide flavors, naam en nog één instelling staan vermeld als kritieke instellingen die aan de architect zijn overgelaten.
Stap 5: de volgorde die de run voorstelt
Golf 3 tot en met 6 van migration/technical-sequencing.md, zoals geschreven. Golf 1 bevat de VPC en de security group, golf 2 het subnet.
## Wave 3 — 3 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_compute_instance.app` | RECONFIGURE / MEDIUM | STACKIT Compute Engine |
| `huaweicloud_elb_loadbalancer.api` | MANUAL_REVIEW / LOW | STACKIT Application Load Balancer |
| `huaweicloud_lb_loadbalancer.web` | RECONFIGURE / MEDIUM | STACKIT Network Load Balancer |
## Wave 4 — 2 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_elb_listener.api` | MANUAL_REVIEW / LOW | — |
| `huaweicloud_lb_listener.https` | MANUAL_REVIEW / LOW | — |
## Wave 5 — 2 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_elb_pool.api` | MANUAL_REVIEW / LOW | — |
| `huaweicloud_lb_pool.web` | MANUAL_REVIEW / LOW | — |
## Wave 6 — 2 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_lb_member.web` | MANUAL_REVIEW / LOW | — |
| `huaweicloud_lb_monitor.web` | MANUAL_REVIEW / LOW | — |
## Cutover (decision support — performed by the customer)
No cutover facts: the scan and the draft established no DNS record set whose value the draft re-binds to a generated address, no public address re-binding, no DNS record unit, no certificate unit and no open cutover decision. That is not a statement that nothing has to be cut over: a name, an address or a certificate outside the scanned source is not seen, and a unit that exists only if OpenTofu decides so at plan time is not read here. StackToIT performs no cutover and gives no time estimate.Balancers vóór listeners
Listeners volgen op de balancers, pools op de listeners en members en monitors komen als laatste. Servers en beide balancers zitten in golf 3.
Een volgorde van afhankelijkheid
Het is een vertrekpunt voor uw golfplanning, geen schema en geen cutoverreeks.
Shared, dedicated, Network en Application Load Balancer
| Onderwerp | Huawei Cloud ELB | STACKIT |
|---|---|---|
| Lagen en protocollen | Shared: frontend TCP, UDP, HTTP, HTTPS; backend TCP, UDP, HTTP. Dedicated voegt QUIC en TLS toe aan de frontend en HTTPS, QUIC, TLS en GRPC aan de backend. | Network Load Balancer: layer 4, TCP (de pagina noemt ook UDP). Application Load Balancer: layer 7, HTTP en HTTPS, WebSocket. |
| TLS | Beide beëindigen TLS op de listener: het shared type met protocol TERMINATED_HTTPS en default_tls_container_ref, het dedicated type met HTTPS en server_certificate. | Network Load Balancer: geen TLS-afhandeling, versleuteling is aan u. Application Load Balancer: TLS-offloading en TLS-bridging. |
| Routering | Shared: forwardingregels op domeinnaam en pad. Dedicated voegt HTTP-methode, header, query string en CIDR-blok toe, plus redirects, rewrites en vaste antwoorden. | Application Load Balancer: op host, pad, header en queryparameter. Network Load Balancer: één doelpool per listener. |
| Health checks | Beide typen controleren backend server groups. | Network Load Balancer: actief, standaard aan, interval en drempels instelbaar. Application Load Balancer: overal TCP-checks, geavanceerde HTTP-checks via API en SDK. |
| Algoritme en persistentie | Weighted round robin, weighted least connections, source IP hash; dedicated voegt connection ID toe. | Network Load Balancer: standaard round robin, persistentie op bron-IP schakelt over op Maglev. Application Load Balancer: persistentie via cookie. |
| Openbaar adres | Een EIP: bij een shared load balancer als aparte resource gekoppeld; een dedicated load balancer verwijst naar een bestaande EIP of maakt er een aan met de bijbehorende bandbreedte-instellingen. | Network Load Balancer: een statisch extern IP-adres dat u aanlevert of een tijdelijk adres. Application Load Balancer: een tijdelijk IP-adres, of een uitrol uitsluitend in het privénetwerk. |
Huawei Cloud-kolom uit de pagina met ELB-loadbalancertypen, STACKIT-kolom uit de pagina's over de Network en Application Load Balancer, allemaal gelezen op 4 november 2026. In november 2026 vermeldt de featuretabel van de Application Load Balancer geavanceerde HTTP-health checks alleen voor API en SDK, met ondersteuning in Terraform en Portal in uitvoering. Controleer dus de actuele stand.
Wat u aanpast voordat u bouwt
1. Inventariseer elke listener met protocol en certificaat
Doe dit vanuit main.tf, want de run beoordeelt geen listeners. Noteer frontendprotocol, poort, backendprotocol en de certificaatverwijzing (default_tls_container_ref of server_certificate).
2. Kies het balancertype per listener
Gewone TCP-doorvoer past bij de Network Load Balancer; bevestig bij UDP eerst de ondersteuning, want de pagina van de Network Load Balancer noemt in het overzicht layer 4 TCP en in de sectie over listeners TCP en UDP. HTTP-routering of TLS-beëindiging past bij de Application Load Balancer. In het voorbeeld is de shared listener TERMINATED_HTTPS op poort 443 voor een HTTP-pool op poort 8080 met een HTTP-health check: de balancer beëindigt TLS, dus hoort die ondanks de koppeling van de run aan de Network Load Balancer bij de Application Load Balancer. De dedicated listener (HTTPS op 8443, HTTP-pool) wijst dezelfde kant op, in lijn met de kandidaat van de run.
3. Bereid het netwerk en de regels voor
Maak de STACKIT-netwerken van golf 1 en 2 aan. Doelen in hetzelfde STACKIT-netwerk krijgen automatisch een target security group; doelen in een ander netwerk hebben er handmatig een nodig, en doelen in een ander project moeten in dezelfde Network Area zitten.
4. Maak pool en doelen aan
De documentatie van de Network Load Balancer vereist ten minste twee doelen voor load balancing. Het voorbeeld heeft twee servers, passend bij de twee members.
5. Bouw health checks en certificaten opnieuw op
De /healthz-monitor uit het voorbeeld is een layer 7-check. Bepaal of een TCP-check volstaat of dat de Application Load Balancer nodig is, en verplaats het certificaat naar de plek die de doelbalancer verwacht.
6. Wijzig het publieke adres en de DNS
Het adres is nieuw. Verlaag de DNS-TTL vóór de overschakeling, laat de naam naar de nieuwe balancer wijzen en laat de Huawei Cloud-balancer staan totdat het verkeer probleemloos is overgegaan. De naam terugzetten is de weg terug; leg dat vast.
Vragen over de verhuizing van de load balancer
Welke STACKIT load balancer vervangt een shared ELB van Huawei Cloud?
De run koppelt die aan de Network Load Balancer. Dat past bij layer 4-verkeer. Beëindigt een listener TLS of routeert die op host of pad, gebruik dan de Application Load Balancer en beschouw het resultaat van de run als vertrekpunt.
Waarom zijn listeners, pools, members en monitors MANUAL_REVIEW?
Hun resourcetypen staan niet in de kennisbankcatalogus van deze build, dus er wordt niets van beoordeeld of als concept geschreven. U herschrijft ze aan de STACKIT-kant op basis van de Terraform-code die u al hebt.
Wat doen de flavor-variabelen l4 en l7 in de run?
Het zijn invoeren van de dedicated load balancer. Zonder waarden meldt de run ze als ontbrekend en blijven de afhankelijke eenheden zonder concept en golf; met een variabelenbestand worden alle twaalf eenheden geordend.
Blijft het openbare IP-adres hetzelfde?
Nee. De run meldt dat het publieke adres verandert, dus DNS-records en allowlists die het noemen veranderen mee.
Bronnen
- Huawei Cloud ELB: typen load balancers
- STACKIT Network Load Balancer: basisconcepten
- STACKIT Application Load Balancer: functies
- huaweicloud_elb_loadbalancer (Terraform-provider voor Huawei Cloud 1.100.0)
- huaweicloud_lb_loadbalancer (Terraform-provider voor Huawei Cloud 1.100.0)
- huaweicloud_lb_listener (Terraform-provider voor Huawei Cloud 1.100.0)
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.