Phase 2: Konzipieren und Implementieren - 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.

Phase 2: Konzipieren und Implementieren

In der vorherigen Phase haben Sie Ihre Resilienzziele festgelegt. Jetzt, in der Entwurfs- und Implementierungsphase, antizipieren Sie die möglichen Fehlerquellen und ermitteln die für das Design geeigneten Optionen. Orientieren Sie sich bei Ihren Entwurfsentscheidungen an den Zielen, die Sie sich in der vorherigen Phase gesetzt haben.

Verwenden Sie Grenzen für die AWS Fehlerisolierung

Bei der handelt es sich bei einer Fehlerisolationsgrenze um eine Grenze AWS Cloud, z. B. eine Availability Zone AWS-Region, eine Steuerungsebene oder eine Datenebene, die die Auswirkungen eines Fehlers begrenzt und zur Verbesserung der Widerstandsfähigkeit von Workloads beiträgt. Um die Stabilitätsziele auf einmal zu erreichen AWS-Region, sollten Sie sich darauf konzentrieren, einzelne Fehlerquellen in Ihren Architekturen zu vermeiden. Wenn eine Availability Zone nicht mehr verfügbar ist, werden dadurch die Auswirkungen minimiert.

Startups sollten, wo immer möglich, regionale Dienste nutzen. AWS sorgt für Hochverfügbarkeit, indem Anwendungen und Daten für diese Dienste in mehreren Availability Zones bereitgestellt werden. Amazon Simple Storage Service (Amazon S3) ist beispielsweise ein regionaler Service, der Anfragen und Daten auf mehrere Availability Zones verteilt. Er ist so konzipiert, dass er nach einem Ausfall der Availability Zone automatisch wiederhergestellt wird. Sie interagieren nur mit dem regionalen Endpunkt des Dienstes.

Wenn Sie in Ihrem Design keine regionalen Dienste verwenden können, verwenden Sie AWS verwaltete zonale Dienste. AWS verwaltete zonale Dienste helfen Ihnen dabei, Ihre Anwendungen in mehreren Availability Zones bereitzustellen und sorgen so für hohe Verfügbarkeit. AWS bietet in diesen Diensten integrierte Resilienzfunktionen, wie z. B. die Option, Anwendungen mit nur einem Klick in mehreren Availability Zones bereitzustellen, den Datenverkehr aus beeinträchtigten Availability Zones umzuleiten, zugrunde liegende Hardwarefehler zu behandeln und Datensicherungen zu automatisieren. Amazon Relational Database Service (Amazon RDS) ist beispielsweise ein zonaler Service, der ein Multi-AZ-Cluster-Setup unterstützt, das bei einem Ausfall automatisch auf eine Standby-Datenbank-Instance in einer anderen Availability Zone umschaltet.

Für zonale Dienste, die nicht vollständig von verwaltet werden AWS, sollten Sie Elastic Load Balancing Balancing-Ressourcen und Amazon EC2 Auto Scaling verwenden, um Ihre Anwendungen in mehreren Availability Zones bereitzustellen. Verteilen Sie Ihre Anwendungen für Produktionsworkloads auf zwei Availability Zones. Bei kritischen Workloads mit Kundenkontakt sollten Sie Ihre Anwendung auf drei Availability Zones verteilen, um die Hochverfügbarkeit (HA) zu verbessern.

Sie sollten auch mehrere AWS-Konten als zusätzliche Grenzen zur Fehlerisolierung verwenden, um Produktionsressourcen von Entwicklungs- und Bereitstellungsressourcen zu trennen. Dies bietet Entwicklern und Technikern mehr Flexibilität beim Ändern von Ressourcen, AWS Identity and Access Management (IAM-) Berechtigungen und Ressourcenberechtigungen, ohne versehentlich die Produktionsarbeitslasten zu beeinträchtigen.

Definieren Sie eine Strategie für die Notfallwiederherstellung

Aus Sicht der Notfallwiederherstellung (DR) ist eine Strategie für Sicherung und Wiederherstellung mit schneller Wiederherstellung ausreichend, um die in der vorherigen Phase festgelegten Stabilitätsziele zu erreichen. Backups schützen Sie vor häufigen Ausfallszenarien wie Datenbeschädigung und fehlerhaften Implementierungen. Sie sollten AWS Backupes verwenden, um den Datenschutz zentral zu automatisieren — sowohl AWS-Services in der Cloud als auch vor Ort. Sie sollten ein Runbook erstellen, um alle Komponenten des Workloads wiederherzustellen oder neu zu erstellen und Abhängigkeiten zu aktualisieren. Es ist wichtig, dass Sie alle DR-Verfahren, einschließlich Failover und Failback, in das Runbook aufnehmen.

Definieren Sie eine Bereitstellungsstrategie

Einführung einer vollständigen Pipeline für kontinuierliche Integration und kontinuierliche Lieferung (CI/CD) pipeline adds complexity during the early stages of a startup. Start by building infrastructure as code (IaC) and use pipelines to deploy it. This sets a foundation to adopt a complete continuous integration and continuous delivery (CI/CD), wenn das Unternehmen reift.

Verwenden Sie kanarische oder blaue/grüne Bereitstellungsfunktionen, um neue Anwendungsversionen einzuführen. Bei einer Bereitstellung auf Canary wird eine Version langsam und inkrementell veröffentlicht. Wenn Sie sich sicher sind, stellen Sie die neue Version bereit und ersetzen die aktuelle Version vollständig. Bei einer Blau/Grün-Bereitstellungsstrategie erstellen Sie zwei separate, aber identische Umgebungen und führen die aktuelle Anwendungsversion in einer Umgebung (blau) und die neue Anwendungsversion in der anderen Umgebung (grün) aus. Dies ermöglicht schnelle Rollbacks mit minimalen Auswirkungen.

Pflegen Sie den gesamten Anwendungscode, die Konfigurationen und IaC in einem versionskontrollierten, verwalteten Repository. Verwenden Sie nach Möglichkeit integrierte Versionierungsfunktionen, wenn Sie Managed Services wie Amazon S3 S3-Versionierung bereitstellen.

Erstellen Sie weiche Abhängigkeiten

Wenn Ihre Anwendung von einem Drittanbieter abhängig ist, können Probleme mit dieser Abhängigkeit Ihre Fähigkeit beeinträchtigen, wie erwartet zu arbeiten oder zu skalieren. Reduzieren Sie, wo immer möglich, diese harten externen Abhängigkeiten, insbesondere bei Autoscaling-Workloads. Wenn Sie Ihr Produkt so entwickeln, dass es schnell auf den Markt kommt, verwenden Sie möglicherweise verschiedene Open-Source-Tools und -Komponenten sowie Tools und Komponenten von Drittanbietern. Um diese Abhängigkeiten zu berücksichtigen, sollten Sie Ihre Software mit einem standardmäßigen Failsafe-Modus oder einem Schutzschalter entwerfen. Ihre Anwendung kann alternative Ressourcen verwenden oder mit eingeschränkter Funktionalität betrieben werden, anstatt komplett auszufallen.