

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Déployez des instances de cluster de basculement SQL Server sur Amazon EC2 et Amazon à l'aide FSx de Terraform
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx"></a>

*Mark Hudson et Matt Burgess, Amazon Web Services*

## Résumé
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-summary"></a>

Ce modèle utilise Terraform pour déployer des instances de cluster de basculement SQL Server (FCIs) sur des nœuds Windows Server Failover Cluster (WSFC) sur Amazon Elastic Compute Cloud (Amazon). EC2 En outre, le modèle utilise le stockage FSx partagé d'Amazon pour les données et les fichiers journaux. 

Lorsque les bases de données SQL Server sont migrées vers AWS, le premier choix est Amazon RDS for SQL Server. Cependant, Amazon RDS for SQL Server n'est parfois pas adapté et SQL Server doit être déployé sur EC2 Amazon dans une architecture à haute disponibilité. Dans cette solution, SQL Server FCIs est installé sur les nœuds WSFC.

Le module Terraform inclus dans ce modèle fournit jusqu'à deux instances Amazon EC2 SQL Server. Un système de fichiers Amazon FSx pour Windows File Server agit en tant que témoin du quorum et stocke les données partagées et les fichiers journaux. Quel que soit le nombre d'instances configurées, les nœuds d'instance SQL Server créeront et rejoindront toujours un cluster FCI afin de garantir la parité environnementale. (Généralement, une instance est configurée pour le développement et deux instances pour les environnements de production.) Pour les configurations qui utilisent deux nœuds pour une haute disponibilité, un Network Load Balancer interne est configuré. Le Network Load Balancer utilise une sonde de santé configurée sur le cluster FCI pour identifier le nœud principal. 

## Conditions préalables et limitations
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS.
+ Amazon Virtual Private Cloud (Amazon VPC) avec deux sous-réseaux dans des zones de disponibilité distinctes.
+ Ensemble d'options [DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/DHCPOptionSet.html) Amazon VPC. Configurez le nom de domaine pour qu'il corresponde à votre nom de domaine Active Directory et le domaine et les serveurs de noms NetBIOS pour qu'ils pointent vers vos contrôleurs de domaine Active Directory. Pour plus d'informations, consultez la section *Configuration du VPC* dans [Informations supplémentaires](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional).
+ AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD).
+ Image de machine Amazon personnalisée (AMI). Pour plus de détails, consultez la section *Configuration de l'AMI* dans [Informations supplémentaires](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional).
+ Compartiment Amazon Simple Storage Service (Amazon S3) contenant l'image ISO de SQL Server. Cette condition préalable n'est requise que si vous utilisez [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) avec le `component.yaml` fichier fourni pour créer l'AMI personnalisée.
+ AWS Key Management Service (AWS KMS) clé de chiffrement.
+ Par défaut, SQL Server est installé à l'aide d'une clé de produit de l'édition développeur. Les systèmes de production sont censés utiliser une clé de produit valide transmise au module par la variable correspondante.

**Limites**
+ Cette solution nécessite AWS Managed Microsoft AD. Toutefois, si vous préférez, vous pouvez plutôt utiliser une implémentation Active Directory autogérée. Pour ce faire, modifiez le module Amazon FSx Terraform inclus pour supprimer l'`active_directory_id`attribut. Ajoutez ensuite les quatre attributs requis pour l'autogestion d'Active Directory, comme indiqué dans la documentation [Terraform](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/fsx_windows_file_system).
+ SQL Server est configuré pour utiliser l'authentification en mode mixte. Si vous préférez, vous pouvez utiliser l'authentification Windows uniquement. Pour ce faire, dans le script de données utilisateur fourni, supprimez les `/SAPWD` paramètres `/SECURITYMODE` et fournis à la `setup.exe` commande. Vous pouvez supprimer le `sql_accounts.tf` fichier et le `instances.tf` modifier pour supprimer l'`sql_sa_password`entrée.
+ Lorsque vous supprimez un cluster déployé, vous devez supprimer les objets informatiques virtuels correspondants et les objets informatiques individuels dans Active Directory. Pour supprimer les objets, utilisez les outils d'administration Active Directory.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

**Versions du produit**

Cette solution a été testée avec les versions suivantes :
+ Windows Server 2019
+ SQL Server 2019
+ [Terraform v0.13.0](https://developer.hashicorp.com/terraform/language/v1.1.x/upgrade-guides/0-13)

## Architecture
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-architecture"></a>

**Pile technologique source**
+ SQL Server

**Pile technologique cible**
+ SQL Server FCI sur les nœuds WSFC à l'aide d'Amazon EC2
+ Serveur FSx de fichiers Amazon pour Windows
+ Compartiment Amazon S3
+ AWS Secrets Manager
+ AWS Managed Microsoft AD
+ AWS KMS
+ Gestion des identités et des accès AWS (JE SUIS)

**Architecture cible**

Le schéma suivant montre l'architecture de cette solution.

![\[Architecture permettant de déployer des instances de cluster de basculement SQL Server sur des nœuds de cluster de basculement Windows Server sur Amazon. EC2\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/45f3ab19-d240-4353-ab6e-f6e565f537a4/images/0bff16f2-94e7-4e86-91ea-7ab5f3725620.png)


Le diagramme décrit les éléments suivants :
+ Rôle IAM fournissant aux EC2 instances l'accès à Secrets Manager AWS KMS et à Secrets Manager
+ Deux nœuds SQL Server déployés sur des EC2 instances Amazon dans des sous-réseaux privés répartis sur deux zones de disponibilité
+ Un Network Load Balancer pour faciliter les connexions à l'instance SQL Server active (non déployé lors de la configuration d'un cluster à nœud unique)
+ Système de fichiers Amazon FSx pour Windows File Server déployé dans les deux sous-réseaux privés pour un stockage partagé par les nœuds SQL Server
+ Secrets Manager pour le stockage des informations d'identification et de configuration d'Active Directory et de SQL Server
+ Compartiment Amazon S3 pour stocker l'image d'installation de SQL Server
+ AWS Managed Microsoft AD pour l'authentification Windows
+ AWS KMS pour créer la clé de chiffrement

**Automatisation et évolutivité**

[Vous pouvez automatiser le déploiement de l'architecture cible en utilisant les modules Terraform présents dans le GitHub référentiel.](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server) Vous devez modifier le `terraform.tfvars` fichier pour inclure des valeurs de variables spécifiques à votre environnement. Le compartiment Amazon S3, AWS Managed Microsoft AD les composants, la clé de AWS KMS chiffrement et certains secrets sont des conditions préalables à ce déploiement et ne sont pas inclus dans le code Terraform. 

## Outils
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-tools"></a>

**Services AWS**
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)permet à vos charges de travail et à vos AWS ressources sensibles aux annuaires d'utiliser Microsoft Active Directory dans le. AWS Cloud Dans ce modèle, AWS Managed Microsoft AD il est utilisé pour l'authentification Windows Server et SQL Server et pour le DNS.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement. Dans ce modèle, les instances de cluster de basculement SQL Server sont installées sur les EC2 instances Amazon.
+ [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) vous aide à automatiser la création, la gestion et le déploiement d'images de serveur personnalisées.
+ [Amazon FSx pour Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) fournit un stockage partagé entièrement géré sur Windows Server. Dans ce modèle, FSx le serveur de fichiers Windows fournit un stockage partagé pour les données et les fichiers journaux de SQL Server ainsi que pour le témoin du quorum.
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques pour protéger vos données. Dans ce modèle, il est utilisé pour chiffrer les secrets de Secrets Manager, le stockage SQL Server sur les volumes Amazon Elastic Block Store (Amazon EBS) et le système de fichiers FSx pour Windows File Server.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation. Dans ce modèle, les informations d'identification Active Directory pour l'installation et l'exécution de SQL Server, les informations `sa` d'identification utilisateur et les informations de connexion à la base de données sont stockées dans Secrets Manager.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données. Ce modèle utilise un compartiment Amazon S3 pour stocker l'image d'installation de SQL Server.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS.

******Autres outils**
+ [Microsoft SQL Server FCIs](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/always-on-failover-cluster-instances-sql-server?view=sql-server-ver15) est installé sur les nœuds de cluster Windows Server. En outre, ils peuvent être installés sur plusieurs sous-réseaux. Dans ce modèle, les instances FCI de SQL Server sont installées sur les nœuds WSFC.
+ [Terraform](https://www.terraform.io/) est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. Dans ce modèle, Terraform est utilisé pour créer les ressources et configurer les instances FCI de SQL Server.
+ Le [clustering Windows Server Failover](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/windows-server-failover-clustering-wsfc-with-sql-server?view=sql-server-ver15) fournit des fonctionnalités d'infrastructure qui prennent en charge la haute disponibilité des applications de serveur hébergées telles que SQL Server. Dans ce modèle, les nœuds FCI utilisent la fonctionnalité WSFC pour fournir une haute disponibilité locale grâce à la redondance au niveau de l'instance.

**Référentiel de code**

Le code de ce modèle est disponible dans le dépôt GitHub [cluster-amazon-elastic-compute- cloud-amazon-fsx-microsoft -sql-server](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server). Les ressources suivantes sont disponibles dans le référentiel :
+ Un `README.md` fichier qui fournit une vue d'ensemble de la solution et des informations supplémentaires sur l'installation et l'utilisation
+ Un ensemble de base de fichiers de configuration Terraform et un module FSx spécifique à Amazon pour approvisionner les composants de ce modèle
+ Un script de configuration d'instance exécuté en tant que script de données EC2 utilisateur Amazon
+ Un fichier `component.yam` L que Image Builder peut utiliser pour créer une AMI personnalisée

## Bonnes pratiques
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-best-practices"></a>

**Sécurité et correctifs**
+ Les installations et configurations préalables de l'AMI constituent la configuration minimale requise pour déployer des clusters SQL Server FCI. Des logiciels et des configurations supplémentaires peuvent être nécessaires pour se conformer aux normes et aux exigences de sécurité de votre entreprise.
+ Après le déploiement, appliquez régulièrement des correctifs à Windows. Corrigez directement les instances en cours d'exécution ou créez une nouvelle AMI avec les derniers correctifs Windows et remplacez les instances (une par une) à l'aide de la nouvelle AMI. AWS publie AMIs chaque mois un nouveau Windows contenant les derniers correctifs, pilotes et agents de lancement du système d'exploitation. Nous vous recommandons de vérifier la dernière AMI lorsque vous lancez de nouvelles instances ou lorsque vous créez vos propres images personnalisées.
+ Les EC2 instances Amazon sont configurées pour autoriser tout le trafic sortant. Lors du déploiement dans un environnement de production, les règles de sortie du groupe de sécurité doivent être mises en place pour limiter ce trafic aux destinations requises.
+ Le système de fichiers FSx pour Windows File Server peut enregistrer automatiquement des journaux d'audit pour le partage de fichiers et l'accès aux fichiers et aux dossiers et les expédier à la destination souhaitée si cela est requis dans votre environnement.
+ Faites régulièrement pivoter les secrets de Secrets Manager automatiquement. Pour la paire de clés d' EC2 instance Amazon, envisagez une solution de rotation automatique telle que décrite dans [Comment utiliser AWS Secrets Manager pour stocker et faire pivoter des paires de clés SSH en toute sécurité](https://aws.amazon.com/blogs/security/how-to-use-aws-secrets-manager-securely-store-rotate-ssh-key-pairs/). Pour les informations d'identification Active Directory et les secrets des `sa` informations d'identification SQL Server, configurez la rotation automatique conformément à vos politiques de gestion des mots de passe.

**Gestion d'Active Directory**
+ Dans le cadre du cluster FCI, Windows génère un objet de nom d'ordinateur (CNO) dans Active Directory. Le CNO répond aux requêtes DNS et transmet le trafic au nœud SQL actif. Nous vous *déconseillons* d'utiliser ce DNS fourni par Active Directory. Le TTL est trop élevé pour fournir un temps de basculement raisonnable et prend souvent jusqu'à 5 minutes pour refléter la nouvelle adresse IP principale. En revanche, pour les installations à haute disponibilité, le Network Load Balancer interne est configuré pour basculer en 30 secondes.
+ Un administrateur de domaine Active Directory est requis pour créer le cluster. Cette exigence est due aux autorisations élevées requises pour créer les objets du cluster et modifier les autorisations dans Active Directory. Toutefois, les services SQL Server n'ont pas besoin de s'exécuter en tant qu'administrateur de domaine. Nous vous recommandons donc de créer un deuxième utilisateur Active Directory à cette fin. Toutefois, vous pouvez éliminer cet utilisateur si les services s'exécutent en tant qu'administrateur de domaine. Dans ce cas, l'utilisateur administrateur du domaine doit être ajouté au groupe d'administrateurs Active Directory créé dans le cadre de ce modèle. 

## Épopées
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-epics"></a>

### Configurer les informations d'identification du cluster
<a name="set-up-cluster-credentials"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des groupes Active Directory. | Dans AWS Managed Microsoft AD, créez les groupes suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html)Pour plus de détails, consultez [la section Création d'un AWS Managed Microsoft AD groupe](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_create_group.html) dans la AWS documentation. | Administrateur AD | 
| Créez des utilisateurs Active Directory. | Dans AWS Managed Microsoft AD, créez les utilisateurs suivants[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html)Pour plus de détails, consultez [la section Création AWS Managed Microsoft AD d'un utilisateur](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html) dans la AWS documentation. | Administrateur AD | 
| Ajoutez les informations d'identification Active Directory aux secrets. | Utilisez Secrets Manager pour créer quatre secrets afin de stocker les informations suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html)Pour plus de détails, consultez la section [Créer un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) dans la AWS documentation. | Administrateur AWS | 

### Préparez l'environnement
<a name="prepare-the-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'AMI Windows. | Créez une AMI Windows personnalisée qui inclut les logiciels et les configurations requis. Pour plus de détails, consultez la section [Informations supplémentaires](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional). | Administrateur AWS, AWS DevOps | 
| Installez Terraform. | Pour installer Terraform, suivez les instructions sur le site Web de [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli). | AWS DevOps | 
| Pour cloner le référentiel. | Clonez le [référentiel](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server) de ce modèle. Pour plus de détails, consultez la section [Clonage d'un dépôt](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) sur le GitHub site Web. | AWS DevOps | 

### Installation du cluster
<a name="install-the-cluster"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Modifiez les variables Terraform. | Mettez à jour le `terraform.tfvars` fichier fourni pour définir toutes les variables sur des valeurs adaptées à votre environnement.Par exemple, mettez à jour les `domain_group_rdp_users` variables `domain_group_administrators` et pour utiliser votre nom de domaine Active Directory et le nom des groupes Active Directory créés précédemment. | AWS DevOps | 
| Initialisez Terraform. | Pour voir le déploiement proposé, accédez à la racine du référentiel. Utilisez l'interface de ligne de commande (CLI) Terraform pour exécuter `terraform init` puis exécuter. `terraform plan` | AWS DevOps | 
| Déployez des ressources. | Pour déployer le cluster SQL et les ressources associées, utilisez la CLI Terraform pour l'exécuter. `terraform apply` | AWS DevOps, administrateur AWS | 
| Validez le déploiement. | Pour valider le déploiement, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html) | DBA, administrateur système AWS | 

## Résolution des problèmes
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Le provisionnement de Terraform est terminé mais Windows Failover Cluster Manager n'indique pas qu'un cluster a été créé ou que le cluster est dans un état inutilisable. | L'installation complète des ressources et la configuration des clusters peuvent prendre de 45 à 60 minutes. Une fois Terraform terminé, le script de données utilisateur doit s'exécuter jusqu'à la fin, ce qui nécessite plusieurs redémarrages. Pour suivre la progression, vous pouvez utiliser le `Checkpoints` répertoire du `C:\` lecteur et l'installation de SQL Server se connecte`C:\Program Data\Microsoft SQL Server\150\Log`. Lorsque vous avez terminé, le message **Installation terminée** est disponible dans le `C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log` fichier. | 
| Après avoir provisionné un cluster fonctionnel, l'utilisation de Terraform pour supprimer et recréer le cluster échoue. Terraform est terminé, mais le cluster n'est pas correctement configuré. | Une partie du processus de provisionnement implique l'enregistrement des machines et des objets virtuels dans Active Directory et Active Directory DNS. Lorsque des noms d'ordinateur existent pour les nœuds du EC2 cluster Amazon et le nœud du cluster, FCI ne peut pas s'initialiser correctement et échouera au provisionnement.Pour résoudre ce problème, effectuez les opérations suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.html) | 

## Ressources connexes
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-resources"></a>

**AWS documentation**
+ [Créez des images personnalisées avec Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/create-images.html)
+ [Création d'une clé KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)
+ [Création d'un bucket à usage général](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)
+ [Création d'une politique clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)
+ [Création de votre AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html)

## Informations supplémentaires
<a name="deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-additional"></a>

**Informations sur le module Terraform**

Ce module utilise à la fois la configuration de l'AMI et la configuration des données utilisateur pour obtenir un bon équilibre entre le temps de provisionnement et la stabilité. Pendant le provisionnement, Windows nécessite plusieurs redémarrages et des temps d'attente. Une méthode de points de contrôle a été mise en œuvre pour se protéger contre les boucles infinies lors des redémarrages des données utilisateur persistantes. Les données utilisateur sont configurées pour être persistantes. Par conséquent, les scripts de configuration des données utilisateur doivent et doivent continuer à être développés pour être idempotents. L'idempotencie rationalise le processus de mise à jour, permettant aux instances d'être échangées au cours d'un cycle de mise à jour sans configuration manuelle pour rejoindre ou recréer des clusters FCI.

**Chaînes de connexion SQL Server et clustering en cas de basculement**

Le module publiera un secret contenant l'adresse du point de terminaison qui doit être utilisée dans les chaînes de connexion de cette base de données. Le nom du secret suit le format`{environment_name}/sqlserver/{cluster_name}/endpoint`. Pour les installations où un seul nœud est utilisé, vous pouvez vous attendre à ce qu'il s'agisse de l'adresse IP de l'interface SQL Server de l' EC2 instance Amazon. Pour les installations à haute disponibilité (deux instances), vous pouvez vous attendre à ce qu'il s'agisse du nom DNS du Network Load Balancer interne.

Le clustering virtuel par basculement n'est IPs pas pris en charge dans ce module. Une adresse IP virtuelle doit rester dans le même sous-réseau pour fonctionner. En AWS effet, un seul sous-réseau ne peut pas couvrir plusieurs zones de disponibilité. Par conséquent, l'utilisation du virtuel IPs empêcherait ce module d'être considéré comme hautement disponible.

Chaque EC2 instance Amazon reçoit trois adresses IP privées. Leur utilisation est la suivante :
+ **IP principale pour le trafic réseau** : adresse IP source pour le trafic de sortie.
+ **Communications FCI** : utilisées pour maintenir l'état et la synchronisation du cluster de basculement.
+ **SQL Server (port TCP 1433)** : écoute également le trafic cardiaque afin de déterminer quelle instance est principale.

**Configuration VPC**

Les [prérequis](#deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx-prereqs) répertorient un ensemble d'options DHCP configuré pour utiliser Active Directory pour la résolution DNS. Cependant, cette condition préalable n'est pas une exigence stricte. L'exigence absolue est que les EC2 instances soient capables de résoudre votre nom de domaine Active Directory. Il est possible de répondre à cette exigence par d'autres moyens, par exemple en utilisant des Amazon Route 53 Resolver points de terminaison. Pour plus d'informations, consultez [Intégrer la résolution DNS de votre service d'annuaire aux résolveurs Amazon Route 53](https://aws.amazon.com/blogs/networking-and-content-delivery/integrating-your-directory-services-dns-resolution-with-amazon-route-53-resolvers/) (article de AWS blog).

**Configuration de l'AMI**

L'AMI utilisée dans ce modèle doit contenir les logiciels et configurations prérequis suivants :

1. Téléchargez et étendez les fichiers d'installation de SQL Server 2019 dans`C:\SQL_Install_media`.

1. Installez les fonctionnalités Windows suivantes :
   + `Install-WindowsFeature Failover-Clustering`
   + `Install-WindowsFeature RSAT-AD-PowerShell`
   + `Install-WindowsFeature RSAT-AD-Tools`
   + `Install-WindowsFeature RSAT-Clustering-Mgmt`
   + `Install-WindowsFeature RSAT-Clustering-PowerShell`
   + `Install-WindowsFeature RSAT-Clustering-CmdInterface`

1. Désactivez le pare-feu Windows comme suit :
   + `Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled False`

1. Activez la méthode d'authentification CredSSP (`<domain>`remplacez-la par le nom de domaine Windows de votre organisation) comme suit :
   + `Enable-WSManCredSSP -Role "Server" -Force`
   + `Enable-WSManCredSSP -Role "Client" -DelegateComputer *.<domain>.com -Force`

1. Définissez les clés de registre suivantes :
   + Autoriser les informations d'authentification NTLM :
     + `HKLM:\Software\Policies\Microsoft\Windows\CredentialsDelegation`
       + Nom : `AllowFreshCredentialsWhenNTLMOnly`
       + Valeur : 1
       + Type : `REG_DWORD`
   + Autoriser les ordinateurs du domaine local à utiliser NTLM à partir de : PowerShell
     + Trajectoire : `HKLM:\Software\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentialsWhenNTLMOnly`
       + Nom : `1`
       + Valeur : `wsman/*.<domain>.com`
       + Type : `REG_SZ`

1. Configurez la [PowerShell galerie](https://learn.microsoft.com/en-us/powershell/gallery/overview?view=powershellget-3.x) comme suit :
   + `[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12`
   + `Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force`
   + `Set-PSRepository -Name PSGallery -InstallationPolicy Trusted`

1. Installez les PowerShell modules Windows suivants `*` :
   + `Install-Module -Name ComputerManagementDsc`
   + `Install-Module -Name FailOverClusterDsc`
   + `Install-Module -Name PSDscResources`
   + `Install-Module -Name xSmbShare`
   + `Install-Module -Name xActiveDirectory`
   + `Install-Module -Name SqlServer`

Pour utiliser Image Builder afin de créer l'AMI, suivez les instructions de la section [Création d'un pipeline d'images à l'aide de l'assistant EC2 Image Builderconsole](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html) de la documentation Image Builder. Pour créer le composant de la recette avec les prérequis précédents, procédez comme suit :

1. [Téléchargez le fichier [component.yaml](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server/blob/main/ami/component.yaml) depuis le `ami ` dossier du référentiel. GitHub ](https://github.com/aws-samples/cluster-amazon-elastic-compute-cloud-amazon-fsx-microsoft-sql-server)

1. Copiez le contenu dans un nouveau composant Image Builder.

1. Mettez à jour les espaces réservés suivants avec vos informations :
   + `<domain>`— Votre nom de domaine Active Directory
   + `<bucket_name>`— Nom du compartiment Amazon S3 contenant l'image SQL Server