Consolider les instances - AWS Conseils prescriptifs

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.

Consolider les instances

Cette section se concentre sur la technique d'optimisation des coûts qui consiste à combiner plusieurs instances de SQL serveur sur le même serveur afin de minimiser les coûts de licence et de maximiser l'utilisation des ressources.

Présentation

La création d'une instance fait partie du processus d'installation du moteur de base de données du SQL serveur. L'instance de SQL serveur est une installation complète contenant ses propres fichiers serveur, ses identifiants de sécurité et ses propres bases de données système (master, model, msdb et tempdb). Comme une instance possède ses propres fichiers et services, vous pouvez installer plusieurs instances de SQL serveur sur le même système d'exploitation sans que les instances n'interfèrent les unes avec les autres. Cependant, étant donné que les instances sont toutes installées sur le même serveur, elles partagent toutes les mêmes ressources matérielles, telles que le calcul, la mémoire et le réseau.

Il est courant de n'utiliser qu'une seule SQL instance de serveur par serveur dans les environnements de production afin qu'une instance « occupée » n'abuse pas des ressources matérielles partagées. Donner à chaque instance de SQL serveur son propre système d'exploitation, avec ses propres ressources, est une meilleure limite que de s'appuyer sur la gouvernance des ressources. Cela est particulièrement vrai pour les charges de travail de SQL serveurs à hautes performances qui nécessitent de grandes quantités RAM de CPU ressources.

Cependant, les charges de travail SQL du serveur n'utilisent pas toutes une grande quantité de ressources. Par exemple, certaines organisations attribuent à chacun de leurs clients sa propre instance de SQL serveur dédiée pour des raisons de conformité ou de sécurité. Pour les petits clients ou les clients qui ne sont généralement pas actifs, cela signifie qu'il faut exécuter les instances SQL du serveur avec un minimum de ressources.

Comme indiqué dans le guide Microsoft SQL Server 2019 : Licensing, chaque serveur exécutant SQL Server doit disposer d'un minimum de quatre CPU licences. Cela signifie que même si vous utilisez un serveur avec seulement deux serveursvCPUs, vous devez tout de même obtenir une licence SQL Server pour quatrevCPUs. Sur la base de la tarification des SQL serveurs publics de Microsoft, cela représente une différence de 3 945$ si vous utilisez l'édition SQL Server Standard. Pour les entreprises qui exploitent plusieurs serveurs avec des instances de SQL serveur uniques utilisant un minimum de ressources, le coût combiné de la licence des ressources non utilisées peut être substantiel.

Scénario d'optimisation des coûts

Cette section explore un exemple de scénario qui compare la différence entre l'exécution de quatre serveurs Windows Server, chacun doté d'une seule instance de SQL serveur, et l'exécution simultanée de plusieurs instances de serveur par un seul serveur Windows SQL Server de plus grande taille.

Si chaque instance de SQL serveur n'a besoin que de deux vCPUs et 8 GoRAM, le coût total par serveur est de 7 890$ pour la licence de SQL serveur, en plus d'un coût de calcul horaire de 0,096$.

EC2instance vCPUs RAM Prix vCPUs pour obtenir une licence Coût total des licences SQL du serveur
m6i.large 2 8 0,096 4 7 890$

En l'étendant à quatre serveurs, le coût total de la licence de SQL serveur est de 31 560 dollars, avec un coût de calcul horaire de 0,384 dollars.

EC2instance vCPUs RAM Prix vCPUs pour obtenir une licence Coût total des licences SQL du serveur
4 x 6 mm de large 2 32 0,384 16 31 560$

Si vous combinez les quatre instances de SQL serveur en une seule EC2 instance, la quantité totale de ressources de calcul et de calcul reste la même. Toutefois, en supprimant les coûts de licence de SQL serveur inutiles, vous pouvez réduire le coût total d'exécution de la charge de travail de 15 780$.

EC2instance vCPUs RAM Prix vCPUs pour obtenir une licence Coût total des licences SQL du serveur
m6i.2xlarge 8 32 0,384 8 15 780$
Note

Dans les tableaux précédents, les coûts de calcul indiquent la tarification horaire à la demande pour EC2 les serveurs Amazon exécutant Windows Server dans la us-east-1 région. Les coûts de licence de l'édition SQL Server Standard font référence à la tarification des SQL serveurs publics de Microsoft.

Recommandations d'optimisation des coûts

Si vous envisagez de consolider des instances de SQL serveur, la principale préoccupation est la consommation de ressources pour chacune des instances que vous souhaitez consolider. Il est important d'obtenir des indicateurs de performance sur de longues périodes afin de mieux comprendre les modèles de charge de travail sur chaque serveur. Amazon CloudWatch, Windows Performance Monitor (perfmon) et les outils de surveillance natifs de SQL Server sont parmi les outils courants de surveillance de la consommation des ressources.

Nous vous recommandons de vous poser les questions suivantes lorsque vous déterminez si les charges de travail de votre SQL serveur peuvent être combinées pour utiliser les mêmes ressources du serveur sans qu'elles interfèrent les unes avec les autres :

  • Quelles ressources (CPUmémoire et bande passante réseau) sont consommées pendant votre état d'équilibre ?

  • Quelles ressources (CPUmémoire et bande passante réseau) sont consommées pendant les pics ?

  • À quelle fréquence les pics se produisent-ils ? Les pics sont-ils constants ?

  • Les pics de ressources d'un serveur coïncident-ils avec les pics de ressources d'un autre serveur ?

  • Quels sont le stockage IOPSet le débit utilisés par le SQL serveur ?

Si vous souhaitez aller de l'avant avec un plan visant à combiner des instances de SQL serveur, consultez l'article Exécuter plusieurs instances de SQL serveur sur une EC2 instance Amazon sur le blog AWS Cloud Operations & Migrations. Cet article fournit des instructions sur la façon d'apporter les modifications de configuration dans SQL Server pour ajouter des instances supplémentaires. Avant de commencer, considérez les différences mineures lorsque plusieurs instances sont installées sur le même serveur :

  • L'instance de base de données SQL du serveur par défaut est nommée MSSQLSERVER et utilise le port 1433.

  • Chaque instance supplémentaire installée sur le même serveur est une instance de base de données « nommée ».

  • Chaque instance nommée possède un nom d'instance et un port uniques.

  • Le navigateur de SQL serveur doit s'exécuter pour coordonner le trafic vers les instances nommées.

  • Chaque instance peut utiliser des emplacements distincts pour les fichiers de données de base de données et des connexions distinctes.

  • Les SQL paramètres de mémoire maximale du serveur doivent être configurés en fonction des besoins de performance de chaque instance, leur total combiné laissant également suffisamment de mémoire pour le système d'exploitation sous-jacent.

  • Vous pouvez utiliser les fonctionnalités natives de sauvegarde et de restauration du SQL serveur ou AWS DMSpour la migration ou la consolidation.

Ressources supplémentaires