Satisfaction aux exigences de conformité à l’aide du contrôle du temps de réplication S3 - Amazon Simple Storage Service

Satisfaction aux exigences de conformité à l’aide du contrôle du temps de réplication S3

Le contrôle du délai de réplication Amazon S3 vous aide à respecter les règles de conformité et les besoins métier en matière de réplication des données, et améliore la visibilité des délais de réplication Amazon S3. Le contrôle du temps de réplication S3 permet de répliquer la plupart des objets que vous chargez dans Amazon S3 en quelques secondes, et 99,9 % de ces objets en 15 minutes.

Par défaut, le contrôle du temps de réplication S3 inclut deux méthodes pour suivre la progression de la réplication :

  • Métriques de réplication S3 : vous pouvez utiliser les métriques de réplication S3 pour surveiller le nombre total d’opérations d’API S3 en attente de réplication, la taille totale des objets en attente de réplication, la durée maximale de réplication vers la région de destination et le nombre total d’opérations pour lesquelles la réplication a échoué. Vous pouvez ensuite surveiller chaque jeu de données que vous répliquez séparément. Vous pouvez également activer les métriques de réplication S3 indépendamment du contrôle du temps de réplication S3. Pour plus d’informations, consultez Utilisation des métriques de réplication S3.

    Les règles de réplication avec le contrôle du temps de réplication S3 (S3 RTC) activé publient des métriques de réplication S3. Les mesures de réplication sont disponibles dans les 15 minutes suivant l’activation de S3 RTC. Les métriques de réplication sont disponibles via la console Amazon S3, l’API Amazon S3, les kits AWS SDK, l’AWS Command Line Interface (AWS CLI) et Amazon CloudWatch. Pour de plus amples informations sur les métriques CloudWatch, consultez Surveillance des métriques avec Amazon CloudWatch. Pour plus d’informations sur la consultation des métriques de réplication via la console Amazon S3, consultez Affichage des métriques de réplication.

    Les métriques de réplication S3 sont facturées au même tarif que les métriques personnalisées Amazon CloudWatch. Pour obtenir des informations, consultez Tarification Amazon CloudWatch.

  • Notifications d’événement Amazon S3 : le contrôle du temps de réplication S3 fournit des événements OperationMissedThreshold et OperationReplicatedAfterThreshold qui notifient le propriétaire du compartiment si la réplication d’objet dépasse ou a lieu après le seuil de 15 minutes. Avec le contrôle du temps de réplication S3, les notifications d’événements Amazon S3 peuvent vous avertir dans les rares cas où les objets ne se répliquent pas dans les 15 minutes mais après le seuil de 15 minutes.

    Les événements de réplication sont disponibles dans les 15 minutes suivant l’activation du contrôle du délai de réplication S3. Les notifications d’événements Amazon S3 sont disponibles via Amazon SQS, Amazon SNS et AWS Lambda. Pour plus d’informations, consultez Recevoir des événements d’échec de réplication avec des notifications d’événements Amazon S3.

Bonnes pratiques et directives pour le contrôle du temps de réplication S3

Lorsque vous répliquez des données dans Amazon S3 avec le contrôle du temps de réplication S3 (S3 RTC), suivez les directives de ces bonnes pratiques pour optimiser les performances de réplication pour vos charges de travail.

Directives en matière de performances de réplication et de débit de demandes Amazon S3

Vos applications peuvent exécuter des milliers de transactions par seconde en termes de performances de demande lors du chargement et de la récupération du stockage depuis Amazon S3. Par exemple, une application peut atteindre au moins 3 500 demandes PUT/COPY/POST/DELETE ou 5 500 demandes GET/HEAD par seconde et par préfixe dans un compartiment S3, y compris les demandes que la réplication S3 effectue en votre nom. Il n’existe aucune limite au nombre de préfixes dans un compartiment. Vous pouvez augmenter vos performances de lecture et d’écriture en effectuant une mise en parallèle des lectures. Par exemple, si vous créez 10 préfixes dans un compartiment S3 pour paralléliser les lectures, vous pouvez mettre à l’échelle vos performances de lecture à 55 000 demandes de lecture par seconde.

Amazon S3 effectue automatiquement une mise à l’échelle en réponse à des débits de demandes soutenus supérieurs à ces directives, ou à des débits de demandes soutenus simultanés à des demandes LIST. Tandis qu’Amazon S3 optimise en interne le débit de nouvelles demandes, vous pouvez recevoir temporairement des réponses HTTP 503 jusqu’à ce que l’optimisation soit terminée. Ce comportement peut se produire avec des augmentations des débits de demandes par seconde, ou lorsque vous activez S3 RTC pour la première fois. Au cours de ces périodes, votre latence de réplication peut augmenter. Le contrat de niveau de service (SLA) du contrôle du délai de réplication S3 ne s’applique pas aux périodes où les directives en matière de performances Amazon S3 sur les demandes par seconde sont dépassées.

Le SLA du contrôle du temps de réplication S3 ne s’applique pas non plus pendant les périodes où votre débit de transfert de données de réplication dépasse le quota par défaut de 1 gigabit par seconde (Gbit/s). Si vous pensez que votre débit de transfert de réplication va dépasser 1 Gbit/s, vous pouvez contacter le Centre AWS Support ou utiliser Service Quotas pour demander une augmentation de votre quota de débit de transfert de réplication.

Estimation de vos débits de demandes de réplication

Votre débit de demandes total, y compris les demandes que la réplication Amazon S3 effectue en votre nom, doit être conforme aux directives en matière de débit de demandes Amazon S3 pour les compartiments source et de destination de réplication. Pour chaque objet répliqué, la réplication Amazon S3 effectue jusqu’à cinq demandes GET/HEAD et une demande PUT vers le compartiment source, ainsi qu’une demande PUT vers chaque compartiment de destination.

Par exemple, si vous envisagez de répliquer 100 objets par seconde, la réplication Amazon S3 peut effectuer 100 demandes PUT supplémentaires en votre nom pour un total de 200 demandes PUT par seconde vers le compartiment S3 source. La réplication Amazon S3 peut également effectuer jusqu’à 500 demandes GET/HEAD (5 demandes GET/HEAD pour chaque objet répliqué).

Note

Vous n’engagez des coûts que pour une seule demande PUT par objet répliqué. Pour plus d’informations, consultez les informations de tarification dans les questions fréquentes (FAQ) sur Amazon S3 relatives à la réplication.

Dépassement des quotas de débit de transfert de données RTC S3

Si vous pensez que votre débit de transfert de données RTC S3 va dépasser le quota par défaut de 1 Gbit/s, contactez le Centre AWS Support ou utilisez Service Quotas pour demander une augmentation de votre quota de débit de transfert de réplication.

Taux de demande de réplication d’objet chiffré AWS KMS

Lorsque vous répliquez des objets chiffrés avec le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS), des quotas de demandes AWS KMS par seconde s’appliquent. AWS KMS peut rejeter une demande par ailleurs valide si votre taux de demande dépasse le quota pour le nombre de demandes par seconde. Quand une demande est limitée, AWS KMS renvoie une erreur ThrottlingException. Le quota de débit de demandes AWS KMS s’applique aux demandes que vous effectuez directement et aux demandes effectuées par la réplication Amazon S3 en votre nom.

Par exemple, si vous envisagez de répliquer 1 000 objets par seconde, vous pouvez soustraire 2 000 demandes de votre quota de débit de demandes AWS KMS. Le taux de demande par seconde qui en résulte est disponible pour vos charges de travail AWS KMS, à l’exclusion de la réplication. Vous pouvez utiliser les métriques de demande AWS KMS dans Amazon CloudWatch pour contrôler le débit de demandes AWS KMS sur votre compte Compte AWS.

Pour demander une augmentation de votre quota de demandes AWS KMS par seconde, contactez le Centre AWS Support ou utilisez Service Quotas.

Activation du contrôle du délai de réplication S3

Vous pouvez commencer à utiliser le contrôle du délai de réplication S3 avec une règle de réplication nouvelle ou existante. Vous pouvez choisir d’appliquer votre règle de réplication à un compartiment entier ou à des objets avec un préfixe ou une balise spécifique. Lorsque vous activez S3 RTC, les métriques de réplication S3 sont également activées sur votre règle de réplication.

Vous pouvez configurer S3 RTC à l’aide de la console Amazon S3, de l’API Amazon S3, des kits AWS SDK et de l’AWS Command Line Interface (AWS CLI).

Rubriques

    Pour obtenir des instructions détaillées, consultez Configuration d’une réplication pour des compartiments dans le même compte. Cette rubrique fournit des instructions pour activer S3 RTC dans votre configuration de réplication lorsque les compartiments source et de destination sont détenus par un même compte ou des Comptes AWS différents.

    Pour utiliser AWS CLI afin de répliquer des objets avec S3 RTC activé, vous devez créer des compartiments, activer la gestion des versions sur les compartiments, créer un rôle IAM qui donne à Amazon S3 l’autorisation de répliquer des objets, et ajouter la configuration de réplication au compartiment source. La configuration de réplication doit avoir activé S3 RTC, comme illustré dans l’exemple suivant.

    Pour obtenir des instructions pas à pas afin de définir votre configuration de réplication à l’aide de l’AWS CLI, consultez Configuration d’une réplication pour des compartiments dans le même compte.

    L’exemple de configuration de réplication suivant active et définit les valeurs ReplicationTime et EventThreshold pour une règle de réplication. L’activation et la définition de ces valeurs permettent d’activer S3 RTC sur la règle.

    { "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" }
    Important

    Metrics:EventThreshold:Minutes et ReplicationTime:Time:Minutes peuvent uniquement avoir 15 comme valeur valide.

    Voici un exemple Java permettant d’ajouter une configuration de réplication avec le contrôle du temps de réplication S3 (S3 RTC) activé.

    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); } }