Erfüllen der Compliance-Anforderungen durch eine Begrenzung der S3-Replikationszeit (S3 RTC)
Die Begrenzung der S3-Replikationszeit (S3 RTC) hilft Ihnen bei der Einhaltung von Compliance- oder Geschäftsanforderungen für die Datenreplikation und bietet Einblick in die Amazon-S3-Replikationsaktivitäten. S3 RTC repliziert die meisten Objekte, die Sie zu Amazon S3 hochladen, in Sekunden und 99,9 Prozent dieser Objekte innerhalb von 15 Minuten.
Standardmäßig bietet S3 RTC Ihnen zwei Möglichkeiten, den Fortschritt der Replikation zu verfolgen:
-
S3-Replikationsmetriken – Sie können S3-Replikationsmetriken verwenden, um die Gesamtzahl der S3-API-Operationen mit ausstehender Replikation, die Gesamtgröße der Objekte mit ausstehender Replikation, die maximale Replikationszeit in der Zielregion und der Gesamtzahl der Operationen zu überwachen, deren Replikation fehlgeschlagen ist. Anschließend können Sie jedes Dataset, das Sie separat replizieren, überwachen. Sie können S3-Replikationsmetriken auch unabhängig von S3 RTC aktivieren. Weitere Informationen finden Sie unter Verwenden von S3-Replikationsmetriken.
Replikationsregeln mit aktivierter Begrenzung der S3-Replikationszeit (S3 RTC) veröffentlichen S3-Replikationsmetriken. Replikationsmetriken sind innerhalb von 15 Minuten nach der Aktivierung von S3 RTC verfügbar. Replikationsmetriken sind über die Amazon-S3-Konsole, die Amazon-S3-API, die AWS-SDKs, die AWS Command Line Interface (AWS CLI) und Amazon CloudWatch verfügbar. Weitere Informationen zu CloudWatch-Metriken finden Sie unter Überwachen von Metriken mit Amazon CloudWatch. Weitere Informationen zum Anzeigen von Replikationsmetriken über die Amazon-S3-Konsole finden Sie unter Anzeigen von Replikationsmetriken.
S3-Replikationsmetriken werden zum selben Preis abgerechnet wie benutzerdefinierte Amazon-CloudWatch-Metriken. Weitere Informationen hierzu finden Sie unter Amazon CloudWatch – Preise
. -
Amazon-S3-Ereignisbenachrichtigungen – S3 RTC bietet
OperationMissedThreshold- undOperationReplicatedAfterThreshold-Ereignisse, die den Bucket-Eigentümer benachrichtigen, wenn die Objektreplikation den 15-Minuten-Grenzwert überschreitet oder danach erfolgt. Mit S3 RTC können Sie in den seltenen Fällen, in denen Objekte nicht innerhalb von 15 Minuten oder erst nach dem Grenzwert von 15 Minuten repliziert werden, Amazon-S3-Ereignisbenachrichtigungen erhalten.Replikationsmetriken sind innerhalb von 15 Minuten nach der Aktivierung von S3 RTC verfügbar. Amazon-S3-Ereignisbenachrichtigungen sind über Amazon SQS, Amazon SNS oder AWS Lambda verfügbar. Weitere Informationen finden Sie unter Erhalten von Amazon-S3-Ereignisbenachrichtigungen über Replikations-Fehlerereignisse.
Bewährte Methoden und Richtlinien für S3 RTC
Befolgen Sie beim Replizieren von Daten in Amazon S3 mit aktivierter Begrenzung der S3-Replikationszeit (S3 RTC) diese bewährten Methoden, um die Replikationsleistung für Ihre Workloads zu optimieren.
Themen
Leistungsrichtlinien für Amazon-S3-Replikation and -Anforderungsraten
Wenn Speicherinhalte zu Amazon S3 hochgeladen oder von dort abgerufen werden, können Ihre Anwendungen Tausende von Transaktionen pro Sekunde bei der Anforderungsleistung erhalten. Beispielsweise kann eine Anwendung mindestens 3.500 PUT/COPY/POST/DELETE- oder 5.500 GET/HEAD-Anforderungen pro Sekunde pro Präfix in einem S3-Bucket erreichen, einschließlich der Anforderungen, die die S3-Replikation in Ihrem Namen vornimmt. Es gibt keine Einschränkungen für die Anzahl der Präfixe in einem Bucket. Sie können Ihre Lese- und Schreibleistung steigern, indem Sie Lesevorgänge parallelisieren. Wenn Sie beispielsweise 10 Präfixe in einem S3-Bucket für parallele Lesevorgänge einrichten, können Sie damit die Leseleistung auf 55 000 Leseanfragen pro Sekunde skalieren.
Amazon S3 skaliert automatisch als Reaktion auf anhaltende Anforderungsraten oberhalb dieser Richtlinien oder anhaltender Anforderungsraten übereinstimmend mit LIST-Anforderungen. Während Amazon S3 intern für die neue Anforderungsrate optimiert wird, erhalten Sie möglicherweise temporär HTTP 503-Anforderungsantworten, bis die Optimierung abgeschlossen ist. Dieses Verhalten kann mit steigenden Anforderungsraten pro Sekunde oder beim ersten Aktivieren von S3 RTC auftreten. Während dieser Zeiträume kann sich die Replikationslatenz erhöhen. Das S3 RTC Service Level Agreement (SLA) gilt nicht für Zeiträume, in denen Amazon-S3-Leistungsrichtlinien für Anforderungen pro Sekunde überschritten werden.
Das S3 RTC SLA gilt auch nicht für Zeiträume, in denen Ihre Replikationsdatenübertragungsrate das Standardlimit von 1 Gbit/s überschreitet. Wenn Sie erwarten, dass Ihre Replikations-Übertragungsrate 1 Gbit/s überschreitet, können Sie Ihr AWS Support-Center
Schätzen der Replikationsanforderungsraten
Ihre Gesamtanforderungsrate einschließlich der Anforderungen, die die Amazon-S3-Replikation in Ihrem Namen vornimmt, muss den Richtlinien für die Amazon-S3-Anforderungsrate sowohl für die Quell- als auch für die Ziel-Buckets der Replikation entsprechen. Für jedes replizierte Objekt führt die Amazon-S3-Replikation bis zu fünf GET/HEAD-Anforderungen und eine PUT-Anforderung an den Quell-Bucket sowie eine PUT-Anforderung an jeden Ziel-Bucket aus.
Wenn Sie beispielsweise davon ausgehen, dass 100 Objekte pro Sekunde repliziert werden, kann die Amazon-S3-Replikation für Sie zusätzliche 100 PUT-Anforderungen für insgesamt 200 PUT-Anforderungen pro Sekunde an den Quell-S3-Bucket ausführen. Die Amazon-S3-Replikation kann außerdem bis zu 500 GET/HEAD-Anforderungen ausführen (5 GET/HEAD-Anforderungen für jedes replizierte Objekt).
Anmerkung
Es entstehen Kosten für nur eine PUT-Anforderung pro repliziertem Objekt. Weitere Informationen finden Sie in den Preisinformationen unter Amazon S3 – Häufig gestellte Fragen zur Replikation
Überschreiten der Kontingente für die S3-RTC-Datenübertragungsrate
Wenn Sie erwarten, dass die Datenübertragungsrate von S3 RTC das Standardkontingent von 1 Gbit/s überschreitet, wenden Sie sich an Ihr AWS Support-Center
AWS KMSReplikationsanforderungsraten für mit verschlüsselte Objekte
Wenn Sie Objekte replizieren, die serverseitig mit AWS Key Management Service(AWS KMS)-Schlüsseln (SSE-KMS) verschlüsselt sind, gelten Kontingente für die Anzahl der AWS KMS-Anforderungen pro Sekunde. AWS KMS lehnt möglicherweise eine ansonsten gültige Anforderung ab, da Ihre Anforderungsrate das Kontingent für die Anzahl der Anforderungen pro Sekunde überschreitet. Wird eine Anforderung abgelehnt, gibt AWS KMS einen Fehler des Typs ThrottlingException zurück. Das Kontingent für AWS KMS-Anforderungsraten gilt für Anforderungen, die Sie direkt ausführen, und für Anforderungen, die von Amazon S3 Replikation in Ihrem Auftrag durchgeführt werden.
Wenn Sie beispielsweise erwarten, 1.000 Objekte pro Sekunde zu replizieren, können Sie 2.000 Anforderungen von Ihrem Kontingent für AWS KMS-Anforderungsraten subtrahieren. Die resultierende Anforderungsrate pro Sekunde steht für Ihre AWS KMS-Workloads mit Ausnahme der Replikation zur Verfügung. Sie können AWS KMS-Anforderungsmetriken in Amazon CloudWatch verwenden, um die AWS KMS-Gesamtanforderungsrate in Ihrem AWS-Konto zu überwachen.
Um eine Erhöhung Ihres Kontingents für AWS KMS-Anforderungen pro Sekunde zu beantragen, wenden Sie sich an das AWS Support-Center
Aktivieren der Begrenzung der S3-Replikationszeit (S3 RTC)
Sie können die Begrenzung der S3-Replikationszeit (S3 RTC) mit einer neuen oder einer vorhandenen Replikationsregel verwenden. Sie können die Replikationsregel auf einen gesamten S3-Bucket oder auf Objekte mit einem bestimmten Präfix oder Tag anwenden. Wenn Sie S3 RTC aktivieren, werden S3-Replikationsmetriken auch für Ihre Replikationsregel aktiviert.
Sie können S3 RTC auch mithilfe der Amazon-S3-Konsole, der Amazon-S3-API, der AWS-SDKs und der AWS Command Line Interface (AWS CLI) konfigurieren.
Themen
Schrittweise Anleitungen hierzu finden Sie unter Konfigurieren einer Replikation für Buckets im selben Konto. Dieses Thema enthält Anleitungen zum Aktivieren von S3 RTC in Ihrer Replikationskonfiguration, wenn sich die Quell- und Ziel-Buckets im Eigentum desselben Kontos und unterschiedlicher AWS-Konten befinden.
Um Objekte, bei denen S3 RTC aktiviert ist, mit der AWS CLI zu replizieren, erstellen Sie Buckets, aktivieren das Versioning für die Buckets, erstellen eine IAM-Rolle, die Amazon S3 die Berechtigung zum Replizieren von Objekten gibt, und fügen die Replikations-Konfiguration zum Quell-Bucket hinzu. Für die Replikationskonfiguration muss S3 RTC aktiviert sein, wie im folgenden Beispiel gezeigt.
Schritt-für-Schritt-Anleitungen zum Einrichten Ihrer Replikationskonfiguration mit Hilfe der AWS CLI finden Sie unter Konfigurieren einer Replikation für Buckets im selben Konto.
Das folgende Beispiel für eine Replikationskonfiguration aktiviert die Werte ReplicationTime und EventThreshold und legt sie für eine Replikationsregel fest. Wenn Sie diese Werte aktivieren und festlegen, wird S3 RTC für die Regel aktiviert.
{ "Rules": [ { "Status": "Enabled", "Filter": { "Prefix": "Tax" }, "DeleteMarkerReplication": { "Status": "Disabled" }, "Destination": { "Bucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket", "Metrics": { "Status": "Enabled", "EventThreshold": { "Minutes": 15 } }, "ReplicationTime": { "Status": "Enabled", "Time": { "Minutes": 15 } } }, "Priority": 1 } ], "Role": "IAM-Role-ARN" }
Wichtig
Für Metrics:EventThreshold:Minutes und ReplicationTime:Time:Minutes ist als gültiger Wert nur 15 zulässig.
Im folgenden Java-Beispiel wird eine Replikationskonfiguration mit aktivierter Begrenzung der S3-Replikationszeit (S3 RTC) hinzugefügt.
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.model.DeleteMarkerReplication; import software.amazon.awssdk.services.s3.model.Destination; import software.amazon.awssdk.services.s3.model.Metrics; import software.amazon.awssdk.services.s3.model.MetricsStatus; import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest; import software.amazon.awssdk.services.s3.model.ReplicationConfiguration; import software.amazon.awssdk.services.s3.model.ReplicationRule; import software.amazon.awssdk.services.s3.model.ReplicationRuleFilter; import software.amazon.awssdk.services.s3.model.ReplicationTime; import software.amazon.awssdk.services.s3.model.ReplicationTimeStatus; import software.amazon.awssdk.services.s3.model.ReplicationTimeValue; public class Main { public static void main(String[] args) { S3Client s3 = S3Client.builder() .region(Region.US_EAST_1) .credentialsProvider(() -> AwsBasicCredentials.create( "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY") ) .build(); ReplicationConfiguration replicationConfig = ReplicationConfiguration .builder() .rules( ReplicationRule .builder() .status("Enabled") .priority(1) .deleteMarkerReplication( DeleteMarkerReplication .builder() .status("Disabled") .build() ) .destination( Destination .builder() .bucket("destination_bucket_arn") .replicationTime( ReplicationTime.builder().time( ReplicationTimeValue.builder().minutes(15).build() ).status( ReplicationTimeStatus.ENABLED ).build() ) .metrics( Metrics.builder().eventThreshold( ReplicationTimeValue.builder().minutes(15).build() ).status( MetricsStatus.ENABLED ).build() ) .build() ) .filter( ReplicationRuleFilter .builder() .prefix("testtest") .build() ) .build()) .role("role_arn") .build(); // Put replication configuration PutBucketReplicationRequest putBucketReplicationRequest = PutBucketReplicationRequest .builder() .bucket("source_bucket") .replicationConfiguration(replicationConfig) .build(); s3.putBucketReplication(putBucketReplicationRequest); } }