Szenarien zu hoher Performance und Kostenoptimierung
Beantworten Sie Szenariofragen zu Caching-Strategien, der Abfrageoptimierung in Data Lakes, den Abwägungen zwischen Reserved und Spot sowie Architekturen mit Read Replicas.
Szenarien zu hoher Performance und Kostenoptimierung ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Szenario 1: Caching zur Reduzierung der Datenbanklast
Szenario: Die RDS-MySQL-Datenbank einer Nachrichtenwebsite verarbeitet 90 % Leseverkehr für Artikelinhalte, die höchstens einmal pro Stunde geändert werden. Die durchschnittliche Datenbank-CPU-Auslastung beträgt 80 %, die Kosten steigen und die Latenz pro Abfrage liegt bei 200 ms. Lösung: Fügen Sie vor RDS einen ElastiCache-Redis-Cluster hinzu und verwenden Sie das Muster Lazy Loading (Cache-Aside). Die Anwendung prüft zuerst den Cache – bei einem Cache-Treffer wird der zwischengespeicherte Artikel in <1 ms zurückgegeben. Bei einem Cache-Fehlversuch fragt sie RDS ab, gibt das Ergebnis zurück und schreibt es mit einer TTL von 1 Stunde in den Cache. Erwartetes Ergebnis: 90 % Cache-Trefferrate, eine auf unter 20 % sinkende RDS-CPU-Auslastung und eine auf unter 5 ms sinkende Latenz für zwischengespeicherte Antworten.
import boto3, json
elasticache = boto3.client('elasticache')
redis_client = None # assume redis-py client connected to ElastiCache endpoint
def get_article(article_id):
cache_key = 'article:' + str(article_id)
# Check cache first
cached = redis_client.get(cache_key)
if cached:
return json.loads(cached) # cache hit: <1ms
# Cache miss: query RDS
article = rds_query('SELECT * FROM articles WHERE id = %s', article_id)
# Write to cache with 1-hour TTL
redis_client.setex(cache_key, 3600, json.dumps(article))
return articleSzenario 2: CloudFront für die Bereitstellung statischer Assets
Szenario: Nutzer im asiatisch-pazifischen Raum benötigen 2–4 Sekunden zum Laden einer Webanwendung, die auf EC2 in us-east-1 gehostet wird. Die Anwendung stellt große statische Assets (Bilder, JS, CSS) bereit. Lösung: Platzieren Sie eine CloudFront-Distribution vor dem ALB. Konfigurieren Sie für den Pfad /static/* ein Cache-Verhalten mit einer langen TTL (z. B. 1 Woche), damit statische Dateien an CloudFront-Edge-Standorten in der Nähe der Nutzer in Asien zwischengespeichert werden. Dynamische API-Anfragen umgehen das Caching mit TTL=0. Asiatische Nutzer laden statische Assets in weniger als 100 ms von einem Edge-Standort in Singapur oder Tokio, statt auf Roundtrips nach us-east-1 zu warten.
# CloudFront origin for ALB + separate behaviour for static assets
aws cloudfront create-distribution --distribution-config '{
'Origins': {
'Quantity': 1,
'Items': [{
'Id': 'alb-origin',
'DomainName': 'my-alb.us-east-1.elb.amazonaws.com',
'CustomOriginConfig': {"HTTPSPort": 443, "OriginProtocolPolicy": "https-only"}
}]
},
'CacheBehaviors': {
'Quantity': 1,
'Items': [{
'PathPattern': '/static/*',
'DefaultTTL': 604800,
'MaxTTL': 604800
}]
},
'DefaultCacheBehavior': {"DefaultTTL": 0}
}'Szenario 3: Richtige Dimensionierung mit Compute Optimizer
Szenario: Ein Unternehmen verfügt über 500 EC2-Instances, von denen viele vor 3 Jahren mit großen Instance-Typen bereitgestellt wurden. Die AWS-Rechnung ist hoch, aber das Unternehmen weiß nicht, welche Instances überdimensioniert sind. Lösung: Aktivieren Sie AWS Compute Optimizer (kostenlos; verwendet 14 Tage CloudWatch-Metriken). Compute Optimizer analysiert die tatsächliche CPU-, Arbeitsspeicher-, Netzwerk- und Festplattenauslastung jeder Instance und gibt Empfehlungen zur richtigen Dimensionierung. Für eine mit durchschnittlich 8 % CPU-Auslastung laufende t3.xlarge würde eine Verkleinerung auf t3.small empfohlen. Die Umsetzung der Empfehlungen für 500 Instances reduziert die EC2-Kosten typischerweise um 20–40 %.
# Enable Compute Optimizer at account level
aws compute-optimizer update-enrollment-status \
--status Active
# Get EC2 instance recommendations
aws compute-optimizer get-ec2-instance-recommendations \
--filters Name=Finding,Values=OVER_PROVISIONED \
--query 'instanceRecommendations[*].{Instance: instanceArn, Current: currentInstanceType, Recommended: recommendationOptions[0].instanceType}' \
--output tableSzenario 4: Spot Instances für Batchverarbeitung
Szenario: Ein Genomikunternehmen führt nächtliche Batch-Jobs aus, die 8 Stunden dauern und bei einer Unterbrechung erneut ausgeführt werden können. EC2-On-Demand kostet für diese Jobs 10.000 $ pro Monat. Lösung: Verwenden Sie für die Batchverarbeitung EC2 Spot Instances. Spot Instances sind ungenutzte EC2-Kapazitäten, die mit einem Rabatt von bis zu 90 % verfügbar sind. Für unterbrechungstolerante Batch-Jobs verwenden Sie AWS Batch, das fehlgeschlagene Spot-Jobs automatisch erneut in die Warteschlange stellt und eine gemischte Flotte aus Spot Instances und einem minimalen On-Demand-Ersatz verwendet. Erwartete Einsparung: eine Reduzierung der Rechenkosten um 70–90 % – von 10.000 $ auf 1.000–3.000 $ pro Monat.
# AWS Batch compute environment with Spot instances
aws batch create-compute-environment \
--compute-environment-name spot-genomics \
--type MANAGED \
--state ENABLED \
--compute-resources '{
"type": "SPOT",
"bidPercentage": 60,
"minvCpus": 0,
"maxvCpus": 256,
"instanceTypes": ["optimal"],
"subnets": ["subnet-1a", "subnet-1b"],
"securityGroupIds": ["sg-batch"],
"instanceRole": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole",
"spotIamFleetRole": "arn:aws:iam::123456789012:role/AmazonEC2SpotFleetRole"
}' \
--service-role arn:aws:iam::123456789012:role/AWSBatchServiceRoleSzenario 5: DynamoDB On-Demand bei variablem Datenverkehr
Szenario: Eine Gaming-Rangliste verwendet DynamoDB mit bereitgestelltem Durchsatz. Bei Spieleveröffentlichungen steigt der Datenverkehr um das 50-Fache und die Tabelle drosselt Anfragen. Außerhalb dieser Veröffentlichungen liegt der Durchsatz nahezu bei null – die bereitgestellte Kapazität bleibt ungenutzt. Lösung: Wechseln Sie DynamoDB in den On-Demand-Kapazitätsmodus. On-Demand skaliert ohne manuelle Kapazitätsplanung sofort auf jeden Durchsatz und berechnet die Kosten pro Anfrage statt pro bereitgestellter Einheit. Sie zahlen nur für die tatsächlich gestellten Anfragen – zwischen Veröffentlichungen entstehen keine Kosten für ungenutzte Kapazität. On-Demand tauscht geringfügig höhere Kosten pro Anfrage gegen garantierte Drosselfreiheit und keinen Verwaltungsaufwand für Kapazitäten ein.
# Switch existing DynamoDB table to On-Demand mode
aws dynamodb update-table \
--table-name Leaderboard \
--billing-mode PAY_PER_REQUEST
# Verify the change
aws dynamodb describe-table \
--table-name Leaderboard \
--query 'Table.BillingModeSummary.BillingMode'Szenario 6: S3 Intelligent-Tiering für unvorhersehbare Zugriffsmuster
Szenario: Ein Unternehmen speichert Millionen von benutzergenerierten Bildern in S3 Standard. Die Zugriffsmuster sind unvorhersehbar – auf einige Bilder wird täglich zugegriffen, auf andere monatelang nicht. Das Unternehmen möchte die Speicherkosten senken, ohne Lifecycle-Richtlinien manuell verwalten zu müssen. Lösung: Verwenden Sie S3 Intelligent-Tiering. Der Dienst verschiebt Objekte automatisch abhängig von den Zugriffsmustern zwischen verschiedenen Speicherklassen: Frequent Access (Standard), Infrequent Access (seit mindestens 30 Tagen nicht abgerufen), Archive Instant Access (seit mindestens 90 Tagen) und Archive Access (seit mindestens 90 Tagen, optional aktivierbar). Innerhalb von Intelligent-Tiering fallen keine Abrufgebühren an. Die Überwachungsgebühr beträgt 0,0025 $ pro 1.000 Objekte und Monat – bei großen Datenmengen vernachlässigbar.
# Move objects to Intelligent-Tiering via lifecycle policy
aws s3api put-bucket-lifecycle-configuration \
--bucket user-images-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "AutoTier",
"Status": "Enabled",
"Filter": {},
"Transitions": [{
"Days": 0,
"StorageClass": "INTELLIGENT_TIERING"
}]
}]
}'Szenario 7: Abwägung zwischen Athena und Redshift
Szenario: Ein Startup möchte Tabellen in einem S3-Datenlake abfragen. Es führt etwa 10 Ad-hoc-Abfragen pro Woche aus. Ein Anbieter schlägt einen Amazon-Redshift-Cluster des Typs dc2.large vor. Lösung für ein Startup: Beginnen Sie mit Amazon Athena – keine Infrastrukturkosten, Sie zahlen nur für die gescannten Daten (etwa 5 $/TB). 10 Abfragen pro Woche auf gut partitionierten Parquet-Daten könnten weniger als 5 $ pro Monat kosten. Redshift des Typs dc2.large kostet bei durchgehendem Betrieb etwa 180 $ pro Monat. Redshift wird erst dann kosteneffizient, wenn eine hohe Abfragekonkurrenz besteht (mehr als 50 Abfragen pro Tag) oder Antworten im Subsekundenbereich erforderlich sind. Das Schlüsselwort „Ad-hoc, selten“ weist eindeutig auf Athena hin.
# Athena cost estimate for 10 queries/week:
# Assume each query scans 5 GB of Parquet data
# 10 queries x 5 GB = 50 GB / week = 200 GB / month
# Athena cost: 200 GB x $0.005/GB = $1.00 / month
#
# Redshift dc2.large cost: $0.25/hr x 24hr x 30days = $180/month
#
# For 10 queries/week -> Athena saves $179/month
# Breakeven: when queries scan >36 TB/month or concurrency >50/day -> use RedshiftSzenario 8: Auswahl des EBS-Volume-Typs
Szenario: Ein relationaler Datenbankserver benötigt 64.000 IOPS bei konstant niedriger Latenz. Das aktuelle gp3-EBS-Volume stößt an seine IOPS-Grenze. Lösung: Führen Sie ein Upgrade auf io2 Block Express durch (ein EBS-Volume-Typ für datenintensive Datenbanken). io2 Block Express unterstützt bis zu 256.000 IOPS pro Volume und Latenzen von unter einer Millisekunde. Der Dienst ist teurer als gp3 (0,125 $/GB plus 0,065 $ pro bereitgestelltem IOPS und Monat), aber die einzige EBS-Option, die Anforderungen von mindestens 64.000 IOPS erfüllt. Für latenzkritische Datenbank-Workloads, bei denen die Obergrenze von 16.000 IOPS bei gp3 nicht ausreicht, ist io2 die einzige praktikable EBS-Wahl.
# Create io2 Block Express volume with 64,000 IOPS
aws ec2 create-volume \
--volume-type io2 \
--size 500 \
--iops 64000 \
--availability-zone us-east-1a \
--encrypted
# EBS volume type IOPS limits summary:
# gp3: up to 16,000 IOPS (default 3,000, configurable)
# io1: up to 64,000 IOPS (on Nitro instances)
# io2 Block Express: up to 256,000 IOPS
# st1 (throughput HDD): no IOPS focus, max 500 MB/s throughput
# sc1 (cold HDD): lowest cost, 250 MB/s max, rarely accessed dataSzenario 9: Reserved Instances für gleichmäßige Workloads
Szenario: Ein Unternehmen betreibt für eine Produktionsanwendung kontinuierlich 20 EC2-Instances des Typs r6i.4xlarge und erwartet, dass sich die Anforderungen drei Jahre lang nicht ändern. Die aktuellen On-Demand-Kosten für diese Instances betragen 80.000 $ pro Jahr. Lösung: Kaufen Sie Standard Reserved Instances mit einer Laufzeit von 3 Jahren (oder Compute Savings Plans) und leisten Sie eine vollständige Vorauszahlung, um den maximalen Rabatt zu erhalten. Standard Reserved Instances bieten gegenüber On-Demand einen Rabatt von bis zu 72 %. Die Instances laufen rund um die Uhr bei einem vorhersehbaren Workload – das klassische Einsatzprofil für Reserved Instances. Erwartete Kostensenkung: 80.000 $ × 0,72 = 22.400 $ pro Jahr gegenüber 80.000 $ pro Jahr bei On-Demand – eine Einsparung von 57.600 $ pro Jahr.
# Reserved Instance purchase decision matrix:
# On-Demand: No commitment, highest price, any workload
# 1-yr RI (All Up): 40% discount, 1-yr commitment, specific instance type
# 3-yr RI (All Up): 60-72% discount, 3-yr commitment, best for stable workloads
# Compute Savings Plan: 66% max discount, flexible instance family/size/Region
# EC2 Spot: 90% discount, interruptible, batch/stateless only
#
# Rule: if usage > 70% of the time for >1 year -> buy RI or Savings Plan
# Rule: if usage < 50% -> stick with On-Demand
# Rule: if usage pattern is steady 3yr -> 3yr RI All Upfront maximises savingsSzenario 10: Lambda- und EC2-Kosten bei variablem Datenverkehr
Szenario: Ein Unternehmen betreibt eine REST-API auf einer t3.micro-EC2-Instance, die 8 $ pro Monat kostet. Die API empfängt 1 Million Anfragen pro Monat, wobei die Verarbeitung jeder Anfrage 100 ms dauert. Das Team möchte wissen, ob Lambda günstiger wäre. Analyse: Lambda-Preisberechnung: 1.000.000 Anfragen × 0,0000002 $ = 0,20 $ (Anfragekosten) + 1.000.000 × 0,1 s × 128 MB Arbeitsspeicher × Tarif = etwa 1,67 $ (Rechenkosten) = etwa 1,87 $ pro Monat. Für diese API mit geringem Datenverkehr ist Lambda günstiger als EC2. Wenn der Datenverkehr auf mehr als etwa 40 Millionen Anfragen pro Monat steigt, wird EC2 günstiger. Verwenden Sie den Lambda Cost Calculator, um für jeden Workload den Break-even-Punkt zu ermitteln.
# Lambda vs EC2 cost rough break-even calculation:
# Lambda costs: $0.20 per 1M requests + $0.0000166667 per GB-second
# At 128 MB memory, 100ms duration:
# GB-seconds per request = 0.128 GB x 0.1s = 0.0128 GB-s
# Cost per request = $0.0000166667 x 0.0128 = $0.000000213 compute
# + $0.0000002 request fee = $0.000000413 total per request
#
# EC2 t3.micro: $0.0104/hr x 720 hrs = $7.49/month
# Break-even: $7.49 / $0.000000413 = ~18 million requests/month
# Below 18M requests/month -> Lambda cheaper
# Above 18M requests/month -> EC2 cheaper (if utilisation is high)Szenario 11: Global Accelerator für dynamische APIs
Szenario: Eine globale API für Benutzer in Europa, den USA und Asien weist eine uneinheitliche Latenz auf, weil der Datenverkehr unvorhersehbare Wege über das Internet nimmt. CloudFront wurde in Betracht gezogen, aber die API-Antworten sind dynamisch und können nicht zwischengespeichert werden. Lösung: Verwenden Sie AWS Global Accelerator. Der Dienst stellt weltweit zwei statische Anycast-IP-Adressen bereit. Der Datenverkehr der Benutzer gelangt am nächstgelegenen AWS-Edge-Standort in das globale AWS-Backbone und wird über das private AWS-Netzwerk zur Origin in der Zielregion weitergeleitet – die überlastete mittlere Strecke des öffentlichen Internets wird dabei vermieden. Global Accelerator verbessert die Antwortzeit dynamischer APIs um 20–60 % und ermöglicht einen sofortigen Failover, wenn ein Regionsendpunkt nicht mehr fehlerfrei funktioniert.
# Create a Global Accelerator for an ALB
aws globalaccelerator create-accelerator \
--name my-api-accelerator \
--ip-address-type IPV4 \
--enabled
# Add a listener and endpoint group pointing to ALB
aws globalaccelerator create-listener \
--accelerator-arn arn:aws:globalaccelerator::123:accelerator/abc \
--protocol TCP \
--port-ranges '[{"FromPort": 443, "ToPort": 443}]'
# Endpoint group in us-east-1 with ALB
aws globalaccelerator create-endpoint-group \
--listener-arn arn:aws:globalaccelerator::123:listener/xyz \
--endpoint-group-region us-east-1 \
--endpoint-configurations '[{"EndpointId": "arn:aws:elasticloadbalancing:...", "Weight": 100}]'Kurztest
Testen Sie Ihr Verständnis der AWS-Solutions-Architect-Konzepte (SAA-C03) aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie Szenarien zu folgenden Themen bearbeitet: Lazy Loading mit ElastiCache zur Senkung der RDS-CPU-Auslastung von 80 % auf 20 %, Spot Instances und AWS Batch für 70–90 % Kosteneinsparungen bei Batch-Jobs, Athena für seltene Ad-hoc-Abfragen im Vergleich zu Redshift für Analysen mit hoher Parallelität und S3 Intelligent-Tiering für unvorhersehbare Zugriffsmuster ohne Abrufgebühren. Als Nächstes folgt die abschließende Praxisprüfung: eine zeitlich begrenzte Mini-Prüfung mit gemischten Themenbereichen, um Ihre Prüfungsbereitschaft zu messen.
Häufig gestellte Fragen
Ist die Lektion „Szenarien zu hoher Performance und Kostenoptimierung“ kostenlos?
Ja — der vollständige Text von „Szenarien zu hoher Performance und Kostenoptimierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Szenarien zu hoher Performance und Kostenoptimierung“?
Beantworten Sie Szenariofragen zu Caching-Strategien, der Abfrageoptimierung in Data Lakes, den Abwägungen zwischen Reserved und Spot sowie Architekturen mit Read Replicas. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AWS Solutions Architect zu starten?
Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Szenarien zu hoher Performance und Kostenoptimierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?
Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Szenarien für sichere Architekturen
- Szenarien für resiliente und hochverfügbare Architekturen
- Szenarien zu hoher Performance und Kostenoptimierung
- Gemischte Mini-Prüfung über alle Bereiche