AWS CloudFormation et haute disponibilité avec ArcGIS Server
Vous pouvez faire appel à certaines fonctionnalités d'Amazon Web Services (AWS) CloudFormation pour bénéficier de certains avantages de la haute disponibilité lors de l'utilisation d'ArcGIS Server sous AWS.
Des données contextuelles sont nécessaires pour appréhender l'utilité de cette méthode. Les utilisateurs commencent généralement à utiliser ArcGIS Server sous AWS par le biais d'ArcGIS Server Cloud Builder. Cet assistant simple aide à configurer un site ArcGIS Server dans Amazon Elastic Compute Cloud (EC2). La sortie de l'assistant est un site comptant potentiellement de nombreuses machines qui peuvent distribuer des tâches entre elles et tirer pleinement parti de l'architecture peer-to-peer proposée par ArcGIS Server 10.1 et 10.2. Cloud Builder offre également une structure permettant de créer des sauvegardes de sites, ainsi que des modèles destinés à lancer des sites supplémentaires selon un motif identique.
L'architecture créée par Cloud Builder est représentée dans le diagramme suivant.
Malgré tous les avantages qu'il présente, le site créé par Cloud Builder présente quelques inconvénients en termes de haute disponibilité. Si l'instance du serveur SIG exécutant l'emplacement de configuration est perdue, le site devient inutilisable. De plus, la restauration d'une sauvegarde peut prendre 30 minutes voire plus, ce qui peut ne pas être acceptable pour certaines organisations.
Une autre approche qui évite certains de ces écueils est une architecture en silos, illustrée ci-après, dans laquelle de nombreux sites ArcGIS Server identiques mais indépendants sont reliés par un équilibreur de charges élastiques (ELB). Cette architecture était utilisée exclusivement avec ArcGIS Server sous AWS avant la version 10.1. Il est toujours possible de l'utiliser avec les versions 10.1 et 10.2 si vous êtes prêt à sacrifier la facilité d'administration et la capacité de distribuer des tâches importantes (par exemple la création de tuiles de cache) sur les serveurs.
L'un des principaux avantages de l'architecture en silos est qu'elle permet de continuer à utiliser ArcGIS Server même si vous perdez une instance de serveur SIG.
Il est impossible de créer l'architecture en silos avec Cloud Builder : vous devez la créer manuellement au moyen de la console de gestion AWS ou d'API. Cependant, certaines fonctionnalités d'Amazon CloudFormation peuvent vous aider à lancer et gérer l'architecture en silos plus facilement qu'auparavant. CloudFormation garantit que vous conservez toujours un nombre minimal de machines dans votre site, ce qui permet une récupération transparente lorsque l'une des machines devient indisponible.
Le reste de cette rubrique explique comment configurer une architecture en silos au moyen de CloudFormation.
Utiliser CloudFormation pour créer l'architecture en silos
Amazon CloudFormation est un service qui permet de définir des architectures pour les services Web d'Amazon que vous utilisez. C'est un exemple d'infrastructure en tant que code, c'est-à-dire que vous écrivez du code qui peut déployer une infrastructure de matériel particulière dans un environnement cloud. Dans le cas de CloudFormation, vous utilisez un modèle JavaScript object notation (JSON) pour définir une pile de ressources qui fonctionnent ensemble de manière prédéterminée. Dans ce cas, le modèle définit vos sites ArcGIS Server en silos et l'équilibreur de charges élastiques qui les relie.
Copier et examiner les modèles
- Pour commencer, examinez l'un de ces exemples de modèles :
- Copiez le modèle de code dans un fichier de texte et enregistrez-le.
- Examinez les propriétés JSON définies et modifiez-les selon vos besoins.
Plusieurs propriétés de l'objet Parameters peuvent être définies lorsque vous lancez la pile, par exemple le nombre et le type d'instances faisant partie du site et l'image virtuelle AMI (Amazon Machine Image) utilisée. D'autres ressources, comme les paramètres d'équilibreur de charges élastiques (ELB), sont consumées dans le modèle et sont modifiables uniquement par leur créateur.
Remarquez les paramètres de mise à l'échelle automatique et d'alarme CloudWatch qui définissent les déclencheurs pour l'ajout et la suppression de machines de votre site selon des facteurs tels que l'utilisation du processeur. Vous pouvez également définir le nombre de machines qui seront mises à jour immédiatement si vous apportez des changements à votre AMI, ce qui vous permet de toujours conserver une instance disponible.
- Outre les éléments trouvés dans ce modèle, vous pouvez introduire un LBCookieStickinessPolicy sur l'ELB, qui détermine si les sessions rémanentes sont activées. Cela garantit que les requêtes d'un utilisateur sont dirigées vers le même serveur SIG pendant toute la durée de sa session. Cela peut être utile pour travailler avec des entités longue durée telles que les tâches de géotraitement asynchrone.
- Vous pouvez également définir le certificat SSL à appliquer sur la pile. Pour ce faire, téléchargez votre certificat vers AWS Identity and Access Management (IAM) et insérez du code dans le modèle pour spécifier le paramètre SSLCertificateId sur l'ELB.
Créer la pile
Une fois que vous avez sélectionné un modèle, suivez les étapes ci-après pour lancer un site ArcGIS Server grâce à une architecture en silos.
- Utilisez la console de gestion AWS pour lancer une instance grâce à l'une des images AMI ArcGIS Server fournies par Esri.
- Attribuez une licence ArcGIS Server et créez un site sur l'instance.
- Configurez l'instance avec vos services, vos données et toutes applications tierces que vous souhaitez installer.Attention :
Si vous possédez des services de carte qui n'utiliseront pas de cache, définissez la propriété supportedImageReturnType du service de carte sur MIME au lieu de URL (pour que l'utilisateur ne soit pas redirigé vers la pile, et potentiellement la mauvaise instance, lors d'une tentative de récupération d'images de carte). Vous devez modifier les propriétés du service dans le répertoire de l'administrateur ArcGIS Server pour pouvoir ajuster ce paramètre, car il n'est pas disponible dans ArcGIS Server Manager.
- Enregistrez une image AMI à partir de votre instance. Toutes les instances créées à partir de cette image AMI seront identiques. Chacune sera son propre site ArcGIS Server avec son propre emplacement de configuration, ses propres répertoires du serveur et ses propres données.
- Une fois que l'image AMI est créée, prenez note de l'ID AMI. Elle est indispensable pour créer la pile.
- Dans la console de gestion AWS, cliquez sur Services > CloudFormation pour ouvrir la page Piles CloudFormation.
- Cliquez sur Créer une pile.
- Fournissez un Nom de pile.
- Sélectionnez Télécharger un fichier modèle, naviguez vers un des fichiers de modèle que vous avez enregistrés et modifiés ci-dessus, puis cliquez sur Continuer.
- Définissez les propriétés suivantes pour votre pile :
- Changez la propriété AMI en l'ID de l'image AMI que vous avez créée à l'étape 3.
- Changez le paramètre MaxSize en le nombre maximal d'instances que vous voulez avoir simultanément dans la pile.
- Si vous utilisez le modèle VPC, définissez les options des paramètres VPCId, Subnets et AZs (zones de disponibilités) de manière à ce qu'elles correspondent aux paramètres d'environnement VPC.
- Ajustez le paramètre InstanceType pour refléter la taille de l'instance de votre choix.
- Modifiez le paramètre KeyName en le nom des paires de clés Amazon. N'incluez pas l'extension .pem.
- Changez le paramètre MinSize en le nombre minimal d'instances que vous voulez avoir simultanément dans la pile. Si vous conservez cette valeur à 2 ou plus, vous vous prémunissez contre la perte de votre site si une machine n'est plus disponible. CloudFormation créée immédiatement une seconde instance si une seule est détectée.
- Cliquez sur Continuer.
- Ajoutez des balises afin d'identifier aisément votre instance, par exemple Key = Name et Value = MyCloudFormation, puis cliquez sur Continuer.
- Examinez tous vos paramètres, puis cliquez sur Continuer lorsque vous êtes prêt à créer votre pile.
Votre pile sera lancée. Après un court laps de temps, ArcGIS Server sera accessible grâce au format d'URL suivant : http://<adresse de l'équilibreur de charges élastiques>/arcgis/rest.