Bearbeiten

Freigeben über


Mehrinstanzenfähige SaaS-Anwendungen in Azure

Microsoft Entra ID
Azure App Service
Azure DNS
Azure Front Door
Azure Kubernetes Service (AKS)

Wenn Sie einen Teil der Softwarelösung Ihres Unternehmens identifizieren, deren Branding entfernt werden kann, damit sie an andere Unternehmen vermarktet werden kann, können Sie von einer völlig neuen Umsatzquelle profitieren. Allerdings stellt das Konfigurieren der Lösung entsprechend der Auslastung bei einer Vielzahl von Mandanten oft eine Herausforderung dar. Diese Lösung führt durch eine Sammlung von Azure-Technologien zum Schützen und Ausgleichen des Datenverkehrs.

Aufbau

Diagramm einer mehrinstanzenfähigen SaaS-Architektur in zwei verschiedenen Regionen in Azure

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

Eine Sammlung von Azure-Technologien sichert den Datenverkehr und führt Lastenausgleiche für diesen aus.

  1. Microsoft Azure Front Door übernimmt einige der anfänglichen Aufgaben:

    • Verarbeiten der ersten Anforderung

    • Lastenausgleich auf die Regionen

    • SSL-Beendigung (HTTPS) und -Abladung

    • Failover bei einem regionalen Ausfall

  2. Azure DNS verwaltet DNS-Einträge und stellt das Routing an den richtigen Azure Front Door-Endpunkt sicher.

  3. Die Architektur nutzt Microsoft Entra ID als Identitätsanbieter für die Authentifizierung.

  4. Wenn das Routing an die richtige Region durchgeführt wird, führt Application Gateway Lastenausgleiche durch und leitet Anforderungen an die entsprechende Azure App Service-Instanz weiter.

  5. Bei dieser Architektur wird die Verwendung von App Service für folgende Szenarios empfohlen:

    • Alle HTTP-basierten Anwendungen

    • Bereitstellen von Webinhalten

    • Bereitstellen von RESTful APIs

    • Implementieren der Geschäftslogik hinter der Front-End-Anwendung

    Sie können App Service für automatisches zentrales und horizontales Hochskalieren konfigurieren. Dadurch eignet sich App Service für die Skalierung einer Vielzahl von HTTP-Mandantenanforderungen nach Bedarf.

  6. Die Dienste auf Datenzugriffsebene werden ebenfalls unabhängig voneinander anhand der Auslastung skaliert. Datendienste verwalten Datenmodelle, Verbindungsclients und Treiber. Die Dienste stellen außerdem eine konsistente Datenschnittstelle für alle übergeordneten Dienste bereit, die Daten in der Anwendung nutzen. Sie können diese Datendienste mithilfe von Azure Kubernetes Service (AKS) bereitstellen und skalieren. Jeder AKS-Cluster ist für einen Teilt der verwandten Features in der Schicht verantwortlich. AKS kann eine Microservicearchitektur implementieren, die eine Reihe von Containern umfasst, die jeweils spezifische Funktionen innerhalb des Clusters enthalten. Dies ermöglicht ein hohes Maß an Abstraktion und eine Entkopplung innerhalb des Codes. Außerdem ermöglicht dies das horizontale Hochskalieren einzelner Cluster, um erhöhte Auslastungen von mehreren Mandanten zu verarbeiten. Jeder Cluster kann seine Ressourcen zentral hochskalieren, wenn die Auslastung auf dem Cluster steigt. Das zentrale Hochskalieren wirkt sich nicht auf die anderen Cluster in der Ressourcengruppe aus, solange diese nicht dieselbe Erhöhung der Auslastung aufweisen.

  7. Relationale Daten werden außerhalb des Anwendungsframeworks gespeichert und verwaltet. Dadurch wird für jede Region ein einzelner Zugriffspunkt für Daten bereitgestellt. Die Replikation, Verfügbarkeit, Skalierbarkeit und Sicherheit können Sie mithilfe von Pools für elastische Azure SQL-Datenbanken erzielen. Stellen Sie für jeden Mandanten eine Datenbank in einem Pool bereit. Weisen Sie die im Pool verfügbaren Ressourcen nach Bedarf zu, wenn Lasten und Anforderungen eingehen. Dadurch werden die für Mandanten verfügbaren Datenbankressourcen entsprechend Ihres Budgets optimiert.

Komponenten

Bei den Hauptkomponenten handelt es sich um die Komponenten, die für die Architektur dieser Lösung empfohlen werden. Wenn eine der Hauptkomponenten nicht in Ihre Architektur passt, finden Sie weitere Informationen in der Liste der alternativen Komponenten.

Hauptkomponenten

  • Azure Front Door: Hierbei handelt es sich um einen regionalen Lastenausgleich, der den Clientdatenverkehr an die richtige Region weiterleitet. Dieser kann ein Failover auf die sekundäre Region durchführen, wenn ein Ausfall der Region auftritt, und den Einstiegspunkt mit Internetzugriff über Azure Web Application Firewall schützen.

  • Microsoft Entra ID fungiert als Identitätsanbieter für die gesamte Anwendung und erzwingt die Authentifizierung und End-to-End-Autorisierung der Anforderung in der Anwendung.

  • Azure DNS: Diese Komponente ist ein Hostingdienst für die Domänennamenauflösung in Azure. In einer mehrinstanzenfähigen Lösung greifen mehrere Clients über ihre eigenen individuellen Domänen auf die Lösung zu. Verwenden Sie Azure DNS, um Clientanforderungen mit dem richtigen Anwendungsstapel zu konfigurieren und aufzulösen.

  • Application Gateway: Diese Komponente leitet Datenverkehr intern in der Anwendung an die verschiedenen Dienste weiter, die die Geschäftsanforderungen der Clients erfüllen, und führt Lastenausgleiche für diese aus. Während Azure Front Door die Auslastung auf die allgemeinen Regionen verteilt, verfügt Application Gateway über die Informationen über die Auslastung einzelner Dienste in einer Gruppe. Azure Front Door und Application Gateway bieten gemeinsam komplexe Lastenausgleiche für alle Ebenen einer mehrinstanzenfähigen Lösung. Weitere Informationen über die Lastenausgleichsoptionen in Azure finden Sie in der Übersicht über Azure-Lastenausgleiche.

  • App Service: Bei dieser Komponente handelt es sich um den führenden Dienst für Webanwendungen und webbasierte APIs von Azure. Die Sicherheit wird in Dienste wie Microsoft Entra ID und Azure Key Vault integriert. Sie können eine automatischen Skalierung konfigurieren. Außerdem ist die Menge der für die Skalierung verfügbaren Ressourcen flexibel zwischen den verschiedenen App Service-Plänen, unter denen die App ausgeführt werden kann. Darüber hinaus kann App Service integrierte DevOps-Funktionen für Continuous Integration und Bereitstellungen in mehreren Umgebungen nutzen. Diese und andere unterstützende Feature der Azure-Plattform ermöglichen es Entwicklern, sich auf die Entwicklung ihrer Anwendungen zu konzentrieren.

  • Azure Kubernetes Service: Orchestriert Instanzen von Container-Images, die in einem Cluster bereitgestellt werden. Die Verwaltung der Daten mehrerer Clients umfasst häufig die Implementierung einer Sammlung von Komponenten, um Folgendes zu verwalten:

    • Datenmodellierung

    • Datenquellenkonnektivität

    • Extrahieren, Transformieren und Laden (Extract, Transform and Load, ETL)

    • Import-/Exportaktivitäten

    Durch die Entwicklung dieser vielen kleineren Komponenten als containerbasierte Microservices wird ein ideales Szenario für die Bereitstellung in einem AKS-Cluster erstellt. In das Framework sind Tools für automatische Skalierung, Lastenausgleich und Upgrades integriert. AKS lässt sich mithilfe der verfügbaren DevOps-Features und mit Azure Container Registry gut mit einer CI/CD-Strategie (Continuous Integration/Continuous Delivery) integrieren.

  • Pool für elastische Azure SQL-Datenbanken: Diese Komponente stellt eine Lösung zur Verwaltung einer Gruppe von Datenbanken mit einem Pool von Ressourcen flexibel bereit. Der Dienst weist Ressourcen nach Bedarf den Datenbanken zu. Dadurch erhält der Entwickler einer mehrinstanzenfähigen SaaS-Architektur die Möglichkeit, Datenbankressourcen nach Bedarf für Clients bereitzustellen. Der Dienst reduziert außerdem das Budget und den Mehraufwand der Verwaltung mehrerer SQL Server-Instanzen mit großen Blöcken nicht verwendeter Computeressourcen.

  • Azure Cognitive Search (zuvor bekannt als Azure Search): Hierbei handelt es sich um einen Dienst, der eine leistungsstarke Indizierungs- und Abfrage-Engine zu Ihrer Anwendung hinzufügt. Dadurch erhalten Clients Zugriff auf leistungsstarke Abfragefunktionen. Außerdem können sie die KI-Funktionen von Azure nutzen, um die Abfragefunktionalität zu erweitern und zu verbessern. Azure Cognitive Search kann die Mehrinstanzenfähigkeit mithilfe einer Index-pro-Mandant- oder einer Dienst-pro-Mandant-Strategie berücksichtigen.

  • Azure Cache for Redis: Diese Komponente wird zum Zwischenspeichern einer Ebene als Dienst für die Lösung verwendet, wodurch ein im Arbeitsspeicher verwalteter Cache bereitgestellt wird, um die Latenz zu reduzieren und die Leistung für Clients zu verbessern. Der hohe Durchsatz ermöglicht eine große Menge von Anforderungen zum Verarbeiten des Zugriffs auf das System durch mehrere Mandanten. Sie können den Dienst flexibel zentral hochskalieren, wenn die Anwendungsauslastung steigt. Außerdem unterstützt diese Komponente die Verschlüsselung im Ruhezustand, um zwischengespeicherte Mandantendaten zu schützen und zu isolieren.

Alternative Komponenten

  • Azure Virtual Machine Scale Sets: ermöglicht die Bereitstellung von Diensten in einer VM-Umgebung, die automatisch nach Bedarf skaliert und wächst. Virtual Machine Scale Sets lässt sich gut in einen Lastenausgleich oder Application Gateway integrieren, um die Auslastung automatisch auszugleichen, wenn die Skalierungsgruppe wächst. Azure Virtual Machine Scale Sets stellt die Skalierbarkeit bereit, die diese Lösung erfordert. In vielen Fällen wird diese Komponente nicht zum Verwalten der gesamten VM-Umgebung benötigt, und diese Ebene des Stapels kann auf App Service oder AKS verschoben werden.

  • Azure SQL-Datenbank: Diese Komponente kann als Ersatz für Pools für elastische Datenbanken in Form von individuellen dedizierten Instanzen implementiert werden. Mit Azure SQL-Datenbank wird ein größerer Mehraufwand zur direkten Verwaltung der Instanz hinzugefügt und die Kosten für zugeordnete Ressourcen werden erhöht. Dennoch handelt es sich hierbei um eine akzeptable Alternative, wenn der Mandant einen dedizierten Server benötigt. Insbesondere benötigt der Client möglicherweise mehr Kontrolle über die Instanz und die verfügbaren dedizierten Ressourcen. Mandanten, die eine dedizierte SQL Server-Instanz erfordern, können parallel zu Mandanten in einer Konfiguration mit Pools für elastische Datenbanken vorhanden sein. Sie können einen Tarif für SQL-Datenbank-Instanzen als Preisoption für Mandanten zur Verfügung stellen, die Lizenzen für die SaaS-Anwendung erwerben.

  • SQL Server auf virtuellen Computern: Hierbei handelt es sich um eine weitere Option für die Bereitstellung von SQL-Datenbank-Instanzen. Der Mandant verfügt möglicherweise über eine bereits vorhandene IT-Infrastruktur und lokale SQL Server-Instanzen. In diesem Fall möchte der Mandant womöglich seine aktuellen Lizenzen für eine vollständige Migration oder ein Hybridszenario verwenden. Der entkoppelte Aufbau von SaaS ermöglicht, dass die Datenschicht der Anwendung über die Konfiguration auf beliebige SQL-Datenbank-Instanzen ausgelegt werden kann.

Szenariodetails

Wenn Sie einen Teil der Softwarelösung Ihres Unternehmens identifizieren, deren Branding entfernt werden kann, damit sie an andere Unternehmen vermarktet werden kann, können Sie von einer völlig neuen Umsatzquelle profitieren. Allerdings stellt das Konfigurieren der Lösung entsprechend der Auslastung bei einer Vielzahl von Mandanten oft eine Herausforderung dar.

Azure bietet eine Reihe von Diensten zum Verwalten einer Softwarelösung, die:

  • Datenbanken für alle Clients flexibel verwaltet.

  • die Geschäfts- und Logikschicht der Lösung skaliert, um Engpässe bei der Computeebene zu vermeiden.

  • Verfügbarkeit und regionale Failover integriert.

  • End-to-End-Sicherheit für alle Schichten der Lösung bereitstellt.

Mögliche Anwendungsfälle

Die folgenden Anwendungsfälle weisen Entwurfsmuster auf, die von einer in Azure gehosteten, mehrinstanzenfähigen SaaS-Lösung profitieren können:

  • Das Entwickeln einer Lösung für das Kundenbeziehungsmanagement, die Clients an Kunden vermarkten und verkaufen können.

  • Das Implementieren eines CMS-Systems (Content-Management-System) und dessen Bereitstellung für mehrere Benutzer mithilfe dieser Architektur.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Mehrinstanzenfähigkeit

Die Mehrinstanzenfähigkeit ist der wichtigste Aspekt dieser Lösung. Die Lösung verarbeitet eine Vielzahl von Clients gleichzeitig. Sie weist ausreichend Ressourcen zu, um alle Clientanforderungen effektiv zu verarbeiten. Beim Verarbeiten von Anforderungen schützt die Lösung den Datenverkehr vor globalen Endpunkten und isoliert Clientdaten, um Sicherheitsverletzungen und Kreuzkontaminationen zu verhindern. Stellen Sie Clients basierend auf ihren primären Standorten auf ein paar regionalen Ressourcengruppen bereit. Dadurch wird die regionale Verfügbarkeit optimiert.

Sie können viele Clients in einer einzelnen Computegruppe bereitstellen, da das System Anforderungen anhand der Authentifizierung und Clientschlüssel isoliert und basierend auf diesen eindeutigen Bezeichnern zwischen Anforderungen unterscheidet. Das System kann alle Clientanforderungen separat anhand ihrer Schlüssel verschlüsseln, sodass kein Client die Daten anderer Clients entschlüsseln kann. Wenn Sie mehrere Clients auf einem einzelnen Computestapel verwalten, können Sie die Ressourcenzuordnung optimieren, um Clients die erforderliche Reaktionsfähigkeit zu bieten.

Die Clientdatenbanken können Sie auf ähnliche Weise außerhalb des Computestapels verwalten, da eine Clientanforderung von einem der regionalen Stapel eingehen könnte. Viele Clientdatenbanken können im gleichen Pool für elastische Datenbanken vorhanden sein und mit TDE (Transparent Data Encryption) isoliert und geschützt werden. Sie können alle Datenbanken konfigurieren, um Daten mithilfe eines vom Client verwalteten Schlüssels zu verschlüsseln und die Daten Just-In-Time (JIT) zu entschlüsseln. Durch die JIT-Entschlüsselung werden die Clientdaten sowohl vor dem Entwickler als auch vor anderen Clients geschützt. Das System nutzt den Pool für elastische Datenbanken, um den zugewiesenen Clients Ressourcen nach Bedarf bereitzustellen, während die anfallenden Kosten für Sie gering gehalten werden. Sie können jedem Pool für elastische Datenbanken Replikationsrichtlinien zuweisen, um Sicherungen und Failover für Clientdaten bereitzustellen. Schalten Sie weitere Pools für elastische Datenbanken online, wenn Sie mehr Clients in das System integrieren.

Weitere Informationen zu mehrinstanzenfähigen Lösungen finden Sie unter Erstellen von mehrinstanzenfähigen Lösungen in Azure.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Übersicht über die Säule „Zuverlässigkeit“.

Skalierbarkeit und Verfügbarkeit

Diese Lösung ist dafür konzipiert, für eine große Anzahl von Mandanten aufzukommen, die die SaaS-Lösung nutzen. Sie nutzt die große Anzahl skalierbarer Komponenten und Dienste, um das Wachstum anhand der Auslastung zu steuern. Diese Architektur ist nicht auf Lösungen ausgelegt, die nur wenige Mandanten oder eine kleine Menge von Anforderungen und Daten bedienen. Außerdem könnte sie das Budget einer Lösung für einen einzelnen Client oder eine kleinere Auslastung überstrapazieren. Der Mehraufwand für die Verwaltung mehrerer Regionen ist ebenfalls unnötig, wenn Hochverfügbarkeit nicht erforderlich ist, da dies die Komplexität und Kosten steigert.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Das System stellt für jede Schicht der Anwendung End-to-End-Sicherheit bereit:

  • Azure Front Door stellt integrierte HTTPS-Unterstützung für die Domänen bereit. Das bedeutet, das System kann den gesamten Datenverkehr an die SaaS-Anwendung verschlüsseln. Azure Front Door implementiert außerdem Azure Web Application Firewall, um den SaaS-Stapel am Edge zu schützen, bevor das System Anforderungen an die Anwendung weiterleitet.

  • Jeder Anwendungsstapel in den einzelnen Regionen befindet sich in einer Azure Virtual Network-Instanz. Das System schränkt den Datenverkehr an das virtuelle Netzwerk ein, das Anforderungen von Azure Front Door akzeptiert, um alle Anwendungsdienste vor externem Datenverkehr zu schützen. Sobald die Anforderung sich in der sichereren Firewall befindet, kann Application Gateway die SSL-Beendigung durchführen sowie Lastenausgleiche und Weiterleitungen innerhalb der Anwendung durchführen.

  • Sie können alle Anmeldeinformationen, Geheimnisse und Verbindungszeichenfolgen sicher mit Azure Key Vault verwalten. Indem diese vertraulichen Daten als Geheimnisse verwaltet werden, können Entwickler Anmeldeinformationen zum Zeitpunkt der Bereitstellung in die Anwendung einfügen. Dadurch wird sichergestellt, dass der Code keine vertraulichen Informationen enthält. Mithilfe von Geheimnissen werden Clientdaten geschützt, indem sichergestellt wird, dass eine Sicherheitsverletzung im Code oder Man-in-the-Middle-Angriffe keinen Zugriff auf Mandantendatenbanken gewähren.

  • In diesem Szenario können die Daten mehrerer Mandanten gleichzeitig auf demselben Datenbankserver oder sogar in derselben Datenbank vorhanden sein. Die Daten werden mithilfe von TDE und der JIT-Entschlüsselung in der Datenbank geschützt. Das System verschlüsselt alle ruhenden Daten in der Datenbank und entschlüsselt diese nur, wenn sie vom Mandanten angefordert werden. Clients geben ihre eigenen Schlüssel an. Sie können alle Clientschlüssel in Azure Key Vault speichern, um die Verschlüsselung für mehrere Mandanten zu verwalten. Dadurch werden Clientdaten umfassend geschützt, Entwickler*innen werden am Zugriff auf Clientdaten gehindert, Daten werden zwischen Mandanten isoliert und Complianceanforderungen an Sicherheit und Daten können eingehalten werden.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Azure App Service stellt viele Tarife basierend auf den erwarteten erforderlichen Computeressourcen bereit. Bei der Auswahl des Tarifs für eine mehrinstanzenfähige SaaS-Lösung sind Hochverfügbarkeit und horizontale Skalierungsfunktionen wichtige Komponenten. Wenn Sie davon ausgehen, dass Sie viele Mandanten hosten werden, ist möglicherweise die Dienstebene „Premium“ oder „Isoliert“ erforderlich, um die nötigen Computeressourcen für den hohen Datenverkehr bereitzustellen. Die Dienstebenen „Standard“, „Premium“ und „Isoliert“ sind alle dedizierte VM-Instanzen. Sie können die Kosten pro Zeiteinheit anhand der Anzahl der VMs der jeweiligen Dienstebene berechnen. Weitere Informationen finden Sie in der Übersicht über App Service-Tarife.

AKS bietet einen kostengünstigen Containerdienst. Die Gebühren für AKS-Knoten fallen nur bei Verwendung an. Ihnen wird also nur Folgendes in Rechnung gestellt:

  • Die VMs

  • Die verbrauchten Speicher- und Netzwerkressourcen

  • Die Kosten für die Skalierung, die direkt auf dem Verbrauch basieren

AKS eignet sich bestens als Datenschichtdienst, wenn Sie die Kosten reduzieren möchten. Eine Schätzung der Preise für eine Schicht von AKS-Instanzen finden Sie unter Kubernetes-Preisrechner.

Die Preise für Pools für elastische Azure SQL-Datenbanken sind aufgrund des Entwurfs in Szenarios mit mehreren Mandanten sehr kosteneffektiv. Mandantendatenbanken in einem Pool für elastische Datenbanken nutzen die verfügbaren Ressourcen gemeinsam. Je nachdem, wie sich der Bedarf zwischen Mandanten über Zeit entwickelt, verschieben sich auch die Ressourcen. Pools für elastische Azure SQL-Datenbanken stellen die maximal verfügbaren Ressourcen für die erforderlichen Datenbanken bereit, ohne dass es zu überschüssigen Ressourcen auf allen Datenbanken kommt. Der Dienst hält die Kosten für den Entwickler der SaaS-Lösung und ihre Mandanten gering. Verwenden Sie den Preisrechner für Azure SQL-Datenbank, um die Kosten zu berechnen und die erforderliche Dienstebene und die Menge der Ressourcen zu bestimmen, die für Ihre Mandanten und ihre Daten benötigt werden.

  • Ein Preismodell mit virtuellen Kernen bietet mehr Flexibilität bei der Skalierung, um die erforderlichen Ressourcen zu erzielen. Außerdem können Sie den Azure-Hybridvorteil nutzen. Wenn Sie SQL Server-Lizenzen besitzen, erhalten Sie einen Rabatt auf SQL-Ressourcen mit virtuellen Kernen in der Cloud. Wenn Sie also bereits über lokale Server verfügen, die Teil der Entwicklungsinfrastruktur sind, können Sie die Kosten noch weiter senken, indem Sie diese Rabatte beanspruchen. Sie können Ihre potenziellen Einsparungen mit dem Einsparungsrechner für den Azure-Hybridvorteil berechnen.

  • Sie können auch Kosten für SQL Server-Ressourcen sparen, indem Sie Reservierte SQL-Datenbank-Kapazitäten erwerben. Durch den Erwerb von reservierten Kapazitäten verpflichten Sie sich zur langfristigen Verwendung von SQL-Datenbank. Die Laufzeit liegt in der Regel zwischen einem und drei Jahren. Im Gegenzug erhalten Sie Rabatte auf die Computekosten für die reservierten Ressourcen. Beispielsweise können Sie 32 universelle virtuelle Kerne für ein Jahr reservieren und damit die Kosten für diese 32 virtuellen Kerne für dieses Jahr senken. Wenn Sie über mehrere Mandanten verfügen, die Lizenzen für eine SaaS-Lösung erwerben, eignen sich reservierte Kapazitäten als ideale Kostenersparnis für die Lösung.

Eine Übersicht über die Preise für Azure Cache for Redis finden Sie auf der Seite Azure Cache for Redis – Preise. Sie können den Cachetarif nach Bedarf jederzeit zwischen „Basic“, „Standard“ und „Premium“ wechseln. Für höhere Cache-Grenzwerte und zusätzliche Features wie Replikation und Notfallwiederherstellung fallen mehr Kosten an. Für Azure Cache for Redis werden ebenfalls Preise für reservierte Kapazitäten zur langfristigen Nutzungsverpflichtung angeboten.

Die Preise für Azure Front Door hängen von der Menge der ein- und ausgehenden Datenübertragung des Diensts ab. Für ausgehende Daten variieren die Preise anhand verschiedener Zonen. Für verschiedene Regionen fallen unterschiedliche Gebühren an. Wenn Sie auf einen Preisunterschied treffen, müssen Sie die Kosten separat einschätzen. Die Kosten umfassen einige Routing- und Domänenkapazitäten, jedoch übersteigen die Kosten für das System die anfänglichen Grenzwerte. Für Azure Web Application Firewall wird für jede angewandte Richtlinie oder Regel eine zusätzliche kleine Gebühr berechnet. Preisinformationen für Azure Front Door finden Sie auf der Seite Azure Front Door – Preise.

Die Preise für Azure Cognitive Search basieren vollständig auf Tarifen. Für die Entwicklung und für Tests steht ein kostenloser Tarif zur Verfügung. Anschließend fallen für alle Tarife stündliche Kosten für jede zugewiesene Cognitive Search-Instanz an. Je höher die Tarife sind, desto höher fallen der Gesamtspeicher, die Anzahl der Indizes und die Grenzwerte für die horizontale Skalierung aus. Azure Cognitive Search bietet die Bildextraktion als Dienst für alle kostenpflichtigen Tarife zu denselben Gebühren an.

Nächste Schritte