Mehr aus S3 herausholen: Amazon S3 Express One Zone Storage Class

Mehr aus S3 herausholen: Amazon S3 Express One Zone Storage Class

Avatar von Michael Krieg

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:

Directory Buckets in der AWS Management Console

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:

Weitere News aus dem AWS-Universum


Avatar von Michael Krieg

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Für das Handling unseres Newsletters nutzen wir den Dienst HubSpot. Mehr Informationen, insbesondere auch zu Deinem Widerrufsrecht, kannst Du jederzeit unserer Datenschutzerklärung entnehmen.