Erstellen Sie eine AWS landing zone, die MongoDB Atlas enthält - AWS Prescriptive Guidance

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.

Erstellen Sie eine AWS landing zone, die MongoDB Atlas enthält

Igor Alekseev, Amazon Web Services

Übersicht

Dieses Muster beschreibt, wie eine AWS landing zone erstellt wird, die in einen MongoDB-Atlas-Cluster integriert ist. Die Infrastruktur wird automatisch mithilfe eines Terraform-Skripts bereitgestellt.

Eine gut strukturierte AWS Umgebung mit mehreren Konten, die als landing zone bezeichnet wird, bietet Skalierbarkeit und Sicherheit, insbesondere für Unternehmen. Sie dient als Grundlage für die schnelle Bereitstellung von Workloads und Anwendungen und trägt dazu bei, das Vertrauen in Sicherheit und Infrastruktur zu gewährleisten. Der Aufbau einer landing zone erfordert eine sorgfältige Abwägung technischer und geschäftlicher Faktoren, einschließlich Kontostruktur, Netzwerk, Sicherheit und Zugriffsmanagement. Diese Überlegungen sollten auf das future Wachstum und die Geschäftsziele Ihres Unternehmens abgestimmt sein.

Zu den Anwendungsfällen für dieses Muster gehören die folgenden.

  • SaaS- und PaaS-Plattformen für Unternehmen: Multitenant-Software-as-a-Service (SaaS) -Anwendungen und Platform-as-a-Service (PaaS) -Plattformen, die darauf ausgeführt werden, AWS können dieses Setup verwenden, um einen sicheren, privaten Zugriff auf MongoDB Atlas zu ermöglichen, ohne dass Daten über das öffentliche Internet offengelegt werden.

  • Stark regulierte Branchen: Banken, Finanzdienstleistungen, Gesundheitswesen und Behörden, die eine strikte Einhaltung von Standards wie dem Health Insurance Portability and Accountability Act (HIPAA), dem Payment Card Industry Data Security Standard (PCI DSS), System and Organization Controls 2 (SOC2) und der Allgemeinen Datenschutzverordnung (DSGVO) erfordern, profitieren von:

    • Verschlüsselte, private Konnektivität durch AWS PrivateLink

    • Multi-AZ-Hochverfügbarkeit von MongoDB-Replikatsätzen

  • Sichere AI/ML Workloads: Mit Trainings- oder Inferenz-Pipelines in Amazon Bedrock, Amazon SageMaker AI oder benutzerdefinierten KI-Modellen können Daten sicher in MongoDB Atlas abgerufen und gespeichert werden. PrivateLink

  • Notfallwiederherstellung und Geschäftskontinuität: Das Multi-AZ-Design stellt sicher, dass kein Ausfall einer einzelnen Availability Zone die Workloads stört. Ein Atlas-Replikat für alle Availability Zones sorgt für einen automatischen Failover. Dies ist entscheidend für ständig verfügbare Dienste wie Finanztechnologie-Apps (Fintech), digitales Banking oder Gesundheitsüberwachung.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Zugriff des Organisationsinhabers auf MongoDB Atlas, sodass Sie Atlas-API-Schlüssel erstellen können. Informationen zu dieser Anforderung finden Sie unter Manage Organization Access in der MongoDB-Dokumentation.

  • Ein aktiver AWS-Konto.

  • Terraform, installiert und konfiguriert.

  • Ein MongoDB Atlas-Cluster, der mit MongoDB Version 6.0 oder höher erstellt wurde.

  • Vertrautheit mit MongoDB und MongoDB Atlas. Weitere Informationen finden Sie in der MongoDB Atlas-Dokumentation.

Einschränkungen

Architektur

Das folgende Referenzarchitekturdiagramm veranschaulicht die Einrichtung der Bereitstellung für eine AWS landing zone, die in einen privaten MongoDB Atlas-Endpunkt integriert ist. Diese Referenzarchitektur zeigt, wie eine sichere, skalierbare und hochverfügbare AWS landing zone eingerichtet werden kann, die in MongoDB Atlas integriert ist. Durch die Kombination von AWS Best Practices wie Multi-AZ-Bereitstellung, Sicherheitskontrollen mit geringsten Rechten und privater Konnektivität ermöglicht dieses Design Unternehmen, eine robuste Umgebung für moderne Anwendungen bereitzustellen.

Multi-AZ-Architektur für AWS-Landing landing zone, die in MongoDB Atlas integriert ist.

Diese Architektur besteht aus den folgenden Komponenten:

VPC

  • Eine einzige virtuelle private Cloud (VPC) erstreckt sich über drei Availability Zones.

  • Die VPC ist in Subnetze unterteilt, die auf jede Availability Zone ausgerichtet sind. Diese Subnetze verteilen Workloads, um eine hohe Verfügbarkeit zu gewährleisten.

Internetzugang

  • Ein Internet-Gateway bietet ausgehende Internetkonnektivität für Ressourcen, die diese benötigen, wie z. B. Anwendungs- oder Bastion-Hosts.

  • Öffentliche Subnetze können NAT-Gateways beherbergen, die es privaten Subnetz-Workloads ermöglichen, Updates, Patches und andere erforderliche Pakete herunterzuladen, ohne sie direkt dem öffentlichen Internet zugänglich zu machen.

Private Subnetze und Routing-Tabellen

  • Anwendungskomponenten, Microservices oder andere sensible Ressourcen befinden sich normalerweise in privaten Subnetzen.

  • Dedizierte Routentabellen steuern den Verkehrsfluss. Leitet ausgehenden Datenverkehr von privaten Subnetzen an NAT-Gateways weiter, um einen sicheren Internetzugang nur für ausgehenden Datenverkehr zu gewährleisten.

  • Eingehende Anfragen aus dem Internet fließen über Elastic Load Balancer oder Bastion-Hosts (falls verwendet) in öffentlichen Subnetzen und werden dann entsprechend an private Subnetzressourcen weitergeleitet.

MongoDB Atlas-Konnektivität über PrivateLink

  • Die Architektur verwendet PrivateLink (über einen VPC-Endpunkt) eine sichere Verbindung zu MongoDB Atlas, ohne dass Ihre Daten dem öffentlichen Internet zugänglich gemacht werden.

  • Anfragen verbleiben im Backbone-Netzwerk. AWS Daten bei der Übertragung profitieren von der PrivateLink Verschlüsselung und werden niemals über das öffentliche Internet weitergeleitet.

  • Die dedizierte VPC von MongoDB Atlas hostet Ihre primären und sekundären Knoten und bietet eine sichere, isolierte Umgebung für Ihren verwalteten Datenbankcluster.

Multi-AZ-Bereitstellung

  • Kritische Infrastrukturkomponenten (wie NAT-Gateways und Anwendungssubnetze) sind auf mindestens drei Availability Zones verteilt. Wenn in einer Availability Zone ein Ausfall auftritt, stellt diese Architektur sicher, dass die Workloads in den verbleibenden Availability Zones betriebsbereit bleiben.

  • MongoDB Atlas bietet standardmäßig Hochverfügbarkeit durch Replikatsätze und stellt sicher, dass Ihre Datenbankschicht fehlertolerant bleibt. Kritische Infrastrukturen sind aus Gründen der Ausfallsicherheit auf mindestens drei Availability Zones verteilt.

Tools

AWS-Services

  • AWS Secrets Managerhilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Kennwörtern, durch einen API-Aufruf zu ersetzen, um das Geheimnis programmgesteuert abzurufen.

Andere Produkte und Tools

  • MongoDB Atlas ist ein vollständig verwalteter Database-as-a-Service (DBaaS) für die Bereitstellung und Verwaltung von MongoDB-Datenbanken in der Cloud.

  • Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie Cloud- und lokale HashiCorp Ressourcen erstellen und verwalten können. In diesem Muster verwenden Sie Terraform, um ein Skript auszuführen, um die Bereitstellung der erforderlichen Ressourcen auf AWS und MongoDB Atlas zu erleichtern.

Code-Repository

Der Code für dieses Muster ist im AWS und im MongoDB Atlas Landing GitHub Zone-Repository verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Identifizieren Sie die wichtigsten Interessengruppen.

Identifizieren Sie alle wichtigen Stakeholder und Teammitglieder, die an Ihrem landing zone Zone-Projekt beteiligt sind. Dies könnte Rollen beinhalten wie:

  • Datenbankadministratoren (DBAs)

  • DevOps Ingenieure

  • Entwickler von Anwendungen

  • Anwendungsarchitekten

Leiter der Migration

Erstellen Sie einen Strukturplan.

Erstellen Sie einen Blueprint, der die gewünschte Struktur Ihrer AWS und der MongoDB Atlas-fähigen landing zone umreißt.

Leiter der Migration

Erstellen Sie einen Architekturplan.

Analysieren Sie gemeinsam mit Ihren Anwendungsarchitekten die Anforderungen und entwerfen Sie eine fehlertolerante, belastbare Architektur. Dieses Muster bietet eine Vorlage für eine Starter-Architektur als Referenz. Sie können diese Vorlage an die Sicherheits- und Infrastrukturanforderungen Ihres Unternehmens anpassen.

Cloud-Architekt

Planen Sie die Einrichtung und Bereitstellung.

Legen Sie gemeinsam mit allen Beteiligten fest, wie die Architektur eingesetzt werden soll, wie Sicherheitsmaßnahmen umgesetzt werden und welche anderen Aspekte es gibt, um sicherzustellen, dass die Interessen sowohl der Organisation als auch des Teams, das die Anfrage gestellt hat, berücksichtigt werden.

Leiter der Migration, DevOps Ingenieur, DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das Repository

Klonen Sie den Code aus dem GitHub Repository, indem Sie den folgenden Befehl ausführen:

git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone
App-Entwickler, DevOps Ingenieur

Holen Sie sich Ihre Atlas-Organisations-ID.

  1. Wenn Sie kein MongoDB Atlas-Konto haben, registrieren Sie sich für eines.

  2. Folgen Sie den Schritten in der MongoDB-Dokumentation, um eine Organisation zu erstellen.

  3. Kopieren Sie die Organisations-ID.

DBA

Generieren Sie Atlas-API-Schlüssel auf Organisationsebene.

Folgen Sie den Anweisungen in der MongoDB-Dokumentation, um Ihre API-Schlüssel auf Organisationsebene in Atlas zu generieren.

DBA

Erstellen Sie ein Geheimnis in AWS Secrets Manager.

Speichern Sie die im vorherigen Schritt generierten MongoDB Atlas-API-Schlüssel als Key-Value-Secret im Secrets Manager. Anweisungen finden Sie in der Secrets Manager Manager-Dokumentation.

DevOps Ingenieur

Wählen Sie die Atlas-Clusterebene aus.

Folgen Sie den Anweisungen in der MongoDB-Dokumentation, um die richtige Atlas-Clusterebene auszuwählen.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Ändern Sie das Terraform-Skript.

Aktualisieren Sie in Ihrer lokalen Kopie des GitHub Repositorys den geheimen Namen in der modules/mongodb-atlas/main.tf-Datei (Zeile 12), damit Terraform die Anmeldeinformationen während der Bereitstellung vom Secrets Manager abrufen kann.

DevOps Ingenieur

Erstellen Sie eine AWS Zugriffsschlüssel-ID und einen geheimen Schlüssel.

Um deine AWS Zugangsschlüssel-ID und deinen geheimen Schlüssel zu erstellen, folge den Anweisungen im AWS re:POST-Artikel Wie erstelle ich einen AWS Zugriffsschlüssel?

Es hat sich bewährt, Richtlinien mit den geringsten erforderlichen Rechten zuzuweisen. Wählen Sie in diesem Fall jedoch die AdministratorAccess Richtlinie aus.

Nachdem Sie Ihren Zugriffsschlüssel erstellt haben, finden Sie unter Bewährte Sicherheitsmethoden in IAM Informationen zu bewährten Methoden für die Verwaltung von Zugriffsschlüsseln.

DevOps Ingenieur

Weisen Sie Elastic IP-Adressen zu.

Weisen Sie mindestens zwei Elastic IP-Adressen zu. IDs Anweisungen finden Sie in der Dokumentation zu Amazon Virtual Private Cloud (Amazon VPC).

DevOps Ingenieur

Erstellen Sie einen S3-Bucket.

Erstellen Sie einen S3-Bucket, um den Status Ihrer Terraform-Bereitstellung zu speichern, indem Sie den Anweisungen in der Dokumentation zu Amazon Simple Storage Service (Amazon S3) folgen.

DevOps Ingenieur

Aktualisieren Sie den S3-Bucket für den Speicher.

Aktualisieren Sie die S3-Bucket-Informationen in Ihrer lokalen Version von environments/development/main.tf so, dass sie mit dem Namen und der Region des Buckets übereinstimmen, den Sie im vorherigen Schritt erstellt haben, und geben Sie ein key prefix an. Zum Beispiel:

terraform { ... backend "s3" { bucket = "startup-name-product-terraform" key = "network/dev" region = "ap-southeast-1" } }

In diesem Beispiel können Sie Terraform so konfigurieren, dass das key prefix verwendet wird, um die Terraform-Statusdatei network/dev zu organisieren. Sie können den Wert an die Umgebung anpassen prod oder ihn an die Umgebung anpassenstaging, die Sie erstellen möchten. Informationen zur Verwendung mehrerer Umgebungen finden Sie im letzten Schritt in diesem Abschnitt.

Weitere Informationen zu Amazon S3 S3-Schlüsselpräfixen finden Sie unter Organisieren von Objekten mithilfe von Präfixen in der Amazon S3 S3-Dokumentation.

DevOps Ingenieur

Legen Sie Terraform-Variablen fest.

Die Beispiel-Landezone definiert Eingabevariablenwerte mithilfe von Terraform-Variablendefinitionsdateien.

Die Variablendatei befindet sich unter environments/development/variables .tf. Sie können die Variablenwerte in der Datei environments/development/terraform.tfvars festlegen. Konfigurieren Sie diese Variablen wie in der Readme-Datei für das Repository beschrieben. GitHub

DevOps Ingenieur

Richten Sie Umgebungsvariablen ein.

Wenn Sie planen, das Terraform-Skript auf Ihrem lokalen Computer auszuführen, richten Sie die folgenden Umgebungsvariablen ein:

  • AWS_ACCESS_KEY_ID: AWS Zugriffsschlüssel-ID

  • AWS_SECRET_ACCESS_KEY: AWS geheimer Zugriffsschlüssel

  • AWS_DEFAULT_REGION: AWS-Region

  • TF_LOG: Terraform-Protokollebene (oder) DEBUG INFO

Weitere Informationen zum Einrichten von Umgebungsvariablen finden Sie in der AWS Command Line Interface (AWS CLI) -Dokumentation.

DevOps Ingenieur

Überprüfen Sie die VPC-Konfigurationen.

Um die von empfohlenen Best Practices zu befolgen AWS, konfigurieren Sie die Einstellungen für VPC und Subnetz CIDRs, NAT-Gateways, Routen und Routing-Tabellen im Terraform-Skript so, dass sie den Anforderungen Ihres Unternehmens entsprechen. Einzelheiten finden Sie in der Readme-Datei für das Repository. GitHub

DevOps Ingenieur

Markieren Sie -Ressourcen.

Sie können Ihre AWS Ressourcen taggen, um sie zu überwachen, wenn sie vom Terraform-Skript bereitgestellt werden. Beispiele finden Sie in der Readme-Datei für das Repository. GitHub Informationen zur Überwachung von Ressourcen mithilfe von Tags für Kosten, Nutzung usw. finden Sie in der Dokumentation unter Aktivierung benutzerdefinierter Kostenverteilungs-Tags. AWS Billing

DevOps Ingenieur

Verwenden Sie mehrere Umgebungen.

Das GitHub Repository stellt einen development Umgebungsordner bereit. Sie können dem Umgebungsordner auch Ihre eigenen Umgebungen hinzufügen.

Um eine Umgebung hinzuzufügen, kopieren Sie den development Ordner in einen neuen Ordner (z. B. prod oderstaging) unterenvironments. Anschließend können Sie die terraform.tfvars Datei mit dem neuen Wert aktualisieren.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Initialisieren Sie das Terraform-Arbeitsverzeichnis.

Führen Sie den folgenden Befehl aus, um das Arbeitsverzeichnis zu initialisieren und die erforderlichen Pakete herunterzuladen:

terraform init
DevOps Ingenieur

Erstellen Sie einen Ausführungsplan.

Führen Sie den folgenden Befehl aus, um einen Ausführungsplan zu erstellen und die Änderungen zu visualisieren, die Terraform an Ihrer Infrastruktur vornehmen wird:

terraform plan
DevOps Ingenieur

Stellen Sie die Änderungen bereit.

Führen Sie den folgenden Befehl aus, um die Änderungen an Ihrer Infrastruktur wie im Code beschrieben zu implementieren:

terraform apply
DevOps Ingenieur

Validieren Sie die Bereitstellung.

Überprüfen Sie die Komponenten, die Terraform in Ihrer Infrastruktur erstellt oder geändert hat.

Um das Setup zu testen, stellen Sie eine Rechenressource (z. B. eine EC2 Amazon-Instance oder AWS Lambda -Funktion) in der VPC bereit oder mit ihr verbunden.

DevOps Ingenieur, App-Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Bereinigen Sie.

Wenn Sie mit dem Testen fertig sind, führen Sie den folgenden Befehl aus, um die Ressourcen zu löschen, die Terraform in Ihrer Infrastruktur bereitgestellt hat:

terraform destroy
DevOps Ingenieur

Zugehörige Ressourcen

Entdeckung und Bewertung

MongoDB Atlas und AWS Umgebungen einrichten

Einsatz der landing zone