Allgemeine Allzweck-Bucket-Muster für den Aufbau von Anwendungen auf Amazon S3
Wenn Sie Anwendungen in Amazon S3 erstellen, können Sie spezielle Allzweck-Buckets verwenden, um verschiedene Datensätze oder Workloads zu trennen. Wenn Sie Anwendungen für Endbenutzer oder verschiedene Benutzergruppen entwickeln, verwenden Sie unsere bewährten Designmuster, um Anwendungen zu entwickeln, die die Funktionen und Skalierbarkeit von Amazon S3 optimal nutzen können.
Wichtig
Wir empfehlen Ihnen, Allzweck-Bucket-Namen zu erstellen, die nicht vorhersehbar sind. Schreiben Sie keinen Code unter der Annahme, dass der von Ihnen gewählte Bucket-Name verfügbar ist, es sei denn, Sie haben den Bucket bereits erstellt. Eine Methode zum Erstellen von Bucket-Namen, die nicht vorhersehbar sind, besteht darin, eine Globally Unique Identifier (GUID) an Ihren Bucket-Namen anzuhängen, zum Beispiel amzn-s3-demo-bucket-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. Weitere Informationen über Benennungsregeln für Allzweck-Buckets finden Sie unter Benennungsregeln für Allzweck-Buckets.
Multi-Tenant-Allzweck-Bucket-Muster
Bei Multi-Tenant-Buckets erstellen Sie einen einzigen Allzweck-Bucket für ein Team oder einen Workload. Sie verwenden eindeutige S3-Präfixe, um die Objekte zu organisieren, die Sie im Bucket speichern. Ein Präfix ist eine Zeichenfolge am Anfang des Objektschlüsselnamens. Ein Präfix kann eine beliebige Länge haben, abhängig von der maximalen Länge des Objektschlüsselnamens (1.024 Byte). Sie können sich Präfixe als eine Möglichkeit vorstellen, Ihre Daten ähnlich wie Verzeichnisse zu organisieren. Präfixe sind jedoch keine Verzeichnisse.
Wenn Sie beispielsweise Informationen über Städte speichern, könnten Sie diese nach dem Kontinent, dann nach dem Land und dann nach der Provinz oder dem Staat anordnen. Diese Namen enthalten normalerweise keine Interpunktionszeichen, deshalb könnten Sie den Schrägstrich (/) als Trennzeichen verwenden. Die folgenden Beispiele zeigen, wie Präfixe verwendet werden, um Städtenamen mithilfe eines Schrägstrichs (/) nach Kontinent, Land und dann nach Provinz oder Bundesland zu organisieren.
-
Europe/France/NouvelleA-Aquitaine/Bordeaux
-
North America/Canada/Quebec/Montreal
-
North America/USA/Washington/Bellevue
-
North America/USA/Washington/Seattle
Dieses Muster lässt sich gut skalieren, wenn Sie Hunderte von eindeutigen Datensätzen in einem Allzweck-Bucket haben. Mit Präfixen können Sie diese Datensätze einfach organisieren und gruppieren.
Ein potenzieller Nachteil des Multi-Tenant-Allzweck-Buckets ist jedoch, dass viele Features auf S3-Bucket-Ebene wie Standard-Bucket-Verschlüsselung, S3 Versionsverwaltung und S3 – Zahlung durch den Anforderer auf Bucket-Ebene und nicht auf Präfix-Ebene festgelegt werden. Wenn die verschiedenen Datensätze innerhalb des Multi-Tenant-Buckets unterschiedliche Anforderungen haben, kann die Tatsache, dass Sie viele Funktionen auf S3-Bucket-Ebene nicht auf Präfix-Ebene konfigurieren können, es Ihnen erschweren, die richtigen Einstellungen für jeden Datensatz anzugeben. Darüber hinaus kann die Kostenzuweisung in einem Multi-Tenant-Bucket komplex werden, wenn Sie daran arbeiten, den Speicher, die Anfragen und die Datenübertragung im Zusammenhang mit bestimmten Präfixen zu verstehen.
Bucket-per-Use-Muster
Mit dem Bucket-per-Use-Muster erstellen Sie einen Allzweck-Bucket für jeden einzelnen Datensatz, Endbenutzer oder jedes Team. Da Sie S3-Funktionen auf Bucket-Ebene für jeden dieser Buckets konfigurieren können, können Sie dieses Muster verwenden, um eindeutige Einstellungen auf Bucket-Ebene zu konfigurieren. Sie können beispielsweise Funktionen wie Standard-Bucket-Verschlüsselung, S3-Versionierung und S3-Buckets mit Zahlung durch den Anforderer so konfigurieren, dass sie an den Datensatz in jedem Bucket angepasst sind. Die Verwendung eines Buckets für jeden einzelnen Datensatz, jeden Endbenutzer oder jedes Team kann Ihnen auch dabei helfen, sowohl Ihre Zugriffsverwaltung als auch Ihre Kostenzuweisungsstrategien zu vereinfachen.
Ein potenzieller Nachteil dieser Strategie besteht darin, dass Sie potenziell Tausende von Buckets verwalten müssen. Alle AWS-Konten haben ein Standard-Kontingent von 10 000 Allzweck-Buckets. Sie können das Bucket-Kontingent für ein Konto erhöhen, indem Sie eine Anfrage zur Erhöhung des Kontingents einreichen. Um eine Erhöhung für Allzweck-Buckets anzufordern, rufen Sie die Service-Quotas-Konsole
Um Ihr Bucket-per-Use-Muster zu verwalten und Ihr Infrastrukturmanagement zu vereinfachen, können Sie verwenden AWS CloudFormation. Sie können eine benutzerdefinierte CloudFormation-Vorlage für Ihr Muster erstellen, in der bereits alle gewünschten Einstellungen für Ihre S3-Allzweck-Buckets definiert sind, so dass Sie alle Änderungen an Ihrer Infrastruktur problemlos bereitstellen und verfolgen können. Weitere Informationen finden Sie unter AWS::S3::Bucket im AWS CloudFormation-Benutzerhandbuch.