Déployer la solution d’évolutivité automatique ASA virtuel sur Microsoft Azure

Solution d’évolutivité automatique pour ASA virtuel sur Azure

Aperçu

La solution d’évolutivité automatique permet l’allocation de ressources pour répondre aux exigences de performance et réduire les coûts. Si la demande de ressources augmente, le système garantit que les ressources sont allouées selon les besoins. Si la demande de ressources diminue, des ressources sont désaffectées pour réduire les coûts.

L’évolutivité automatique d’ASA virtuel pour Azure est une implémentation complète sans serveur qui utilise l’infrastructure sans serveur fournie par Azure (application Logic, fonctions Azure, équilibreurs de charges, groupes de sécurité, ensemble d’évolutivité des machines virtuelles, etc.).

Certaines des fonctionnalités clés de l’évolutivité automatique d’ASA virtuel pour l’implémentation d’Azure comprennent :

  • Le déploiement basé sur le modèle Azure Resource Manager (ARM).

  • Prise en charge des mesures d’évolutivité en fonction du CPU.


    Remarque


    Consultez Logique d’évolutivité automatique pour obtenir de plus amples renseignements.


  • Prise en charge du déploiement d’ASA virtuel et des zones de multi-disponibilité.

  • La configuration entièrement automatisée s’applique automatiquement aux instances ASA virtuel mises à l’échelle.

  • Prise en charge des équilibreurs de charges et des zones de multi-disponibilité.

  • Prise en charge de l’activation et de la désactivation de la fonction d’évolutivité automatique.

  • Cisco fournit un paquet de déploiement de l’évolutivité automatique pour Azure afin de faciliter le déploiement.

La solution d’évolutivité automatique d’ASA virtuel sur Azure prend en charge deux types de scénarios configurés à l’aide de topologies différentes :

  • Évolutivité automatique à l’aide de la topologie Sandwich : l’ensemble d’évolutivité ASA virtuel est pris en sandwich entre un équilibreur de charges interne Azure (ILB) et un équilibreur de charges externe Azure (ELB).

  • Évolutivité automatique avec l‘équilibreur de charges de la passerelle Azure (GWLB) : la solution GWLB Azure est intégrée à Cisco Secure Firewall, à l‘équilibreur de charges public et aux serveurs internes pour simplifier le déploiement, la gestion et l‘évolutivité des pare-feu.

Scénario d’évolutivité automatique à l’aide de la topologie de Sandwich

L’évolutivité automatique d’ASA virtuel pour Azure est une solution d’évolutivité horizontale automatisée qui positionne un ensemble d’évolutivité ASA virtuel pris en sandwich entre un équilibreur de charges interne (ILB) Azure et un équilibreur de charges externe (ELB) Azure.

  • L’ELB distribue le trafic d’Internet aux instances ASA virtuel dans l’ensemble d’évolutivité; le pare-feu transfère ensuite le trafic à l’application.

  • L’ILB distribue le trafic Internet sortant d’une application aux instances ASA virtuel dans l’ensemble d’évolutivité; le pare-feu transfère ensuite le trafic à Internet.

  • Un paquet réseau ne traversera jamais les deux équilibreurs de charges (interne et externe) en une seule connexion.

  • Le nombre d’instances ASA virtuel dans l’ensemble d’évolutivité se verra évoluer et sera configuré automatiquement en fonction des conditions de charge.

Illustration 1. Scénario d’évolutivité automatique ASA virtuel à l’aide de la topologie de Sandwich

Scénario d’évolutivité automatique avec l’équilibreur de charge de la passerelle Azure

L’équilibreur de charge de passerelle Azure (GWLB) garantit que le trafic Internet vers et à partir d’une machine virtuelle Azure, comme un serveur d’applications, est inspecté par Cisco Secure Firewall sans nécessiter de modifications de routage. Cette intégration d’Azure GWLB à Cisco Secure Firewall simplifie le déploiement, la gestion et l’évolutivité des pare-feu. Cette intégration réduit également la complexité opérationnelle et fournit un point d’entrée et de sortie unique pour le trafic au niveau du pare-feu. Les applications et l’infrastructure peuvent maintenir la visibilité de l’adresse IP source, ce qui est essentiel dans certains environnements.

Dans le scénario d’évolutivité automatique d’Azure GWLB, l’ASA virtuel utilise uniquement deux interfaces : la gestion et une interface de données.


Remarque


  • La traduction d’adresses réseau (NAT) n’est pas requise si vous déployez Azure GWLB.

  • Seul IPv4 est pris en charge.


Licence

Le protocole BYOL est pris en charge.

Scénario et topologie du trafic entrant

Le diagramme suivant affiche le flux de trafic pour le trafic entrant.

Scénario et topologie du trafic sortant

Le diagramme suivant affiche le flux de trafic pour le trafic sortant.

Flux de trafic entre le VPC d’application et le VPC de sécurité

Dans le schéma ci-dessous, le trafic est redirigé de la topologie existante vers les pare-feu pour inspection par l’équilibreur de charges externe. Le trafic est ensuite acheminé vers la nouvelle GWLB. Tout trafic acheminé vers ELB est transféré vers GWLB.

La GWLB transfère ensuite le trafic encapsulé VXLAN à une instance ASA virtuel. Vous devez créer deux associations ASA virtuel, car la GWLB utilise deux tunnels VXLAN distincts pour le trafic d’entrée et de sortie. L’ASA virtuel désencapsule le trafic encapsulé VXLAN, l’inspecte et achemine le trafic vers la GWLB. La GWLB transfère ensuite le trafic à l’ELB.

Champ d’application

Ce document couvre les procédures détaillées pour déployer les composants sans serveur pour la solution d’évolutivité automatique d’ASA virtuel pour Azure.


Important


  • Lisez le document entier avant de commencer le déploiement.

  • Assurez-vous que les conditions préalables sont remplies avant de commencer le déploiement.

  • Assurez-vous de suivre les étapes et l’ordre d’exécution décrits dans le présent document.


Télécharger le paquet de déploiement

La solution d’évolutivité automatique d’ASA virtuel pour Azure est un déploiement basé sur le modèle Azure Resource Manager (ARM) qui utilise l’infrastructure sans serveur fournie par Azure (application Logic, fonctions Azure, équilibreurs de charges, ensemble d’évolutivité des machines virtuelles, etc.)

Téléchargez les fichiers requis pour lancer la solution d’évolutivité automatique d’ASA virtuel pour Azure. Les scripts et les modèles de déploiement pour votre version sont disponibles dans le référentiel GitHub.


Attention


Remarque : les scripts et les modèles de déploiement fournis par Cisco pour l’évolutivité automatique sont présentés à titre d’exemples de code source libre et ne font pas l’objet de l’assistance technique du TAC dans sa portée normale. Vérifiez régulièrement GitHub pour connaître les mises à jour et les instructions ReadMe.

Consultez Créer des fonctions Azure à partir du code source pour obtenir des instructions sur la façon de créer le paquet ASM_Function.zip.


Composants de la solution d’évolutivité automatique

Les composants suivants constituent la solution d’évolutivité automatique d’ASA virtuel pour Azure.

Fonctions Azure (Function App)

Function App (Appli Fonction) est un ensemble de fonctions Azure. Voici les fonctionnalités de base :

  • Sondez/communiquez régulièrement avec les mesures d’Azure.

  • Surveillez la charge d’ASA virtuel et déclenchez les opérations d’évolutivité à la baisse/à la hausse.

Ces fonctions sont fournies sous forme de paquets zip compressé (voir Créer le paquet d’applications Azure Function). Les fonctions sont aussi distinctes que possible pour effectuer des tâches spécifiques et peuvent être mises à niveau au besoin pour améliorer et prendre en charge les nouvelles versions.

Orchestrateur (application Logic)

L’application Logic d’évolutivité automatique est un flux de travail, c’est-à-dire un ensemble d’étapes dans une séquence. Les fonctions Azure sont des entités indépendantes et ne peuvent pas communiquer entre elles. Cet orchestrateur séquence l’exécution de ces fonctions et échange des renseignements entre elles.

  • L’application Logic est utilisée pour orchestrer et transmettre des renseignements entre les fonctions Azure d’évolutivité automatique.

  • Chaque étape représente une fonction Azure d’évolutivité automatique ou une logique standard intégrée.

  • L’application Logic est fournie sous forme de fichier JSON.

  • L’application Logic peut être personnalisée au moyen du fichier d’interface graphique ou JSON.

Ensemble d’évolutivité des machines virtuelles (VMSS)

Le VMSS est un ensemble de machines virtuelles homologues, telles que les appareils ASA virtuel.

  • Le VMSS est capable d’ajouter de nouvelles VM identiques à l’ensemble.

  • Les nouvelles machines virtuelles (VM) ajoutées au VMSS sont automatiquement associées aux équilibreurs de charges, aux groupes de sécurité et aux interfaces réseau.

  • Le VMSS a une fonctionnalité d’évolutivité automatique intégrée qui est désactivée pour ASA virtuel dans Azure.

  • Vous ne devez pas ajouter ou supprimer des instances ASA virtuel dans le VMSS manuellement.

Modèle Azure Resource Manager (ARM)

Les modèles ARM sont utilisés pour déployer les ressources requises par l’évolutivité automatique d’ASA virtuel pour la solution Azure.

Évolutivité automatique d’ASA virtuel pour Azure : le modèle ARM azure_asav_autoscale.json fournit des entrées pour les composants du gestionnaire d’évolutivité automatique, notamment :

  • Function App (Appli Fonction) Azure

  • Application Azure Logic

  • L’ensemble d’évolutivité des machines virtuelles (VMSS)

  • Équilibreurs de charges internes et externes.

  • Goupes de sécurité et autres composants divers nécessaires au déploiement.

Évolutivité automatique d’ASA virtuel avec Azure GWLB : le modèle ARM azure_asav_autoscale_with_GWLB.json fournit des entrées pour les composants du gestionnaire d’évolutivité automatique, notamment :

  • Function App (Appli Fonction) Azure

  • Application Azure Logic

  • Machine virtuelle (VM) ou ensemble d’évolutivité des machines virtuelles (VMSS)

  • Infrastructures réseau

  • Équilibreur de charges de passerelle

  • Groupes de sécurité et autres composants divers nécessaires au déploiement


Important


Le modèle ARM a des limites en ce qui concerne la validation des entrées des utilisateurs. Il est donc de votre responsabilité de valider les entrées pendant le déploiement.


Prérequis

Ressources Azure

Groupe de ressources

Un groupe de ressources existant ou nouvellement créé est requis pour déployer tous les composants de cette solution.


Remarque


Enregistrez le nom du groupe de ressources, la région dans laquelle il est créé et l’ID d’abonnement Azure pour une utilisation ultérieure.


Mise en réseau

Assurez-vous qu’un réseau virtuel est disponible ou créé. Un déploiement de l’évolutivité automatique avec une topologie sandwich ne crée, ne modifie ni ne gère de ressources réseau.Cependant, notez que le déploiement de l’évolutivité automatique avec Azure GWLB crée une infrastructure réseau.

L’ASA virtuel nécessite trois interfaces réseau. Par conséquent, votre réseau virtuel nécessite trois sous-réseaux pour :

  1. Le trafic de gestion

  2. Le trafic interne

  3. Le trafic externe

Les ports suivants doivent être ouverts dans le groupe de sécurité réseau auquel les sous-réseaux sont connectés :

  • SSH (TCP/22)

    Requis pour la sonde d’intégrité entre l’équilibreur de charges et ASA virtuel.

    Requis pour la communication entre les fonctions sans serveur et ASA virtuel.

  • Protocole/ports spécifiques à l’application

    Requis pour toutes les applications des utilisateurs (par exemple, TCP/80, etc.).


Remarque


Enregistrez le nom du réseau virtuel, le CIDR du réseau virtuel, les noms des 3 sous-réseaux et les adresses IP de passerelle des sous-réseaux externe et interne.


Préparer le fichier de configuration ASA

Préparez un fichier de configuration ASA virtuel et stockez-le dans un serveur http/https accessible par l’instance ASA virtuel. Il s’agit d’un format de fichier de configuration ASA standard. Un ASA virtuel qui évolue à la hausse téléchargera ce fichier et mettra à jour sa configuration.

Le fichier de configuration de l’ASA doit comporter les éléments suivants (au minimum) :

  • Définissez l’attribution d’adresse IP DHCP pour toutes les interfaces.

  • GigabitEthernet0/1 doit être l’interface « interne ».

  • GigabitEthernet0/0 doit être l’interface « externe ».


    Remarque


    Le déploiement de l’évolutivité automatique au moyen de la topologie sandwich nécessite deux interfaces de données. Cependant, le déploiement de l’évolutivité automatique avec Azure GWLB ne nécessite qu’une seule interface de données.


  • Définissez la passerelle vers l’interface interne et externe.

  • Activez SSH sur les interfaces interne et externe à partir de l’adresse IP de l’utilitaire Azure (pour la sonde d’intégrité).

  • Créez une configuration NAT pour transférer le trafic de l’interface externe vers l’interface interne.

  • Créez une politique d’accès pour autoriser le trafic souhaité.

  • Obtenez une licence la configuration. La facturation PAYG n’est pas prise en charge.


Remarque


Il n’est pas nécessaire de configurer spécifiquement l’interface de gestion.


Voici un exemple de fichier de configuration ASA pour l’évolutivité automatique d’ASA virtuel de la solution Azure.


ASA Version 9.13(1)
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address dhcp setroute
!
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address dhcp setroute
!
route outside 0.0.0.0 0.0.0.0 10.12.3.1 2
!
route inside 0.0.0.0 0.0.0.0 10.12.2.1 3
!
ssh 168.63.129.0 255.255.255.0 outside
!
ssh 168.63.129.0 255.255.255.0 inside
!
object network webserver
host 10.12.2.5
object service myport
service tcp source range 1 65535 destination range 1 65535
access-list outowebaccess extended permit object myport any any log disable
access-group outowebaccess in interface outside
object service app
service tcp source eq www
nat (inside,outside) source static webserver interface destination static interface any service app app
object network obj-any
subnet 0.0.0.0 0.0.0.0
nat (inside,outside) source dynamic obj-any interface destination static obj-any obj-any
configure terminal
dns domain-lookup management
policy-map global_policy
class inspection_default
inspect icmp
call-home
profile License
destination transport-method http
destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService
license smart
feature tier standard
throughput level 2G
license smart register idtoken <TOKEN>
: end

Voici un exemple de fichier de configuration ASA pour l’évolutivité automatique d’ASA virtuel avec la solution Azure GWLB.


interface G0/0
nameif outside
ip address dhcp setroute
no shut
!s
sh 168.63.129.0 255.255.255.0 outside
route outside 0.0.0.0 0.0.0.0 192.168.2.1 2
nve 1
encapsulation vxlan
source-interface outside
peer ip 192.168.2.100
!i
nterface vni1
proxy paired
nameif GWLB-backend-pool
internal-port 2000
internal-segment-id 800
external-port 2001
external-segment-id 801
vtep-nve 1
!s
ame-security-traffic permit intra-interface

Créer le paquet d’applications Azure Function

La solution d’évolutivité automatique ASA virtuel nécessite que vous créiez un fichier d’archive : ASM_Function.zip qui fournit un ensemble de fonctions Azure distinctes sous la forme de paquet ZIP compressé.

Consultez Créer des fonctions Azure à partir du code source pour obtenir des instructions sur la façon de créer le paquet ASM_Function.zip.

Ces fonctions sont aussi distinctes que possible pour effectuer des tâches spécifiques et peuvent être mises à niveau au besoin pour améliorer et prendre en charge les nouvelles versions.

Paramètres d’entrée

Le tableau suivant définit les paramètres du modèle et fournit un exemple. Une fois que vous avez choisi ces valeurs, vous pouvez utiliser ces paramètres pour créer l’appareil ASA virtuel lorsque vous déployez le modèle ARM dans votre abonnement Azure. Consultez Déployer le modèle ARM d’évolutivité automatique.Dans la solution d’évolutivité automatique avec Azure GWLB, une infrastructure réseau est également créée en raison de laquelle des paramètres d’entrée supplémentaires doivent être configurés dans le modèle. Les descriptions des paramètres s’expliquent d’elles-mêmes.

Tableau 1. Paramètres du modèle

Nom du paramètre

Valeurs/Type autorisés

Description

Type de création de ressource

resourceNamePrefix

Chaîne* (3 à 10 caractères)

Toutes les ressources sont créées avec un nom contenant ce préfixe.

Remarque : utilisez uniquement des lettres minuscules.

Exemple : asav

New (Nouvelle)

virtualNetworkRg

Chaîne

Le nom du groupe de ressources du réseau virtuel.

Exemple : cisco-virtualnet-rg

Existant

virtualNetworkName

Chaîne

Le nom du réseau virtuel (déjà créé).

Exemple : cisco-virtualnet

Existant

mgmtSubnet

Chaîne

Le nom du sous-réseau de gestion (déjà créé).

Exemple : cisco-mgmt-subnet

Existant

insideSubnet

Chaîne

Le nom du sous-réseau interne (déjà créé).

Exemple : cisco-inside-subnet

Existant

internalLbIp

Chaîne

L’adresse IP de l’équilibreur de charges interne pour le sous-réseau interne (déjà créé).

Exemple : 1.2.3.4

Existant

outsideSubnet

Chaîne

Le nom du sous-réseau externe (déjà créé).

Exemple : cisco-outside-subnet

Existant

softwareVersion

Chaîne

La version ASA virtuel (sélectionné dans la liste déroulante pendant le déploiement).

Par défaut : 914.1.0Autorisé : 914.1.0, 913.1.0

Existant

vmSize

Chaîne

Taille de l’instance ASA virtuel (sélectionné dans la liste déroulante pendant le déploiement).

S. O.

asaAdminUserName

Chaîne*

Nom d’utilisateur de l’utilisateur « admin » ASA virtuel.

Les mots de passe doivent comporter de 12 à 72 caractères et doivent contenir : des minuscules, des majuscules, des chiffres et des caractères spéciaux; et ne doivent pas comporter plus de 2 caractères répétés.

Cela ne peut pas être « admin ». Consultez Azure pour connaître les lignes directrices relatives au nom d’utilisateur de l’administrateur des VM.

Remarque

 

Il n’y a pas de vérification de conformité pour cela dans le modèle.

New (Nouvelle)

asaAdminUserPassword

Chaîne*

Mot de passe de l’utilisateur administrateur ASA virtuel.

Les mots de passe doivent comporter de 12 à 72 caractères et doivent contenir : des minuscules, des majuscules, des chiffres et des caractères spéciaux; et ne doivent pas comporter plus de 2 caractères répétés.

Remarque

 

Il n’y a pas de vérification de conformité pour cela dans le modèle.

New (Nouvelle)

scalingPolicy

POLITIQUE-1 / POLITIQUE-2

POLITIQUE-1 : l’évolutivité à la hausse sera déclenchée lorsque la charge moyenne de n’importe quel ASA virtuel dépassera le seuil d’évolutivité à la hausse pour la durée configurée.

POLITIQUE-2 : l’évolutivité à la hausse sera déclenchée lorsque la charge moyenne de tous les appareils ASA virtuel du groupe d’évolutivité automatique dépassera le seuil d’évolutivité à la hausse pour la durée configurée.

Dans les deux cas, la logique d’évolutivité à la baisse reste la même : l’évolutivité à la baisse sera déclenchée lorsque la charge moyenne de tous les appareils ASA virtuel sera inférieure au seuil d’évolutivité à la baisse pour la durée configurée.

S. O.

scalingMetricsList

Chaîne

Mesures utilisées pour prendre la décision d’évolutivité.

Autorisé : CPU

Par défaut : CPU

S. O.

scaleInThreshold

Chaîne

Le seuil d’évolutivité à la baisse en pourcentage.

Par défaut : 10

Lorsque la mesure ASA virtuel passe en dessous de cette valeur, l’évolutivité à la baisse est déclenchée.

Consultez Logique d’évolutivité automatique.

S. O.

scaleOutThreshold

Chaîne

Le seuil d’évolutivité à la hausse en pourcentage.

Par défaut : 80

Lorsque la mesure ASA virtuel dépasse cette valeur, l’évolutivité à la hausse est déclenchée.

La valeur «scaleOutThreshold » doit toujours être supérieure à la valeur «scaleInThreshold ».

Consultez Logique d’évolutivité automatique.

S. O.

minAsaCount

Nombre entier

Le nombre minimal d’instances ASA virtuel disponibles dans l’ensemble d’évolutivité à tout moment.

Exemple : 2

S. O.

maxAsaCount

Nombre entier

Le nombre maximal d’instances ASA virtuel autorisées dans l’ensemble d’évolutivité.

Exemple : 10

Remarque

 

La logique d’évolutivité automatique ne vérifiera pas la plage de cette variable. Remplacez donc cette variable avec soin.

S. O.

metricsAverageDuration

Nombre entier

Sélectionnez une option dans la liste déroulante.

Ce nombre représente la durée (en minutes) sur laquelle les mesures sont calculées en moyenne.

Si la valeur de cette variable est 5 (c.-à-d. 5min), lorsque le gestionnaire d’évolutivité automatique est planifié, il vérifiera la moyenne des mesures des 5 dernières minutes et en fonction de cela, il prendra une décision en matière d’évolutivité.

Remarque

 

Seuls les chiffres 1, 5, 15 et 30 sont valides en raison des limites d’Azure.

S. O.

initDeploymentMode

LOT/ÉTAPE

Applicable principalement pour le premier déploiement ou lorsque l’ensemble d’évolutivité ne contient aucune instance ASA virtuel.

BULK (LOT) : le gestionnaire d’évolutivité automatique tentera de déployer un nombre « minAsaCount » d’instances ASA virtuel en parallèle à la fois.

STEP (ÉTAPE) : le gestionnaire d’évolutivité automatique déploiera le nombre «minAsaCount » d’appareils ASA virtuel un par un à chaque intervalle planifié.

configurationFile

Chaîne

Le chemin d’accès au fichier de configuration ASA virtuel.

Exemple : https://myserver/asavconfig/asaconfig.txt

S. O.

*Azure a des restrictions sur la convention de dénomination des nouvelles ressources. Vérifiez les limites ou utilisez simplement des minuscules. N’utilisez pas d’espaces ni d’autres caractères spéciaux.

Déployer la solution d’évolutivité automatique

Déployer le modèle ARM d’évolutivité automatique

Évolutivité automatique de ASA virtuel pour Azure à l’aide de la topologie Sandwich - Utilisez le modèle ARM azure_asav_autoscale.json pour déployer les ressources requises par l’évolutivité automatique d’ASA virtuel pour Azure. Dans un groupe de ressources donné, le déploiement du modèle ARM crée les éléments suivants :

  • Ensemble d’évolutivité des machines virtuelles (VMSS)

  • Équilibreur de charges externe

  • Équilibreur de charges interne

  • Function App (Appli Fonction) Azure

  • Application Logic

  • Groupes de sécurité (pour les interfaces de données et de gestion)

Évolutivité automatique de ASA virtuel avec Azure GWLB - Utilisez le modèle ARM azure_asav_autoscale_with_GWLB.json pour déployer les ressources requises par l’évolutivité automatique d’ASA virtuel avec la solution Azure GWLB. Dans un groupe de ressources donné, le déploiement du modèle ARM crée les éléments suivants :

  • Machine virtuelle (VM) ou ensemble d’évolutivité des machines virtuelles (VMSS)

  • Équilibreur de charges de passerelle

  • Function App (Appli Fonction) Azure

  • Application Logic

  • Infrastructures réseau

  • Groupes de sécurité et autres composants divers nécessaires au déploiement

Avant de commencer

Procédure


Étape 1

Si vous devez déployer les instances ASA virtuel dans plusieurs zones Azure, modifiez le modèle ARM en fonction des zones disponibles dans la région de déploiement.

Exemple:


        "zones": [
            "1",
            "2",
            "3"
        ],
	

Cet exemple montre la région « Centre des États-Unis » qui comporte 3 zones.

Étape 2

Modifiez les règles de trafic requises dans l’équilibreur de charges externe. Vous pouvez ajouter n’importe quel nombre de règles en étendant ce tableau « json ».

Exemple:


       {
        "type": "Microsoft.Network/loadBalancers",
        "name": "[variables('elbName')]",
        "location": "[resourceGroup().location]",
        "apiVersion": "2018-06-01",
        "sku": {
          "name": "Standard"
        },
        "dependsOn": [
          "[concat('Microsoft.Network/publicIPAddresses/', variables('elbPublicIpName'))]"             
        ],
        "properties": {
          "frontendIPConfigurations": [
            {
              "name": "LoadBalancerFrontEnd",
                "properties": {
                  "publicIPAddress": {
                    "id": "[resourceId('Microsoft.Network/publicIPAddresses/', variables('elbPublicIpName'))]"
                  }
                }
            }
          ],
          "backendAddressPools": [
            {
              "name": "backendPool"
            }
          ],
          "loadBalancingRules": [
            {
              "properties": {
                "frontendIPConfiguration": {
                  "Id": "[concat(resourceId('Microsoft.Network/loadBalancers', variables('elbName')), '/frontendIpConfigurations/LoadBalancerFrontend')]"
                },
                "backendAddressPool": {
                  "Id": "[concat(resourceId('Microsoft.Network/loadBalancers', variables('elbName')), '/backendAddressPools/BackendPool')]"
                },
                "probe": {
                  "Id": "[concat(resourceId('Microsoft.Network/loadBalancers', variables('elbName')), '/probes/lbprobe')]"
                },
                "protocol": "TCP",
                "frontendPort": "80",
                "backendPort": "80",
                "idleTimeoutInMinutes": "[variables('idleTimeoutInMinutes')]"
              },
              "Name": "lbrule"
            }
          ],

Remarque

 

Vous pouvez également le modifier à partir du portail Azure après le déploiement si vous préférez ne pas modifier ce fichier.

Étape 3

Connectez-vous au portail Microsoft Azure en utilisant le nom d’utilisateur et le mot de passe de votre compte Microsoft.

Étape 4

Cliquez sur Resource groups (Groupes de ressources) dans le menu des services pour accéder à la lame Resource Groups (Groupes de ressources). Vous verrez tous les groupes de ressources de votre abonnement répertoriés dans la lame.

Créez un nouveau groupe de ressources ou sélectionnez un groupe de ressources existant et vide; par exemple, Évolutivité automatique_ASA virtuel.

Illustration 2. Portail Azure

Étape 5

Cliquez sur Create a resource (+) (Créer une ressource (+)) pour créer une nouvelle ressource pour le déploiement du modèle. La lame Create Resource Group (Créer un groupe de ressources) apparaît.

Étape 6

Dans Search the Marketplace (Rechercher sur le Marché), tapez Template deployment (deploy using custom templates) (Déploiement de modèles (déployez en utilisant des modèles personnalisés)), puis appuyez sur Enter (Entrée).

Illustration 3. Déploiement du modèle personnalisé

Étape 7

Cliquez sur Create (créer).

Étape 8

Il existe plusieurs options pour créer un modèle. Choisissez Build your own template in editor (Créer votre propre modèle dans l’éditeur).

Illustration 4. Créer votre propre modèle

Étape 9

Dans la fenêtre Edit template (Modifier le modèle), supprimez tout le contenu par défaut et copiez le contenu à partir du fichier azure_asav_autoscale.json mis à jour et cliquez sur Save (Enregistrer).

Illustration 5. Modifier le modèle

Étape 10

Dans la section suivante, renseignez tous les paramètres. Reportez-vous à Paramètres d’entrée pour en savoir plus sur chaque paramètre, puis cliquez sur Buy (Acheter).

Illustration 6. Paramètres du modèle ARM

Remarque

 

Vous pouvez également cliquer sur Edit Parameters (Modifier les paramètres) et modifier le fichier JSON ou charger le contenu prérempli.

Le modèle ARM a des capacités de validation d’entrée limitées. Il est donc de votre responsabilité de valider l’entrée.

Étape 11

Lorsqu’un déploiement de modèle est réussi, il crée toutes les ressources requises pour l’évolutivité automatique d’ASA virtuel pour la solution Azure. Consultez les ressources dans la figure suivante. La colonne Type décrit chaque ressource, y compris l’application Logic, VMSS, les équilibreurs de charges, l’adresse IP publique, etc.

Illustration 7. ASA Virtuel Déploiement du modèle d’évolutivité automatique

Déployer l’application Azure Function

Lorsque vous déployez le modèle ARM, Azure crée une application Function minimale, que vous devez ensuite mettre à jour et configurer manuellement avec les fonctions requises pour la logique Auto Scale Manager (gestionnaire d’évolutivité automatique).

Avant de commencer

Procédure


Étape 1

Accédez à l'application Function que vous avez créée lors du déploiement du modèle ARM et vérifiez qu’aucune fonction n’est présente. Dans un navigateur, accédez à cette URL :

https://<Function App Name>.scm.azurewebsites.net/DebugConsole

Par exemple dans Déployer le modèle ARM d’évolutivité automatique :

https://asav-function-app.scm.azurewebsites.net/DebugConsole

Étape 2

Dans l’explorateur de fichiers, accédez à site/wwwroot.

Étape 3

Glissez et déposez le fichier ASM_Function.zip dans le coin droit de l’explorateur de fichiers.

Illustration 8. Charger les fonctions d’évolutivité automatique ASA Virtual

Étape 4

Une fois le chargement réussi, toutes les fonctions sans serveur devraient apparaître.

Illustration 9. Fonctions sans serveur ASA Virtual

Étape 5

Téléchargez le client PuTTY SSH.

Les fonctions Azure doivent accéder à l'ASA virtuel par l’intermédiaire d’une connexion SSH. Cependant, les bibliothèques à code source libre utilisées dans le code sans serveur ne prennent pas en charge les algorithmes d’échange de clés SSH utilisés par l’ASA virtuel. Par conséquent, vous devez télécharger un client SSH préconçu.

Téléchargez l’interface CLI PuTTY sur le serveur principal PuTTY (plink.exe) à partir de www.putty.org.

Illustration 10. Télécharger PuTTY

Étape 6

Renommez le fichier exécutable client SSH plink.exe en asassh.exe.

Étape 7

Glissez et déposez le fichier asassh.exe dans le coin droit de l’explorateur de fichiers, à l’emplacement où ASM_Function.zip a été chargé à l’étape précédente.

Étape 8

Vérifiez que le client SSH est présent avec l'application de fonction. Actualisez la page au besoin.


Mise au point de la configuration

Quelques configurations sont disponibles pour ajuster le gestionnaire d’évolutivité automatique ou à utiliser pour le débogage. Ces options ne sont pas exposées dans le modèle ARM, mais vous pouvez les modifier dans Function App (Appli Fonction).

Avant de commencer


Remarque


Cela peut être modifié à tout moment. Suivez cette séquence pour modifier les configurations.

  • Désactiver Function App (Appli Fonction).

  • Attendre la fin de la tâche planifiée existante.

  • Modifier et enregistrer la configuration.

  • Activer Function App (Appli Fonction).


Procédure


Étape 1

Dans le portail Azure, recherchez et sélectionnez l’application de fonction d’ASA virtuel.

Illustration 11. ASA virtuelFunction App (Appli Fonction)

Étape 2

Les configurations transmises par le modèle ARM peuvent également être modifiées ici. Les noms des variables peuvent sembler différents de ceux du modèle ARM, mais vous pouvez facilement identifier le but de ces variables à partir de leur nom.

La plupart des options s’expliquent d’elles-mêmes à partir de leur nom. Par exemple :

  • Nom de configuration : « DELETE_FAULTY_ASA » (Valeur par défaut : OUI)

    Pendant l’évolutivité à la hausse, une nouvelle instance ASA virtuel est lancée et configuré via le fichier de configuration. En cas d’échec de la de l’enregistrement, en fonction de cette option, le gestionnaire d’évolutivité automatique décidera de conserver cette instance ASA virtuel ou de la supprimer. (OUI : supprimer l’ASA virtuel défectueux/NON : conserver l’instance ASA virtuel même si la configuration échoue).

  • Dans les paramètres de Function App (Appli Fonction), toutes les variables (y compris les variables contenant une chaîne sécurisée comme « password » (mot de passe)) peuvent être vues en texte clair par les utilisateurs qui ont accès à l’abonnement Azure.

    Si les utilisateurs rencontrent des problèmes de sécurité à ce sujet (par exemple, si un abonnement Azure est partagé entre des utilisateurs ayant des privilèges inférieurs au sein de l’organisation), un utilisateur peut utiliser le service Key Vault d’Azure pour protéger les mots de passe. Une fois cette configuration terminée, au lieu de fournir un « password » (mot de passe) en texte clair dans les paramètres de fonction, l’utilisateur doit fournir un identifiant sécurisé généré par le trousseau de clés où le mot de passe est stocké.

    Remarque

     

    Recherchez dans la documentation d’Azure pour trouver les bonnes pratiques pour sécuriser vos données d’application.


Configurer le rôle IAM dans l’ensemble de machines virtuelles évolutives

Azure Identity and Access Management (IAM) est utilisé dans le cadre de la sécurité et du contrôle d’accès Azure pour gérer et contrôler l’identité d’un utilisateur. Les identités gérées pour les ressources d’Azure fournissent aux services Azure une identité gérée automatiquement dans Azure Active Directory.

Cela permet à Function App (Appli Fonction) de contrôler les ensembles d’évolutivité des machines virtuelles (VMSS) sans renseignements d’authentification explicites.

Procédure


Étape 1

Dans le portail Azure, accédez à VMSS.

Étape 2

Cliquez sur Access control (IAM) (Contrôle d’accès (IAM)).

Étape 3

Cliquez sur Add (Ajouter) pour ajouter une affectation de rôle

Étape 4

Dans la liste déroulante Add Role Assignment (Ajouter une affectation de rôle), choisissez Contributor (Contributeur).

Étape 5

Dans la liste déroulante Assign access to (Affecter l’accès à), sélectionnez Function App (Appli Fonction).

Étape 6

Sélectionnez l’application de fonction ASA virtuel.

Illustration 12. Affectation du rôle AIM

Étape 7

Cliquez sur Save (enregistrer).

Remarque

 

Vous devez également vérifier qu’aucune instance ASA virtuel n’a encore été lancée.


Mettre à jour les groupes de sécurité

Le modèle ARM crée deux groupes de sécurité, un pour l’interface de gestion et un pour les interfaces de données. Le groupe de sécurité de gestion autorisera uniquement le trafic requis pour les activités de gestion d’ASA virtuel. Cependant, le groupe de sécurité de l’interface de données autorisera tout le trafic.

Procédure


Ajustez les règles des groupes de sécurité en fonction de la topologie et des besoins en application de vos déploiements.

Remarque

 

Le groupe de sécurité de l’interface de données doit autoriser au minimum le trafic SSH provenant des équilibreurs de charges.


Mettre à jour l’application Azure Logic

L’application Logic agit en tant qu’orchestrateur de la fonctionnalité d’évolutivité automatique. Le modèle ARM crée une application Logic minimale, que vous devez ensuite mettre à jour manuellement pour fournir les renseignements nécessaires à son fonctionnement en tant qu’orchestrateur de l’évolutivité automatique.

Procédure


Étape 1

À partir du référentiel, récupérez le fichier LogicApp.txt dans le système local et modifiez-le comme indiqué ci-dessous.

Important

 

Lisez et comprenez toutes ces étapes avant de continuer.

Ces étapes manuelles ne sont pas automatisées dans le modèle ARM afin que seule l’application Logic puisse être mise à niveau indépendamment plus tard.

  1. Recherchez et remplacez toutes les occurrences de « SUBSCRIPTION_ID » par les renseignements de votre ID d’abonnement.

  2. Recherchez et remplacez toutes les occurrences de « RG_NAME » par le nom de votre groupe de ressources.

  3. Recherchez et remplacez toutes les occurrences de « FUNCTIONAPPNAME » par le nom de votre application de fonction.

    L’exemple suivant montre quelques-unes de ces lignes dans le fichier LogicApp.txt :

    
      "AutoScaleManager": {
          "inputs": {
              "function": {
                  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG_NAME/providers/Microsoft.Web/sites/FUNCTIONAPPNAME/functions/AutoScaleManager"
              }
    .
    .
                          },
                          "Deploy_Changes_to_ASA": {
                              "inputs": {
                                  "body": "@body('AutoScaleManager')",
                                  "function": {
                                      "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG_NAME/providers/Microsoft.Web/sites/FUNCTIONAPPNAME/functions/DeployConfiguration"
                                  }
    .
    .
                          "DeviceDeRegister": {
                              "inputs": {
                                  "body": "@body('AutoScaleManager')",
                                  "function": {
                                      "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG_NAME/providers/Microsoft.Web/sites/FUNCTIONAPPNAME/functions/DeviceDeRegister"
                                  }
                              },
                              "runAfter": {
                                  "Delay_For_connection_Draining": [
    
    
  4. (Facultatif) Modifiez l’intervalle de déclenchement ou conservez la valeur par défaut (5). Il s’agit de l’intervalle de temps auquel la fonctionnalité d’évolutivité automatique est déclenchée périodiquement. L’exemple suivant montre ces lignes dans le fichier LogicApp.txt :

    
            "triggers": {
                "Recurrence": {
                    "conditions": [],
                    "inputs": {},
                    "recurrence": {
                        "frequency": "Minute",
                        "interval": 5
                    },
    
    
  5. (Facultatif) Modifiez le temps de purge ou conservez la valeur par défaut (5). Il s’agit de l’intervalle de temps pour purger les connexions existantes de l’ASA virtuel avant de supprimer le périphérique pendant l’opération d’évolutivité à la baisse. L’exemple suivant montre ces lignes dans le fichier LogicApp.txt :

    
             "actions": {
                  "Branch_based_on_Scale-In_or_Scale-Out_condition": {
                      "actions": {
                          "Delay_For_connection_Draining": {
                              "inputs": {
                                  "interval": {
                                      "count": 5,
                                      "unit": "Minute"
                                  }
    
    
  6. (Facultatif) Modifiez le temps de refroidissement ou conservez la valeur par défaut (10). C’est le moment d’effectuer AUCUNE ACTION une fois le processus d’évolutivité à la hausse terminé. L’exemple suivant montre ces lignes dans le fichier LogicApp.txt :

    
                     "actions": {
                         "Branch_based_on_Scale-Out_or_Invalid_condition": {
                             "actions": {
                                 "Cooldown_time": {
                                     "inputs": {
                                         "interval": {
                                             "count": 10,
                                             "unit": "Second"
                                      }
    
    

Remarque

 

Ces étapes peuvent également être effectuées à partir du portail Azure. Pour en savoir plus, consultez la documentation Azure.

Étape 2

Accédez à Logic App code view (Vue du code d’application Logic), supprimez le contenu par défaut et collez le contenu du fichier modifié LogicApp.txt, puis cliquez sur Save (Enregistrer).

Illustration 13. Vue du code d’application Logic

Étape 3

Lorsque vous enregistrez l’application Logic, elle est à l’état « Disabled » (Désactivé). Cliquez sur Enable (Activer) lorsque vous souhaitez démarrer le gestionnaire d’évolutivité automatique.

Illustration 14. Activer l’application Logic

Étape 4

Une fois cette option activée, les tâches commencent à s’exécuter. Cliquez sur l’état « Running » (En cours d’exécution) pour voir l’activité.

Illustration 15. État en cours d’exécution de l’application Logic

Étape 5

Une fois que l’application Logic démarre, toutes les étapes liées au déploiement sont terminées.

Étape 6

Vérifiez dans le VMSS que des instances ASA virtuel sont créées.

Illustration 16. Instances ASA virtuel en cours d’exécution

Dans cet exemple, trois instances ASA virtuel sont lancées parce que « minAsaCount » a été défini sur « 3 » et « initDeploymentMode » a été défini sur « BULK » dans le déploiement du modèle ARM.


Mettre à niveau l’ASA virtuel

La mise à niveau d’ASA virtuel est prise en charge uniquement sous la forme d’une mise à niveau d’image de l’ensemble d’évolutivité des machines virtuelles (VMSS). Par conséquent, vous mettez à niveau l’ASA virtuel par l’intermédiaire de l’interface API REST d’Azure.


Remarque


Vous pouvez utiliser n’importe quel client REST pour mettre à niveau l’ASA virtuel.


Avant de commencer

  • Obtenez la nouvelle version de l’image ASA virtuel disponible sur le marché (p. ex. : 914.001).

  • Obtenez l’UGS utilisée pour déployer l’ensemble d’évolutivité d’origine (p. ex. : asav-azure-byol).

  • Obtenez le nom défini pour le groupe de ressources et l’ensemble d’évolutivité des machines virtuelles.

Procédure


Étape 1

Dans un navigateur, accédez à l’URL suivante :

https://docs.microsoft.com/en-us/rest/api/compute/virtualmachinescalesets/update#code-try-0

Étape 2

Saisissez les détails dans la section Parameters (Paramètres).

Illustration 17. Mettre à niveau l’ASA virtuel

Étape 3

Saisissez l’entrée JSON contenant la nouvelle version d’image d’ASA virtuel, l’UGS et le déclencheur d’exécution dans la section Body (Corps).


{
 "properties": {
        "virtualMachineProfile": {
              "storageProfile": {
                      "imageReference": {
                           "publisher": "cisco",
                           "offer": "cisco-asav",
                           "sku": "asav-azure-byol",
                            "version": "650.32.0"
                      }
                },
           }
     }
}

Étape 4

Une réponse réussie d’Azure signifie que le VMSS a accepté la modification.

La nouvelle image sera utilisée dans les nouvelles instances d’ASA virtuel qui seront lancées dans le cadre de l’opération d’évolutivité à la hausse.

  • Les instances d’ASA virtuel existantes continueront d’utiliser l’ancienne image logicielle tant qu’elles existent dans un ensemble d’évolutivité.

  • Vous pouvez remplacer le comportement ci-dessus et mettre à niveau les instances d’ASA virtuel existantes manuellement. Pour ce faire, cliquez sur le bouton Upgrade (Mettre à niveau) dans VMSS. Il redémarrera et mettra à niveau les instances d’ASA virtuel sélectionnées. Vous devez réenregistrer et reconfigurer ces instances d’ASA virtuel mises à niveau manuellement. Notez que cette méthode n’est PAS recommandée.


Logique d’évolutivité automatique

Logique d’évolutivité à la hausse

  • POLITIQUE-1 : le protocole d’évolutivité à la hausse sera déclenché lorsque la charge moyenne de n’importe quel ASA virtuel dépasse le seuil d’évolutivité à la hausse pour la durée configurée.

  • POLITIQUE-2 : l’évolutivité à la hausse sera déclenchée lorsque la charge moyenne de tous les appareils ASA virtuel dépassera le seuil d’évolutivité à la hausse pour la durée configurée.

Logique d’évolutivité à la baisse

  • Si l’utilisation du CPU de tous les appareils ASA virtuel passe en dessous du seuil d’évolutivité à la baisse configuré pour la durée configurée.

Notes

  • L’évolutivité à la baisse/à la hausse se produit aux étapes de 1 (c.-à-d. que seul 1 ASA virtuel se verra évoluer à baisse/à la hausse à la fois).

  • La logique ci-dessus est basée sur l’hypothèse que l’équilibreur de charges tentera de répartir également les connexions sur tous les appareils ASA virtuel et qu’en moyenne, tous les appareils ASA virtuel devraient être chargés de la même manière.

Journalisation et débogage de l’évolutivité automatique

Chaque composant du code sans serveur a son propre mécanisme de journalisation. En outre, des journaux sont publiés dans les données d’application.

  • Les journaux des fonctions Azure individuelles peuvent être consultés.

    Illustration 18. Journaux de fonction Azure
  • Des journaux similaires pour chaque exécution de l’application Logic et de ses composants individuels peuvent être consultés.

    Illustration 19. Journaux d’exécution de l’application Logic
  • Si nécessaire, toute tâche en cours dans l’application Logic peut être arrêtée/terminée à tout moment. Cependant, les appareils ASA virtuel en cours d’exécution sont lancés ou terminés et seront dans un état incohérent.

  • Le temps nécessaire à chaque exécution ou tâche individuelle peut être vu dans l’application Logic.

  • Function App (Appli Fonction) peut être mise à niveau à tout moment en chargeant un nouveau fichier zip. Arrêtez l’application Logic et attendez que toutes les tâches soient terminées avant de mettre à niveau Function App (Appli Fonction).

Lignes directrices et limites relatives à l’évolutivité automatique

Prenez connaissance des directives et des limites suivantes lors du déploiement de la mise à l’échelle automatique de ASA virtuel pour Azure :

  • Les décisions d’évolutivité sont basées sur l’utilisation du processeur.

  • L’interface de gestion de l’ASA virtuel est configurée pour avoir une adresse IP publique.

  • Seul IPv4 est pris en charge.

  • Le modèle ARM a des capacités de validation d’entrée limitées. Il est donc de votre responsabilité de prévoir une validation d’entrée appropriée.

  • L’administrateur Azure peut voir des données sensibles (comme les informations d’authentification et les mots de passe de l’administrateur) en texte brut dans l’environnement d’application de fonction. Vous pouvez utiliser le service Azure Key Vault pour sécuriser des données sensibles.

  • Toute modification de la configuration ne sera pas automatiquement reflétée sur les instances déjà en cours d’exécution. Ces modifications ne seront reflétées que sur les prochains périphériques intégrés. Toutes les modifications de ce type doivent être transférées manuellement vers les périphériques existants.

  • Si vous rencontrez des problèmes lors de la mise à jour manuelle de la configuration sur les instances existantes, nous vous recommandons de supprimer ces instances du groupe d’évolutivité et de les remplacer par de nouvelles.

Dépannage

Voici des scénarios d’erreurs courants et des conseils de débogage pour l’évolutivité automatique de l’ASA virtuel pour Azure :

  • Impossible de connecter avec le protocole SSH à l’ASA virtuel : vérifiez si un mot de passe complexe est transmis à l’ASA virtuel au moyen du modèle; vérifiez si les groupes de sécurité autorisent les connexions SSH.

  • Échec du contrôle de l’intégrité de l’équilibreur de charges : vérifiez si l’ASA virtuel répond à SSH sur les interfaces de données; vérifiez les paramètres du groupe de sécurité.

  • Problèmes de trafic : vérifiez les règles de l’équilibreur de charges, les règles NAT/les routes statiques configurées dans ASA virtuel; vérifiez les détails d’Azure Virtual Network, des sous-réseaux et de la passerelle fournis dans le modèle et les règles du groupe de sécurité.

  • L’application Logic n’a pas pu accéder à VMSS : vérifiez si la configuration du rôle IAM dans VMSS est correcte.

  • L’application Logic fonctionne très longtemps : vérifiez l’accès SSH sur les appareils ASA virtuel qui évoluent à la hausse; vérifiez l’état des appareils ASA virtuel dans Azure VMSS.

  • La fonction Azure lance une erreur liée à l’ID d’abonnement : vérifiez que vous avez un abonnement par défaut sélectionné dans votre compte.

  • Échec de l’opération d’évolutivité à la baisse : parfois, Azure prend considérablement de temps pour supprimer une instance dans de telles situations. L’opération d’évolutivité à la baisse peut expirer et signaler une erreur; mais l’instance sera peut-être supprimée.

  • Avant de modifier la configuration, assurez-vous de désactiver l’application Logic et d’attendre la fin de toutes les tâches en cours.

Voici des conseils de dépannage si vous rencontrez des problèmes lors de l’évolutivité automatique d’ASA virtuel avec le déploiement d’Azure GWLB :

  • Vérifiez l’association ELB-GWLB.

  • Vérifiez l’état de la sonde d’intégrité dans GWLB.

  • Vérifiez la configuration VXLAN en vérifiant le flux de trafic au niveau des interfaces physiques et logiques de l’ASA virtuel.

  • Vérifiez les règles du groupe de sécurité.

Créer des fonctions Azure à partir du code source

Configuration système requise

  • Ordinateur de bureau/portable Microsoft Windows.

  • Visual Studio (testé avec Visual Studio 2019 version 16.1.3)


    Remarque


    Les fonctions Azure sont écrites à l’aide de C#.


  • La charge de travail « Azure Development » (développement Azure) doit être installée dans Visual Studio.

Créer avec Visual Studio

  1. Téléchargez le dossier « code » sur la machine locale.

  2. Accédez au dossier «ASA AutoScaling ».

  3. Ouvrez le fichier de projet «ASAAutoScaling.csproj » dans Visual Studio.

  4. Utilisez la procédure standard de Visual Studio pour nettoyer et créer.

    Illustration 20. Création dans Visual Studio
  5. Une fois que la version est compilée avec succès, accédez au dossier \bin\Release\netcoreapp2.1.

  6. Sélectionnez tout le contenu, cliquez sur Send to (envoyer à) > Compressed (zipped) folder (dossier compressé (zip)), et enregistrez le fichier ZIP sous le nom ASM_Function.zip.

    Illustration 21. Créer ASM_Function.zip