Instanzen konsolidieren - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Instanzen konsolidieren

Dieser Abschnitt konzentriert sich auf die Technik zur Kostenoptimierung, bei der mehrere SQL Serverinstanzen auf demselben Server kombiniert werden, um die Lizenzkosten zu minimieren und die Ressourcennutzung zu maximieren.

Übersicht

Das Erstellen einer Instanz ist Teil des Installationsprozesses der SQL Server Database Engine. Die SQL Serverinstanz ist eine vollständige Installation, die ihre eigenen Serverdateien, Sicherheitsanmeldungen und Systemdatenbanken (Master, Model, msdb und tempdb) enthält. Da eine Instanz über alle eigenen Dateien und Dienste verfügt, können Sie mehrere SQL Serverinstanzen auf demselben Betriebssystem installieren, ohne dass sich die Instanzen gegenseitig stören. Da die Instanzen jedoch alle auf demselben Server installiert sind, nutzen sie alle dieselben Hardwareressourcen wie Rechenleistung, Arbeitsspeicher und Netzwerk.

In Produktionsumgebungen ist es üblich, nur eine einzige SQL Serverinstanz pro Server zu verwenden, damit eine „ausgelastete“ Instanz die gemeinsam genutzten Hardwareressourcen nicht überbeansprucht. Jeder SQL Serverinstanz ein eigenes Betriebssystem mit eigenen Ressourcen zuzuweisen, ist eine bessere Grenze, als sich auf die Ressourcenverwaltung zu verlassen. Dies gilt insbesondere für leistungsstarke SQL Server-Workloads, die große Mengen RAM und CPU Ressourcen erfordern.

Allerdings verbrauchen nicht alle SQL Serverworkloads eine große Menge an Ressourcen. Einige Unternehmen weisen beispielsweise jedem ihrer Kunden aus Compliance- oder Sicherheitsgründen eine eigene SQL Serverinstanz zu. Für kleinere Clients oder Clients, die normalerweise nicht aktiv sind, bedeutet das, dass die SQL Serverinstanzen mit minimalen Ressourcen ausgeführt werden.

Wie im Microsoft SQL Server 2019: Licensing Guide angegeben, muss jeder Server, auf dem SQL Server ausgeführt wird, über mindestens vier CPU Lizenzen verfügen. Das bedeutet, dass Sie auch dann, wenn Sie einen Server mit nur zwei Servern betreibenvCPUs, SQL Server für vier lizenzieren müssenvCPUs. Basierend auf den Preisen für öffentliche SQL Server von Microsoft ist das ein Unterschied von 3.945$, wenn Sie die SQL Server Standard Edition verwenden. Für Unternehmen, die mehrere Server mit einzelnen SQL Serverinstanzen betreiben und nur minimale Ressourcen verbrauchen, können die Gesamtkosten für die Lizenzierung ungenutzter Ressourcen erheblich sein.

Szenario zur Kostenoptimierung

In diesem Abschnitt wird ein Beispielszenario untersucht, in dem der Unterschied zwischen dem Betrieb von vier Windows Server-Servern mit jeweils einer einzigen SQL Serverinstanz und einem einzelnen größeren Windows Server-Server, auf dem mehrere SQL Serverinstanzen gleichzeitig ausgeführt werden, verglichen wird.

Wenn jede SQL Serverinstanz nur zwei vCPUs und 8 GB benötigtRAM, belaufen sich die Gesamtkosten pro Server auf 7.890 USD für die SQL Serverlizenz, zusätzlich zu den stündlichen Rechenkosten von 0,096 USD.

EC2Instanz vCPUs RAM Preis vCPUs zu lizenzieren Gesamtkosten für SQL Serverlizenzen
m6i.large 2 8 0,096 4 7.890$

Bei einer Erweiterung auf vier Server belaufen sich die Gesamtkosten für die SQL Serverlizenz auf 31.560 USD bei stündlichen Rechenkosten von 0,384 USD.

EC2Instanz vCPUs RAM Preis vCPUs zu lizenzieren Gesamtkosten für SQL Serverlizenzen
4 x 6 Mio. groß 2 32 0,384 16 31.560$

Wenn Sie alle vier SQL Serverinstanzen zu einer einzigen EC2 Instanz kombinieren, bleibt die Gesamtmenge an Rechenressourcen und Rechenleistung gleich. Durch den Wegfall unnötiger SQL Serverlizenzkosten können Sie jedoch die Gesamtkosten für die Ausführung des Workloads um 15.780$ reduzieren.

EC2Instanz vCPUs RAM Preis vCPUs zu lizenzieren Gesamtkosten für SQL Serverlizenzen
m6i.2xlarge 8 32 0,384 8 15.780$
Anmerkung

In den obigen Tabellen zeigen die Rechenkosten stündliche On-Demand-Preise für EC2 Amazon-Server, auf denen Windows Server in der us-east-1 Region ausgeführt wird. Die Lizenzkosten für die SQL Server Standard Edition beziehen sich auf die Preise für öffentliche SQL Server von Microsoft.

Empfehlungen zur Kostenoptimierung

Wenn Sie erwägen, SQL Serverinstanzen zu konsolidieren, ist das größte Problem der Ressourcenverbrauch für jede der Instanzen, die Sie konsolidieren möchten. Es ist wichtig, Leistungsmetriken über lange Zeiträume zu erfassen, um ein besseres Verständnis der Arbeitslastmuster auf jedem Server zu erhalten. Einige gängige Tools zur Überwachung des Ressourcenverbrauchs sind Amazon CloudWatch, Windows Performance Monitor (Perfmon) und die systemeigenen Überwachungstools von SQL Server.

Wir empfehlen Ihnen, die folgenden Fragen zu berücksichtigen, wenn Sie analysieren, ob Ihre SQL Server-Workloads kombiniert werden könnten, um dieselben Serverressourcen zu nutzen, ohne dass sie sich gegenseitig stören:

  • Welche Ressourcen (CPUArbeitsspeicher und Netzwerkbandbreite) werden während Ihres stabilen Zustands verbraucht?

  • Welche Ressourcen (CPUArbeitsspeicher und Netzwerkbandbreite) werden bei Spitzenbelastungen verbraucht?

  • Wie oft treten Spitzen auf? Sind die Spitzen konsistent?

  • Stimmen die Ressourcenspitzen eines Servers mit den Ressourcenspitzen eines anderen Servers überein?

  • Welchen Speicherplatz IOPSund welchen Durchsatz verwendet der Server? SQL

Wenn Sie mit einem Plan zur Kombination von SQL Server-Instances fortfahren möchten, lesen Sie den Beitrag Mehrere SQL Serverinstanzen auf einer EC2 Amazon-Instanz ausführen im AWS Cloud Operations & Migrations-Blog. Dieser Beitrag enthält Anweisungen dazu, wie Sie die Konfigurationsänderungen in SQL Server vornehmen, um zusätzliche Instances hinzuzufügen. Bevor Sie beginnen, sollten Sie die geringfügigen Unterschiede berücksichtigen, wenn mehrere Instanzen auf demselben Server installiert sind:

  • Die SQL Standardserverdatenbankinstanz ist benannt MSSQLSERVER und verwendet Port 1433.

  • Jede weitere Instanz, die auf demselben Server installiert ist, ist eine „benannte“ Datenbankinstanz.

  • Jede benannte Instanz hat einen eindeutigen Instanznamen und einen eindeutigen Port.

  • Der SQLServerbrowser muss ausgeführt werden, um den Verkehr zu den benannten Instanzen zu koordinieren.

  • Jede Instanz kann separate Speicherorte für Datenbankdatendateien und separate Logins verwenden.

  • Die Einstellungen für maximalen SQL Serverspeicher müssen entsprechend den Leistungsanforderungen der einzelnen Instanzen konfiguriert werden, sodass insgesamt auch genügend Arbeitsspeicher für das zugrunde liegende Betriebssystem übrig bleibt.

  • Sie können die systemeigenen Sicherungs- und Wiederherstellungsfunktionen des SQL Servers oder AWS DMSfür die Migration oder Konsolidierung verwenden.

Weitere Ressourcen