Skip to content

Commit 15766bc

Browse files
committed
Update greeting message in HTML file
1 parent 6da1df6 commit 15766bc

3 files changed

Lines changed: 201 additions & 37 deletions

File tree

04-cloud/azure/iaas/04-load-balancer/README.md

Lines changed: 200 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,76 @@ En Azure, existen dos tipos de balanceadores de carga:
88

99
- **Balanceador de carga interno**: distribuye el tráfico de red entrante a las máquinas virtuales dentro de una red virtual. Este balanceador de carga se puede utilizar para equilibrar el tráfico de red a máquinas virtuales que se encuentran en la misma red virtual.
1010

11-
En este caso, vamos a utilizar un balanceador de carga público para poder acceder a nuestra aplicación desde Internet. Para ello, vamos a crear un balanceador de carga público. Para ello, lo primero que vamos a hacer es crear el balanceador a través del siguiente comando:
11+
En este caso, vamos a utilizar un balanceador de carga público para poder acceder a nuestra aplicación desde Internet. Para ello, vamos a crear un balanceador de carga público. Lo primero que vamos a hacer es setear las variables de entorno que vamos a utilizar para crear el balanceador de carga.
1212

1313
```bash
14-
LOAD_BALANCER_NAME="front-end-lb"
15-
PUBLIC_IP_NAME="lb-ip"
16-
PROBE_NAME="fontend-probe"
14+
LOAD_BALANCER_NAME="frontend-lb"
15+
LB_IP_NAME="lb-ip"
16+
PROBE_NAME="frontend-probe"
17+
BACKEND_POOL_NAME="tour-of-heroes-backend-pool"
18+
````
19+
20+
o si estás en Windows:
21+
22+
```pwsh
23+
$LOAD_BALANCER_NAME="frontend-lb"
24+
$LB_IP_NAME="lb-ip"
25+
$PROBE_NAME="frontend-probe"
26+
$BACKEND_POOL_NAME="tour-of-heroes-backend-pool"
27+
```
1728

29+
Antes de crear un balanceador de carga público necesitas generar una dirección IP pública. Esta dirección IP pública se utiliza para acceder a las máquinas virtuales que se encuentran detrás del balanceador de carga. Para ello, vamos a crear una dirección IP pública.
30+
31+
```bash
1832
echo -e "Create a public IP"
1933
2034
az network public-ip create \
2135
--resource-group $RESOURCE_GROUP \
22-
--name $PUBLIC_IP_NAME \
23-
--sku Standard
36+
--name $LB_IP_NAME \
37+
--sku Standard \
38+
--dns-name $LB_IP_NAME
39+
```
40+
41+
o si estás en Windows:
42+
43+
```pwsh
44+
Write-Host "Create a public IP"
45+
46+
az network public-ip create `
47+
--resource-group $RESOURCE_GROUP `
48+
--name $LB_IP_NAME `
49+
--sku Standard `
50+
--dns-name $LB_IP_NAME
51+
```
2452

53+
Y ahora ya si creamos el balanceador:
54+
55+
```bash
2556
echo -e "Create a load balancer"
2657
2758
az network lb create \
2859
--resource-group $RESOURCE_GROUP \
2960
--name $LOAD_BALANCER_NAME \
3061
--vnet-name $VNET_NAME \
3162
--sku Standard \
32-
--public-ip-address $PUBLIC_IP_NAME \
33-
--frontend-ip-name frontend-ip \
34-
--backend-pool-name frontend-backend-pool
63+
--backend-pool-name $BACKEND_POOL_NAME \
64+
--frontend-ip-name $LB_IP_NAME \
65+
--public-ip-address $LB_IP_NAME
3566
```
3667

3768
o si estás en Windows:
3869

3970
```pwsh
40-
$LOAD_BALANCER_NAME="front-end-lb"
41-
$PUBLIC_IP_NAME="lb-ip"
42-
$PROBE_NAME="fontend-probe"
43-
44-
Write-Host "Create a public IP"
45-
46-
az network public-ip create `
47-
--resource-group $RESOURCE_GROUP `
48-
--name $PUBLIC_IP_NAME `
49-
--sku Standard
50-
5171
Write-Host "Create a load balancer"
5272
5373
az network lb create `
5474
--resource-group $RESOURCE_GROUP `
5575
--name $LOAD_BALANCER_NAME `
5676
--vnet-name $VNET_NAME `
5777
--sku Standard `
58-
--public-ip-address $PUBLIC_IP_NAME `
59-
--frontend-ip-name frontend-ip `
60-
--backend-pool-name frontend-backend-pool
78+
--backend-pool-name $BACKEND_POOL_NAME `
79+
--frontend-ip-name $LB_IP_NAME `
80+
--public-ip-address $LB_IP_NAME
6181
```
6282

6383
Una vez que tenemos el balanceador de carga creado, vamos a crear una sonda de salud para comprobar que nuestra aplicación está funcionando correctamente. Para ello, vamos a crear una sonda de salud que compruebe que la aplicación está funcionando correctamente.
@@ -70,7 +90,7 @@ az network lb probe create \
7090
--lb-name $LOAD_BALANCER_NAME \
7191
--name $PROBE_NAME \
7292
--protocol tcp \
73-
--port 8080
93+
--port 80
7494
```
7595

7696
o si estás en Windows:
@@ -83,7 +103,7 @@ az network lb probe create `
83103
--lb-name $LOAD_BALANCER_NAME `
84104
--name $PROBE_NAME `
85105
--protocol tcp `
86-
--port 8080
106+
--port 80
87107
```
88108

89109
Una vez que tenemos la sonda de salud creada, vamos a crear una regla de balanceo de carga para que el balanceador de carga pueda distribuir el tráfico de red entre las máquinas virtuales.
@@ -97,9 +117,9 @@ az network lb rule create \
97117
--name myHTTPRule \
98118
--protocol tcp \
99119
--frontend-port 80 \
100-
--backend-port 8080 \
101-
--frontend-ip-name frontend-ip \
102-
--backend-pool-name frontend-backend-pool \
120+
--backend-port 80 \
121+
--frontend-ip-name $LB_IP_NAME \
122+
--backend-pool-name $BACKEND_POOL_NAME \
103123
--probe-name $PROBE_NAME \
104124
--disable-outbound-snat true \
105125
--idle-timeout 15
@@ -116,9 +136,9 @@ az network lb rule create `
116136
--name myHTTPRule `
117137
--protocol tcp `
118138
--frontend-port 80 `
119-
--backend-port 8080 `
120-
--frontend-ip-name frontend-ip `
121-
--backend-pool-name frontend-backend-pool `
139+
--backend-port 80 `
140+
--frontend-ip-name $LB_IP_NAME `
141+
--backend-pool-name $BACKEND_POOL_NAME `
122142
--probe-name $PROBE_NAME `
123143
--disable-outbound-snat true `
124144
--idle-timeout 15
@@ -141,10 +161,10 @@ echo -e "Add the frontend vm to the backend pool"
141161
az network lb address-pool address add \
142162
--resource-group $RESOURCE_GROUP \
143163
--lb-name $LOAD_BALANCER_NAME \
144-
--pool-name frontend-backend-pool \
145-
--name tour-of-heroes-front-end-vm \
164+
--pool-name $BACKEND_POOL_NAME \
165+
--name $FRONTEND_VM_NAME \
146166
--ip-address $FRONTEND_VM_PRIVATE_IP \
147-
--vnet $VNET_NAME
167+
--vnet $VNET_NAME
148168
```
149169

150170
o si estás en Windows:
@@ -335,9 +355,153 @@ echo -e "Try to access the front end VM using the public IP address of the load
335355

336356
FRONTEND_LB_PUBLIC_IP=$(az network public-ip show \
337357
--resource-group $RESOURCE_GROUP \
338-
--name $PUBLIC_IP_NAME \
358+
--name $LB_IP_NAME \
339359
--query ipAddress \
340360
--output tsv)
341361

342362
echo -e "Front end VM public IP address: http://$FRONTEND_LB_PUBLIC_IP"
343-
```
363+
```
364+
365+
o si estás en Windows:
366+
367+
```pwsh
368+
Write-Host "Try to access the front end VM using the public IP address of the load balancer"
369+
370+
$FRONTEND_LB_PUBLIC_IP=$(az network public-ip show `
371+
--resource-group $RESOURCE_GROUP `
372+
--name $LB_IP_NAME `
373+
--query ipAddress `
374+
--output tsv)
375+
376+
Write-Host "Front end VM public IP address: http://$FRONTEND_LB_PUBLIC_IP"
377+
```
378+
379+
Y ya por último vamos a darle un poco de emoción creando una segunda máquina que haga de frontend y que se añada al balanceador de carga. Para ello, vamos a crear una nueva máquina virtual.
380+
381+
```bash
382+
echo -e "Create a frontend vm #2 named ${FRONTEND_VM_NAME}-2 with image $FRONTEND_VM_IMAGE"
383+
384+
FQDN_FRONTEND_VM_2=$(az vm create \
385+
--resource-group $RESOURCE_GROUP \
386+
--name "${FRONTEND_VM_NAME}-2" \
387+
--image $FRONTEND_VM_IMAGE \
388+
--admin-username $FRONTEND_VM_ADMIN_USERNAME \
389+
--admin-password $FRONTEND_VM_ADMIN_PASSWORD \
390+
--vnet-name $VNET_NAME \
391+
--subnet $FRONTEND_SUBNET_NAME \
392+
--public-ip-address-dns-name tour-of-heroes-frontend-vm-2 \
393+
--nsg "${FRONTEND_VM_NSG_NAME}-2" \
394+
--size $VM_SIZE --query "fqdns" -o tsv)
395+
396+
az network nsg rule create \
397+
--resource-group $RESOURCE_GROUP \
398+
--nsg-name "${FRONTEND_VM_NSG_NAME}-2" \
399+
--name AllowHttp \
400+
--priority 1002 \
401+
--destination-port-ranges 80 \
402+
--direction Inbound
403+
404+
az network nsg rule create \
405+
--resource-group $RESOURCE_GROUP \
406+
--nsg-name "${FRONTEND_VM_NSG_NAME}-2" \
407+
--name Allow8080 \
408+
--priority 1003 \
409+
--destination-port-ranges 8080 \
410+
--direction Inbound
411+
412+
echo -e "Execute script to install IIS and deploy tour-of-heroes-angular SPA"
413+
az vm run-command invoke \
414+
--resource-group $RESOURCE_GROUP \
415+
--name "${FRONTEND_VM_NAME}-2" \
416+
--command-id RunPowerShellScript \
417+
--scripts @04-cloud/azure/iaas/scripts/install-tour-of-heroes-angular.ps1 \
418+
--parameters "api_url=http://$FQDN_API_VM/api/hero" "release_url=https://github.com/0GiS0/tour-of-heroes-web/releases/download/v2.0.0/dist.zip"
419+
420+
421+
echo -e "Get front end VM 2 private IP address"
422+
423+
FRONTEND_VM_PRIVATE_IP_2=$(az vm show \
424+
--resource-group $RESOURCE_GROUP \
425+
--name "${FRONTEND_VM_NAME}-2" \
426+
--show-details \
427+
--query privateIps \
428+
--output tsv)
429+
430+
431+
echo -e "Add the frontend vm to the backend pool"
432+
433+
az network lb address-pool address add \
434+
--resource-group $RESOURCE_GROUP \
435+
--lb-name $LOAD_BALANCER_NAME \
436+
--pool-name $BACKEND_POOL_NAME \
437+
--name "${FRONTEND_VM_NAME}-2" \
438+
--ip-address $FRONTEND_VM_PRIVATE_IP_2 \
439+
--vnet $VNET_NAME
440+
```
441+
442+
o si estás en Windows:
443+
444+
```pwsh
445+
Write-Host "Create a frontend vm #2 named ${FRONTEND_VM_NAME}-2 with image $FRONTEND_VM_IMAGE"
446+
447+
$FQDN_FRONTEND_VM_2=$(az vm create `
448+
--resource-group $RESOURCE_GROUP `
449+
--name "${FRONTEND_VM_NAME}-2" `
450+
--image $FRONTEND_VM_IMAGE `
451+
--admin-username $FRONTEND_VM_ADMIN_USERNAME `
452+
--admin-password $FRONTEND_VM_ADMIN_PASSWORD `
453+
--vnet-name $VNET_NAME `
454+
--subnet $FRONTEND_SUBNET_NAME `
455+
--public-ip-address-dns-name tour-of-heroes-frontend-vm-2 `
456+
--nsg "${FRONTEND_VM_NSG_NAME}-2" `
457+
--size $VM_SIZE --query "fqdns" -o tsv)
458+
459+
az network nsg rule create `
460+
--resource-group $RESOURCE_GROUP `
461+
--nsg-name "${FRONTEND_VM_NSG_NAME}-2" `
462+
--name AllowHttp `
463+
--priority 1002 `
464+
--destination-port-ranges 80 `
465+
--direction Inbound
466+
467+
az network nsg rule create `
468+
--resource-group $RESOURCE_GROUP `
469+
--nsg-name "${FRONTEND_VM_NSG_NAME}-2" `
470+
--name Allow8080 `
471+
--priority 1003 `
472+
--destination-port-ranges 8080 `
473+
--direction Inbound
474+
475+
Write-Host "Execute script to install IIS and deploy tour-of-heroes-angular SPA"
476+
az vm run-command invoke `
477+
--resource-group $RESOURCE_GROUP `
478+
--name "${FRONTEND_VM_NAME}-2" `
479+
--command-id RunPowerShellScript `
480+
--scripts @04-cloud/azure/iaas/scripts/install-tour-of-heroes-angular.ps1 `
481+
--parameters "api_url=http://$FQDN_API_VM/api/hero" "release_url=https://github.com/0GiS0/tour-of-heroes-web/releases/download/v2.0.0/dist.zip
482+
483+
Write-Host "Get front end VM 2 private IP address"
484+
485+
$FRONTEND_VM_PRIVATE_IP_2=$(az vm show `
486+
--resource-group $RESOURCE_GROUP `
487+
--name "${FRONTEND_VM_NAME}-2" `
488+
--show-details `
489+
--query privateIps `
490+
--output tsv)
491+
492+
Write-Host "Add the frontend vm to the backend pool"
493+
494+
az network lb address-pool address add `
495+
--resource-group $RESOURCE_GROUP `
496+
--lb-name $LOAD_BALANCER_NAME `
497+
--pool-name $BACKEND_POOL_NAME `
498+
--name "${FRONTEND_VM_NAME}-2" `
499+
--ip-address $FRONTEND_VM_PRIVATE_IP_2 `
500+
--vnet $VNET_NAME
501+
```
502+
503+
Ahora, si accedemos a la IP pública del balanceador de carga, veremos que la aplicación se muestra de forma aleatoria en una de las dos máquinas virtuales.
504+
505+
La arquitectura en este caso quedaría de la siguiente forma:
506+
507+
![Arquitectura con balanceador de carga](/04-cloud/azure/iaas/images/con-lb.png)
147 KB
Loading

04-cloud/azure/iaas/scripts/install-tour-of-heroes-angular.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ $new_content =
1818
<!DOCTYPE html>
1919
<html>
2020
<body>
21-
<h1>Hello developer 👋🏻</h1>
21+
<h1>Hello developer!</h1>
2222
<p>Running on <b>$env:computername</b></p>
2323
</body>
2424
</html>

0 commit comments

Comments
 (0)