PERF02-BP02 Verstehen verfügbarer Konfigurationsoptionen für die Datenverarbeitung - AWS Well-Architected Framework

PERF02-BP02 Verstehen verfügbarer Konfigurationsoptionen für die Datenverarbeitung

Jede Datenverarbeitungslösung hat verfügbare Optionen und Konfigurationen, um die Merkmale Ihrer Workload zu unterstützen. Erfahren Sie, wie die verschiedenen Optionen Ihre Workloads ergänzen und welche Konfigurationsoptionen am besten für Ihre Anwendung geeignet sind. Beispiele für diese Optionen sind Instance-Familien, -Größen, -Merkmale (GPU, I/O), Bursting, Zeitüberschreitungen, Funktionsgrößen, Container-Instances und Gleichzeitigkeit.

Gewünschtes Ergebnis: Die Workload-Merkmale, einschließlich CPU, Arbeitsspeicher, Netzwerkdurchsatz, GPU, IOPS, Datenverkehrsmuster und Datenzugriffsmuster, werden dokumentiert und verwendet, um die Datenverarbeitungslösung so zu konfigurieren, dass Sie den Workload-Merkmalen entspricht. Jede dieser Metriken sowie benutzerspezifische Metriken, die für Ihre Workload spezifisch sind, werden aufgezeichnet, überwacht und dann verwendet, um die Datenverarbeitungskonfiguration zu optimieren, damit sie bestmöglich Ihre Anforderungen erfüllt.

Gängige Antimuster:

  • Verwenden der gleichen Datenverarbeitungslösung, die On-Premises eingesetzt wurde.

  • Die Datenverarbeitungsoptionen oder die Instance-Familie werden nicht überprüft, damit sie den Workload-Merkmalen entsprechen.

  • Die Datenverarbeitung ist überdimensioniert, um Bursting-Kapazitäten zu gewährleisten.

  • Sie verwenden mehrere Plattformen zur Datenverarbeitungsverwaltung für ein und dieselbe Workload.

Vorteile der Einführung dieser bewährten Methode: Sie müssen mit den Datenverarbeitungsangeboten von AWS vertraut sein, damit Sie die richtige Lösung für die einzelnen Workloads bestimmen können. Nachdem Sie die Datenverarbeitungsangebote für Ihre Workload ausgewählt haben, können Sie anhand von schnellen Experimenten mit diesen Angeboten feststellen, wie gut sie Ihren Workload-Anforderungen entsprechen. Eine Datenverarbeitungslösung, die für Ihre Workload-Eigenschaften optimiert ist, steigert Ihre Leistung, verringert Ihre Kosten und erhöht Ihre Zuverlässigkeit.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch

Implementierungsleitfaden

Wenn Ihre Workload die gleiche Rechenoption für mehr als vier Wochen verwendet hat und sie davon ausgehen, dass die Eigenschaften in Zukunft gleich bleiben, können Sie AWS Compute Optimizer verwenden, um eine Empfehlung basierend auf Ihren Rechenmerkmalen zu erhalten. Wenn AWS Compute Optimizer nicht in Frage kommt, da Metriken fehlen, es sich im einen nicht unterstützten Instance-Typ handelt oder sich eine vorhersehbare Änderung in Ihren Merkmalen ereignen kann, müssen Sie Ihre Metriken basierend auf Lasttests und Experimenten vorhersagen. 

Implementierungsschritte:

  1. Führen Sie EC2-Instances oder -Container mit dem EC2-Starttyp aus?

    1. Kann Ihre Workload GPUs zur Erhöhung der Leistung verwenden?

      1. Beschleunigte Computing-Instances sind GPU-basierte Instances, die die höchste Leistung für Machine-Learning-Training, Inferenz und High Performance Computing bieten.

    2. Führt Ihre Workload Anwendungen zur Machine-Learning-Inferenz aus?

      1. AWS Inferentia (Inf1) – Inf1-Instances wurden entwickelt, um Machine Learning-Inferenzanwendungen zu unterstützen. Mithilfe von Inf1-Instances können Kunden umfangreiche Inferenzanwendungen für Machine Learning wie Bilderkennung, Spracherkennung, Verarbeitung natürlicher Sprache, Personalisierung und Betrugserkennung ausführen. Sie können ein Modell in einem der gängigen Machine Learning-Frameworks wie TensorFlow, PyTorch oder MXNet erstellen und GPU-Instances verwenden, um Ihr Modell zu schulen. Nachdem Ihr Machine Learning-Modell geschult wurde, um Ihre Anforderungen zu erfüllen, können Sie es auf Inf1-Instances bereitstellen. Dazu verwenden Sie AWS Neuron, ein spezialisiertes Software Development Kit (SDK), das aus einem Compiler, einer Laufzeit und Tools zur Profilerstellung besteht, die die Machine Learning-Inferenzleistung von Inferentia-Chips optimieren.

    3. Lässt sich Ihre Workload mit Ihren grundlegenden Hardwarekomponenten integrieren, um die Leistung zu verbessern? 

      1. Field Programmable Gate Arrays (FPGAs) – Mit FPGAs können Sie Workloads mithilfe einer benutzerdefinierten Hardwarebeschleunigung für die anspruchsvollsten Workloads optimieren. Zum Definieren der Algorithmen bieten sich gängige unterstützte Programmiersprachen wie C oder Go sowie hardwareorientierte Sprachen wie Verilog oder VHDL an.

    4. Verfügen Sie über mindestens vier Wochen an Metriken und können vorhersagen, dass Ihre Datenverkehrsmuster und -metriken in Zukunft ungefähr gleich bleiben werden?

      1. Verwenden Sie Compute Optimizer, um eine Machine-Learning-Empfehlung dazu zu erhalten, welche Datenverarbeitungskonfiguration am besten Ihren Datenverarbeitungsmerkmalen entspricht.

    5. Ist Ihre Workload-Leistung durch CPU-Metriken eingeschränkt? 

      1. Rechenoptimierte Instances eignen sich hervorragend für Workloads, die leistungsstarke Prozessoren erfordern. 

    6. Ist Ihre Workload-Leistung durch Arbeitsspeichermetriken eingeschränkt? 

      1. Arbeitsspeicheroptimierte Instances bieten große Mengen an Arbeitsspeicher, um arbeitsspeicherintensive Workloads zu unterstützen.

    7. Ist Ihre Workload-Leistung durch IOPS eingeschränkt?

      1. Speicheroptimierte Instances wurden für Workloads entworfen, die hohen, sequenziellen Lese- und Schreibzugriff (IOPS) auf lokalen Speicher erfordern.

    8. Stellen Ihre Workload-Eigenschaften einen ausgewogenen Bedarf hinsichtlich aller Metriken dar?

      1. Benötigt Ihre Workload-CPU Burst-Kapazitäten, um Spitzen beim Datenverkehr zu bewältigen?

        1. Instances mit Spitzenlastleistung ähneln für Datenverarbeitung optimierten Instances mit dem Unterschied, dass sie eine Burst-Kapazität über die feste CPU-Baseline hinaus bieten, die in einer für Datenverarbeitung optimierten Instance festgelegt ist.

      2. Allzweck- Instances bieten eine ausgewogene Mischung aller Merkmale, um unterschiedliche Workloads zu unterstützen.

    9. Wird Ihre Datenverarbeitungs-Instance auf Linux ausgeführt und ist durch den Netzwerkdurchsatz auf der Netzwerkschnittstellenkarte eingeschränkt?

      1. Lesen Sie Leistungsfrage 5, Bewährte Methoden 2: Evaluieren der verfügbaren Netzwerkfunktionen, um den entsprechenden Instance-Typ und die Instance-Familie zu ermitteln, die Ihren Leistungsanforderungen entsprechen.

    10. Benötigt Ihre Workload konsistente und vorhersehbare Instances in einer bestimmten Availability Zone, an die Sie sich für ein Jahr binden können? 

      1. Reserved Instances bestätigen Kapazitätsreservierungen in einer bestimmten Availability Zone. Reserved Instances eignen sich optimal für die erforderliche Rechenleistung in einer bestimmten Availability Zone. 

    11. Hat Ihre Workload Lizenzen, die dedizierte Hardware erfordern?

      1. Dedicated Hosts unterstützen vorhandene Softwarelizenzen und helfen Ihnen bei der Erfüllung von Compliance-Anforderungen.

    12. Verfügt Ihre Datenverarbeitungslösung über eine Burst-Funktion und erfordert sie synchrone Verarbeitung?

      1. Mit On-Demand-Instances können Sie die Datenverarbeitungskapazität nach Sekunde oder Stunde ohne langfristige Verpflichtungen verwenden. Diese Instances eignen sich für sich Bursting über die Leistungsbasis hinaus.

    13. Ist Ihre Datenverarbeitungslösung zustandslos, fehlertolerant und asynchron? 

      1. Spot Instances erschließen ungenutzte Instance-Kapazitäten für Ihre zustandslosen, fehlertoleranten Workloads. 

  2. Verwenden Sie Container auf Fargate?

    1. Ist Ihre Task-Leistung durch den Arbeitsspeicher oder die CPU-Leistung eingeschränkt?

      1. Verwenden Sie die Task-Größe, um Ihren Arbeitsspeicher oder Ihre CPU anzupassen.

    2. Wird Ihre Leistung von Ihren Datenverkehr-Bursts beeinträchtigt?

      1. Verwenden Sie die Auto-Scaling-Konfiguration, damit sie Ihren Datenverkehrsmustern entspricht.

  3. Befindet sich Ihre Datenverarbeitungslösung auf Lambda?

    1. Verfügen Sie über mindestens vier Wochen an Metriken und können vorhersagen, dass Ihre Datenverkehrsmuster und -metriken in Zukunft ungefähr gleich bleiben werden?

      1. Verwenden Sie Compute Optimizer, um eine Machine-Learning-Empfehlung dazu zu erhalten, welche Datenverarbeitungskonfiguration am besten Ihren Datenverarbeitungsmerkmalen entspricht.

    2. Haben Sie nicht ausreichend Metriken, um AWS Compute Optimizer zu verwenden?

      1. Wenn Sie keine verfügbaren Metriken haben, um Compute Optimizer zu verwenden, nutzen Sie AWS Lambda Power Tuning, um die beste Konfiguration zu finden.

    3. Ist Ihre Funktionsleistung durch den Arbeitsspeicher oder die CPU-Leistung eingeschränkt?

      1. Konfigurieren Sie Ihren Lambda-Arbeitsspeicher, damit er Ihren benötigten Leistungsmetriken entspricht.

    4. Überschreitet Ihre Funktion das Zeitlimit bei der Ausführung?

      1. Ändern Sie die Timeout-Einstellungen.

    5. Wird Ihre Funktionsleistung durch Aktivitäts- und Gleichzeitigkeits-Bursts eingeschränkt? 

      1. Konfigurieren Sie die Gleichzeitigkeitseinstellungen, damit sie Ihren Leistungsanforderungen entsprechen.

    6. Wird Ihre Funktion asynchron ausgeführt und fällt bei wiederholten Versuchen aus?

      1. Konfigurieren Sie das maximale Alter des Ereignisses und die Höchstzahl von Wiederholungen in den Einstellungen für die asynchrone Konfiguration .

Grad des Aufwands für den Implementierungsplan: 

Sie müssen Ihre aktuellen Recheneigenschaften und -metriken kennen, um diese bewährten Methoden einzurichten. Das Erfassen dieser Metriken, Festlegen einer Baseline und Verwenden von Metriken zum Ermitteln der idealen Datenverarbeitungsoption stellt einen niedrigen bis mittleren Grad des Aufwands dar. Die Validierung erfolgt am besten über Lasttests und Experimentieren.

Ressourcen

Ähnliche Dokumente:

Ähnliche Videos:

Ähnliche Beispiele: