Klingt vielversprechend: bis zu 10-mal schnellerer Zugriff auf Amazon S3 Objects bei fast halbierten Kosten?! Die Zauberformel heißt Amazon S3 Express One Zone Storage Class – das wurde auf der letztjährigen re:invent in Las Vegas offiziell bekannt gegeben.
Neu: Amazon S3 Express One Zone Storage Class
Wer beim Nutzen von S3 Object Storage Wert auf sehr kurze Latenzzeiten legt, viele kleinere Dateien (aber nicht zwingend erforderlich) verwaltet und auf den Preis achten möchte, der ist mit der neuesten S3 Storage Class „Express One“ gut beraten. Zu beachten gilt aber dennoch Einiges:
- kein Object Versioning
- nur default Encryption („Amazon S3 managed keys (SSE-S3)“) verfügbar
- keine Tags
Derzeit steht „Express One Zone“ nur in folgenden Regionen zur Verfügung:
- US East (N. Virginia)
- US West (Oregon)
- Asia Pacific (Tokyo)
- Europe (Stockholm)
In der AWS Management Console (Service: S3) findet man die neuen, sogenannten „Directory Buckets“ hier:
Wie im Screenshot zu erkennen, muss die Region explizit ausgewählt werden (hier: Stockholm).
Und für welche Workloads ist das interessant?
Drei Beispiele seien hier genannt:
- Generative AI/ML
- Media Content Delivery
- komplexe Finanzberechnungen
Durchstarten mit einem einfachen Beispiel
Wir wollen zwei Dateien in ein neues Directory Bucket in der Region Stockholm hochladen und dafür die AWS CLI (neueste Version!) nutzen. Folgende Bucket Configuration benötigen wir im zweiten Schritt:
{ "Location": { "Type": "AvailabilityZone", "Name": "eun1-az1" }, "Bucket": { "DataRedundancy": "SingleAvailabilityZone", "Type": "Directory" } }
Und schon kann es losgehen:
## some preparations: export AWS_REGION=eu-north-1 mkdir sample-files touch sample-files/empty.txt dd if=/dev/urandom of=sample-files/100k.txt bs=100K count=1 ## get zone identifier of "eu-north-1a": aws ec2 describe-availability-zones --output json | \ jq -r '.AvailabilityZones[] | select(.ZoneName == "eu-north-1a") | .ZoneId' eun1-az1 ## create new bucket (with random petname as suffix): aws s3api create-bucket --bucket $(petname -w5)--eun1-az1--x-s3 \ --create-bucket-configuration file://s3express-bucket-config.json \ --region eu-north-1 ## change your random bucketname - in this example, this was "really-widely-hardly-good-grub--eun1-az1--x-s3": aws s3api list-objects-v2 \ --bucket really-widely-hardly-good-grub--eun1-az1--x-s3 ## (gives empty result) ## upload 2 sample files: aws s3api put-object --bucket really-widely-hardly-good-grub--eun1-az1--x-s3 \ --key sample-files/empty.txt --body sample-files/empty.txt aws s3api put-object --bucket really-widely-hardly-good-grub--eun1-az1--x-s3 \ --key sample-files/100k.txt --body sample-files/100k.txt # verify: aws s3api list-objects-v2 \ --bucket really-widely-hardly-good-grub--eun1-az1--x-s3 { "Contents": [ { "Key": "sample-files/empty.txt", "LastModified": "2024-01-23T10:08:20+00:00", "ETag": "\"4aa6e6cf520d4fbea76e24bb42a5f18a\"", "ChecksumAlgorithm": [ "CRC32" ], "Size": 0, "StorageClass": "EXPRESS_ONEZONE" }, { "Key": "sample-files/100k.txt", "LastModified": "2024-01-23T10:10:03+00:00", "ETag": "\"e67ba4865c5e4b049e1a3b9e3f9e9596\"", "ChecksumAlgorithm": [ "CRC32" ], "Size": 102400, "StorageClass": "EXPRESS_ONEZONE" } ], "RequestCharged": null }
Amazon S3 Nutzung verstehen
Wenn du ganz allgemein deine S3-Nutzung besser verstehen möchtest, empfehlen wir die zwei eingebauten Services:
Schreibe einen Kommentar