Aller au contenu principal

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.

Liens utiles