Kann DynamoDB Bilder speichern?
Ja, aber nur kleine. DynamoDB kann Bilder als base64-kodierte Binary-Attribute (B) speichern, sofern das gesamte Item unter dem 400-KB-Limit bleibt. AWS empfiehlt, größere Bilder in Amazon S3 abzulegen und in DynamoDB nur die Objekt-Metadaten und eine S3-Referenz zu halten, weil 400 KB für die meisten Mediendateien zu klein sind.
Wie das Speichern kleiner Bilder funktioniert
Kodiere das Bild als base64 und lege es in einem Binary-Attribut ab. DynamoDB rechnet die Rohbyte-Länge auf die 400-KB-Item-Grenze an — ein Thumbnail oder Icon passt also, ein vollständiges Foto meistens nicht.
Das empfohlene Muster
Für alles über 400 KB:
- Lade das Bild nach Amazon S3 hoch.
- Speichere seinen S3-Key, die Größe, den Content-Type und weitere Metadaten in DynamoDB.
- Lies die Metadaten aus DynamoDB und hole dann das Objekt aus S3.
Beachte, dass DynamoDB und S3 keine gemeinsamen Transaktionen haben — deine Anwendung muss verwaiste Objekte im Fehlerfall selbst aufräumen.
Was das Inline-Speichern kostet
Nimm einen Upload pro Sekunde und zehn Aufrufe pro Sekunde, On-Demand in us-east-1, und lass beide Varianten durch unseren Preisrechner laufen:
| Pro Monat | 380-KB-Bild inline | 119-Byte-Pointer |
|---|---|---|
| Writes | 624,15 $ | 1,64 $ |
| Reads (letztendlich konsistent) | 156,04 $ | 1,64 $ |
| Requests gesamt | 780,19 $ | 3,29 $ |
Derselbe Traffic kostet das 238-Fache, und die Kapazitätsrundung macht das komplett allein. Eine Schreibeinheit deckt 1 KB ab, das Bild rechnet also 380 davon ab, wo der Pointer 1 abrechnet. Reads runden auf 4 KB, jeder letztendlich konsistente Read des Bildes kostet also 47,5 Leseeinheiten gegenüber 0,5.
Der Speicher kommt obendrauf. Ein 380-KB-Upload pro Sekunde ergibt 952 GB pro Monat, also 238,09 $ bei DynamoDBs 0,25 $ pro GB-Monat oder 21,90 $ bei S3 Standard mit 0,023 $ — und die Uploads des Folgemonats legen dasselbe noch einmal drauf.
Das Pointer-Item, das diese Zahlen beschreiben, sieht so aus und misst 119 Bytes:
{
"pk": "IMG#2026-07-28#a1b2c3",
"s3Key": "uploads/2026/07/28/a1b2c3.jpg",
"contentType": "image/jpeg",
"bytes": 389120,
"width": 1920,
"height": 1080,
"uploadedAt": 1785283200
}Tiefer einsteigen
Siehe maximale Item-Größe und miss Items mit dem Item-Size-Rechner. Lade DynoTable herunter, um Binary-Attribute zu inspizieren.
Preisquellen
- Amazon DynamoDB pricing — Tarife für Request Units und Speicher, aus der AWS Price List API in den Rechner synchronisiert.
- Amazon S3 pricing — S3 Standard Storage, 0,023 $ pro GB-Monat für die ersten 50 TB in us-east-1 (am 2026-07-28 aus der Price List API gelesen).
Referenzen
- Best practices for storing large items and attributes in DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.
Am 2026-07-28 mit unserem eigenen Preisrechner über die us-east-1-Tarife kalkuliert, die er aus der AWS Price List API synchronisiert. Eingaben: On-Demand, 1 Write/Sekunde, 10 letztendlich konsistente Reads/Sekunde, 380 KB gegen das 119-Byte-Item oben, Free Tier aus.