Dieser Inhalt ist veraltet. Diese Version des Well-Architected Framework finden Sie jetzt unter: https://docs.aws.amazon.com/de_de/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 2: Was ist bei der Wahl der Datenverarbeitungslösung zu beachten?

Die optimale Datenverarbeitungslösung für eine Workload ist vom Anwendungsdesign sowie von Nutzungsmustern und Konfigurationseinstellungen abhängig. Architekturen können unterschiedliche Datenverarbeitungslösungen für verschiedene Komponenten verwenden und unterschiedliche Funktionen zur Leistungsverbesserung unterstützen. Die Wahl der falschen Datenverarbeitungslösung für eine Architektur kann die Leistungseffizienz schmälern.

Ressourcen

Amazon EC2 foundations (CMP211-R2)
Powering next-gen Amazon EC2: Deep dive into the Nitro system
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
Optimize performance and cost for your AWS compute (CMP323-R1)
Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)
Cloud Compute with AWS
EC2 Instance Types
Processor State Control for Your EC2 Instance
EKS Containers: EKS Worker Nodes
ECS Containers: Amazon ECS Container Instances
Functions: Lambda Function Configuration

Bewährte Methoden:

Verbesserungsplan

Prüfen der verfügbaren Datenverarbeitungsoptionen

  • Erwägen von Datenverarbeitungsoptionen: Bestimmen Sie, welche Datenverarbeitungsoption Ihren Anforderungen am ehesten gerecht wird. Aus Leistungssicht können Instances für Anwendungen mit langer Laufzeit verwendet werden, insbesondere für zustandsbasierte und solche mit lang andauernden Rechenzyklen. Funktionen können für durch Ereignisse initiierte, zustandslose Anwendungen verwendet werden, für die eine schnelle Reaktionszeit erforderlich ist. Mithilfe von Containern lassen sich die Ressourcen einer Instance effizient nutzen.
    Cloud Compute with AWS
  • Definieren der Anforderungen an die Rechenleistung: Bestimmen Sie die wichtigen Rechenleistungsmetriken für Ihre Workload und implementieren Sie Ihre Anforderungen mithilfe eines datengestützten Ansatzes, der Benchmarking oder Lasttests umfasst. Ermitteln Sie anhand dieser Daten, an welcher Stelle Ihre Datenverarbeitungslösung Defizite hat. Prüfen Sie anschließend die Konfigurationsoptionen zur Verbesserung der Lösung.
  • Auseinandersetzen mit verfügbaren Konfigurationsoptionen für die Datenverarbeitung

  • Einholen von Informationen zu verfügbaren Konfigurationsoptionen: Verwenden Sie die verfügbaren Konfigurationsoptionen für die von Ihnen gewählte Datenverarbeitungsoption, um eine Optimierung entsprechend Ihren Leistungsanforderungen vorzunehmen.Setzen Sie AWS Nitro-Systeme ein, um die Datenverarbeitungs- und Speicherressourcen der Host-Hardware vollständig zu nutzen. Dedizierte Nitro-Karten sorgen für Hochgeschwindigkeits-Netzwerke, Hochgeschwindigkeits-EBS und I/O-Beschleunigung.
    AWS Nitro System
  • Erfassen von Rechenmetriken

  • Erfassen von Rechenmetriken: Mit Amazon CloudWatch lassen sich Metriken für sämtliche Datenverarbeitungsressourcen in Ihrer Umgebung erfassen. Durch den Einsatz von CloudWatch zusammen mit anderen Erfassungstools lassen sich die Metriken auf Systemebene innerhalb Ihrer Workload verfolgen. Erfassen Sie Daten zu CPU-Nutzung, Arbeitsspeicher, Datenträger-I/O und Netzwerk, um Einblick in die Nutzung bzw. in Engpässe zu erhalten. Diese Daten sind von entscheidender Bedeutung, um festzustellen, wie leistungsfähig die Workload ist und wie effektiv die Ressourcen von der Workload genutzt werden. Nutzen Sie diese Metriken im Rahmen eines datengestützten Ansatzes, der die aktive Feinabstimmung und Optimierung der von der Workload genutzten Ressourcen ermöglicht.
    Amazon CloudWatch
  • Bestimmen der erforderlichen Konfiguration durch richtige Dimensionierung

  • Ändern der Workload-Konfiguration durch richtige Dimensionierung: Bestimmen Sie zur Optimierung von Leistung und Gesamteffizienz, welche Ressourcen Ihre Workload benötigt. Wählen Sie arbeitsspeicheroptimierte Instances für Systeme, die mehr Arbeitsspeicher als CPU benötigen. Verwenden Sie hingegen rechenoptimierte Instances für Komponenten, die eine nicht arbeitsspeicherintensive Datenverarbeitung durchführen. Bei korrekter Dimensionierung bietet die Workload eine optimale Leistung, wobei nur die benötigten Ressourcen verwendet werden.
  • Nutzen der verfügbaren Elastizität von Ressourcen

  • Nutzen der Elastizität: Elastizität ermöglicht das Anpassen der verfügbaren Ressourcen an den Bedarf. Instances, Container und Funktionen bieten Mechanismen für Elastizität, sei es in Kombination mit automatischer Skalierung oder als Merkmal des Service. Stellen Sie mithilfe von Elastizität in Ihrer Architektur sicher, dass Sie über genügend Kapazität zur Erfüllung der Leistungsanforderungen für den jeweiligen Nutzungsumfang verfügen. Sorgen Sie dafür, dass die Metriken zum Hoch- oder Herunterskalieren elastischer Ressourcen für die jeweilige Art der bereitgestellten Workload überprüft werden. Wenn Sie eine Anwendung zur Video-Transcodierung bereitstellen, wird eine CPU-Auslastung von 100 % erwartet, weshalb dies nicht die Hauptmetrik sein sollte. Alternativ können Sie die Warteschlangenlänge von Transcodierungsaufgaben messen, die auf die Skalierung der Instance-Typen warten. Stellen Sie sicher, dass Workload-Bereitstellungen sowohl mit Hoch- als auch mit Herunterskalierungen umgehen können. Das sichere Herunterskalieren von Workload-Komponenten ist genauso wichtig wie das Hochskalieren von Ressourcen bei entsprechendem Bedarf. Erstellen Sie Testszenarien für Herunterskalierungen, damit sich die Workload wie erwartet verhält.
  • Neubewerten des Rechenbedarfs anhand von Metriken

  • Optimieren von Ressourcen mithilfe eines datengestützten Ansatzes: Eine maximale Leistung und Effizienz erzielen Sie, indem Sie anhand der Daten, die Sie im Laufe der Zeit für Ihre Workload erfasst haben, die Ressourcen genau abstimmen und optimieren. Analysieren Sie, wie Ihre Workload die aktuell verfügbaren Ressourcen nutzt. Überlegen Sie zudem, welche Änderungen Sie vornehmen könnten, um die Anforderungen der Workload besser zu erfüllen. Wenn zu viele Ressourcen genutzt werden, verschlechtert sich die Systemleistung, während eine zu geringe Auslastung zu einer ineffizienten Ressourcennutzung und zu höheren Kosten führt.