Configurer un LoadBalancer
Avant de commencer
Pour réaliser les actions présentées ci-dessous, vous devez disposer :
- D'un compte NumSpot
- De Terraform installé
- D'un navigateur ou d'un client HTTP
attention
Les Health Checks du LoadBalancer doivent réussir à contacter vos services pour que ce dernier puisse diriger le traffic vers les bonnes instances.
Créer et déployer des ressources NumSpot à l'aide de Terraform
Pour démarrer, commencez par créer le fichier de configuration
Vous devez ensuite créer les ressources suivantes :
- VPC
- Subnet
- 2 VM
- Internet Gateway
- Route Table
- Security Group
- LoadBalancer
Pour ce faire, ajoutez les blocs suivants :
resource "numspot_vpc" "vpc" {
ip_range = "10.0.0.0/16"
}
resource "numspot_subnet" "subnet" {
vpc_id = numspot_vpc.vpc.id
ip_range = "10.0.0.0/24"
}
resource "numspot_vm" "vm-1" {
image_id = "<VM IMAGE>"
subnet_id = numspot_subnet.subnet.id
security_group_ids = [numspot_security_group.security-group.id]
}
resource "numspot_vm" "vm-2" {
image_id = "<VM IMAGE>"
subnet_id = numspot_subnet.subnet.id
security_group_ids = [numspot_security_group.security-group.id]
}
resource "numspot_internet_gateway" "internet-gateway" {
vpc_id = numspot_vpc.vpc.id
}
resource "numspot_route_table" "route-table" {
vpc_id = numspot_vpc.vpc.id
subnet_id = numspot_subnet.subnet.id
routes = [{
destination_ip_range = "0.0.0.0/0"
gateway_id = numspot_internet_gateway.internet-gateway.id
}]
}
resource "numspot_security_group" "security-group" {
vpc_id = numspot_vpc.vpc.id
name = "security group name"
description = "security group description"
inbound_rules = [{
from_port_range = 80
to_port_range = 80
ip_protocol = "tcp"
ip_ranges = ["0.0.0.0/0"]
}]
}
resource "numspot_load_balancer" "load-balancer" {
name = "nlb"
listeners = [{
load_balancer_port = 80
backend_port = 80
load_balancer_protocol = "TCP"
}]
subnets = [numspot_subnet.subnet.id]
security_groups = [numspot_security_group.security-group.id]
backend_vm_ids = [numspot_vm.vm-1.id, numspot_vm.vm-2.id]
type = "internet-facing"
health_check = {
healthy_threshold = 10
check_interval = 30
path = "/"
port = 80
protocol = "HTTP"
timeout = 5
unhealthy_threshold = 5
}
}
Votre configuration est maintenant prête à être déployée sur l'infrastructure de NumSpot.