Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration de la réplication des tables S3
Vous pouvez configurer la réplication pour créer automatiquement des répliques de table à partir d'une table source vers un maximum de cinq compartiments de table de destination. La réplication peut être configurée au niveau du compartiment (applicable à toutes les tables du compartiment) ou au niveau de la table (pour des tables spécifiques). Cette rubrique explique comment configurer la réplication à l'aide de la console Amazon S3 ou de l'interface de ligne de AWS commande (AWS CLI).
Pour plus d'informations sur la configuration de la réplication, consultez les rubriques suivantes.
Rubriques
Conditions préalables à la configuration de la réplication
Avant de configurer la réplication, assurez-vous de disposer des éléments suivants :
Ressources requises
-
Compartiment de table source : compartiment de table contenant la ou les tables que vous souhaitez répliquer
-
Compartiment (s) de table de destination : un ou plusieurs compartiments de tables dans lesquels vous souhaitez répliquer vos tables (jusqu'à 5 compartiments de table de destination)
-
Table (s) source : tables existantes dans votre compartiment de tables source à répliquer
-
Rôle (s) IAM : rôle IAM qui accorde à Amazon S3 l'autorisation de répliquer des tables en votre nom
Autorisations requises
L'identité IAM que vous utilisez pour configurer la réplication doit disposer des autorisations suivantes :
Pour la réplication au niveau du bucket :
-
s3tables:PutTableBucketReplicationsur le bucket de la table source -
s3tables:GetTableBucketReplicationsur le bucket de la table source -
iam:PassRolepour le rôle IAM de réplication
Pour la réplication au niveau de la table :
-
s3tables:PutTableReplicationsur la table source -
s3tables:GetTableReplicationsur la table source -
iam:PassRolepour le rôle IAM de réplication
Pour la réplication entre comptes :
-
Autorisations issues de la politique de compartiment du compte de destination
Exigences supplémentaires pour la réplication entre comptes
Si vos compartiments de table source et de destination se trouvent dans AWS des comptes différents, vous devez également :
-
Une politique de compartiment sur le compartiment de table de destination qui accorde au compte source les autorisations nécessaires pour répliquer des tables
-
L'ID du compte de destination et le nom de ressource Amazon (ARN) du compartiment de table
Exigences supplémentaires pour les tables chiffrées
Si vous souhaitez chiffrer des répliques de tables avec AWS KMS :
-
Une clé KMS dans la région de destination
-
Autorisations d'utilisation de la clé KMS dans votre rôle de réplication IAM
-
Une politique de clé KMS qui permet au rôle de réplication de chiffrer les données
Comprendre les configurations de réplication
Une configuration de réplication définit la manière dont Amazon S3 réplique les tables à partir de votre compartiment de tables source. La réplication peut être configurée à deux niveaux :
Réplication au niveau du bucket
Une configuration de réplication au niveau du compartiment s'applique à toutes les tables du compartiment de table source. Lorsque vous configurez la réplication au niveau du compartiment, Amazon S3 réplique automatiquement toutes les tables existantes et toutes les nouvelles tables créées dans le compartiment.
Utilisez la réplication au niveau du bucket lorsque :
-
Vous souhaitez répliquer toutes les tables d'un bucket
-
Vous souhaitez un comportement de réplication cohérent sur toutes les tables
-
Vous souhaitez simplifier la gestion en disposant d'une configuration unique
Réplication au niveau de la table
Une configuration de réplication au niveau de la table s'applique à une table spécifique. Les configurations au niveau de la table remplacent les configurations au niveau du compartiment pour cette table spécifique.
Utilisez la réplication au niveau de la table lorsque :
-
Vous souhaitez répliquer uniquement des tables spécifiques
-
Vous avez besoin de destinations de réplication différentes pour les différentes tables
-
Vous souhaitez remplacer une configuration au niveau du compartiment pour certaines tables
Éléments de configuration de réplication
Chaque configuration de réplication contient :
-
Rôle IAM : rôle assumé par Amazon S3 pour effectuer les opérations de réplication
-
Règles : une ou plusieurs règles de réplication (limitées à une règle au lancement). Chaque règle contient :
-
Destinations — Liste des groupes de tables de destination ARNs (jusqu'à 5 destinations)
-
État : si la règle est activée ou désactivée
-
-
Jeton de version : jeton utilisé pour éviter les conflits d'écriture lors de la mise à jour des configurations
Choix entre une réplication au niveau du compartiment ou au niveau de la table
Ordre de priorité de configuration
Lorsque des configurations au niveau du compartiment et au niveau de la table existent :
-
La configuration au niveau de la table est prioritaire pour cette table spécifique.
-
Les autres tables suivent la configuration au niveau du compartiment.
Configuration de la réplication à l'aide de la console Amazon S3
Cette procédure explique comment configurer la réplication à l'aide de la console Amazon S3.
Cette procédure explique comment créer une configuration de réplication de compartiments de table à l'aide de la console Amazon S3. Une configuration de réplication de compartiment de table s'applique à toutes les tables du compartiment de tables source.
-
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans le volet de navigation, choisissez Table buckets.
-
Dans la liste des compartiments de table, choisissez le nom du compartiment de table pour lequel vous souhaitez configurer la réplication.
-
Choisissez l’onglet Gestion.
-
Dans la section Configuration de la réplication du compartiment de tables, choisissez Créer une configuration de réplication du compartiment de table.
-
Dans la section Destination, configurez vos destinations de réplication :
-
Dans le champ ARN du bucket de table, entrez l'ARN du bucket de table de destination. Le format est :
arn:aws:s3tables:region:account-id:bucket/table-bucket-nameVous pouvez également choisir Browse S3 pour sélectionner un bucket de table dans votre compte.
-
(Facultatif) Pour ajouter des destinations supplémentaires, choisissez Ajouter une destination. Vous pouvez ajouter jusqu'à 4 compartiments de table supplémentaires pour un total de 5 destinations.
-
-
Dans la section Rôle IAM, configurez le rôle de réplication :
-
Pour la méthode de sélection des rôles IAM, choisissez l'une des options suivantes :
-
Créer un nouveau rôle IAM : Amazon S3 crée un nouveau rôle avec les autorisations nécessaires pour la réplication.
-
Choisissez parmi les rôles IAM existants : sélectionnez un rôle existant doté des autorisations de réplication requises.
-
Entrez l'ARN du rôle IAM : entrez manuellement l'ARN d'un rôle IAM existant.
-
-
Si vous avez choisi Choisir parmi les rôles IAM existants, sélectionnez un rôle dans la liste déroulante des rôles IAM.
-
(Facultatif) Choisissez Afficher pour vérifier les autorisations du rôle sélectionné dans la console IAM.
-
-
Choisissez Créer une configuration de réplication.
Une fois que vous avez créé la configuration de réplication, Amazon S3 lance le processus de remplissage initial. Vous pouvez surveiller l'état de réplication dans la section État de réplication des tables, qui affiche des informations sur chaque destination, notamment l'état de réplication, l'ARN de la table de destination et les dernières métadonnées répliquées.
Cette procédure explique comment créer une configuration de réplication au niveau des tables à l'aide de la console Amazon S3. Une configuration de réplication de table s'applique à une table spécifique et remplace toute configuration de réplication au niveau du compartiment pour cette table.
-
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans le volet de navigation, choisissez Table buckets.
-
Dans la liste des compartiments de table, choisissez le nom du compartiment de table contenant la table que vous souhaitez répliquer.
-
Choisissez l'onglet Tables.
-
Dans la liste Tables, choisissez le nom de la table que vous souhaitez répliquer.
-
Choisissez l’onglet Gestion.
-
Dans la section Configuration de réplication de tables, choisissez Créer une configuration de réplication de table.
-
Dans la section Destination, configurez vos destinations de réplication :
-
Dans le champ ARN du bucket de table, entrez l'ARN du bucket de table de destination. Le format est :
arn:aws:s3tables:region:account-id:bucket/table-bucket-nameVous pouvez également choisir Browse S3 pour sélectionner un bucket de table dans votre compte.
-
(Facultatif) Pour ajouter des destinations supplémentaires, choisissez Ajouter une destination. Vous pouvez ajouter jusqu'à 4 compartiments de table supplémentaires pour un total de 5 destinations.
-
-
Dans la section Rôle IAM, configurez le rôle de réplication :
-
Pour la méthode de sélection des rôles IAM, choisissez l'une des options suivantes :
-
Créer un nouveau rôle IAM : Amazon S3 crée un nouveau rôle avec les autorisations nécessaires pour la réplication.
-
Choisissez parmi les rôles IAM existants : sélectionnez un rôle existant doté des autorisations de réplication requises.
-
Entrez l'ARN du rôle IAM : entrez manuellement l'ARN d'un rôle IAM existant.
-
-
Si vous avez choisi Choisir parmi les rôles IAM existants, sélectionnez un rôle dans la liste des rôles IAM.
-
(Facultatif) Choisissez Afficher pour vérifier les autorisations du rôle sélectionné dans la console IAM.
-
-
Choisissez Créer une configuration de réplication.
Que se passera-t-il ensuite ?
Après avoir créé la configuration de réplication :
-
Amazon S3 lance le processus de remblayage initial en créant des tables répliques dans chaque compartiment de destination
-
L'état de réplication passe à Réplication une fois le remblayage commencé
-
Vous pouvez suivre la progression de la réplication dans l'onglet Gestion
-
Le temps de réplication initial dépend de la taille de votre table source
Configuration de la réplication à l'aide du AWS CLI
Cette procédure explique comment configurer la réplication à l'aide du AWS CLI. Remplacez les noms des comptes IDs, des régions et des compartiments par vos valeurs réelles. Ajoutez tous les compartiments de destination aux autorisations.
Étape 1 : créer un rôle IAM pour la réplication
Tout d'abord, créez un rôle IAM qu'Amazon S3 peut assumer pour répliquer vos tables.
-
Créez un document de politique de confiance qui autorise S3 Tables à assumer le rôle. Enregistrez ceci sous le nom
trust-policy.json:{ "Version": "2012-10-17" "Statement": [ { "Effect": "Allow", "Principal": { "Service": "replication.s3tables.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Créez le rôle IAM :
aws iam create-role \ --role-nameS3TablesReplicationRole\ --assume-role-policy-document file://trust-policy.json \ --description "Role for S3 Tables replication" -
Créez une politique d'autorisation qui accorde des autorisations de réplication. Enregistrez ceci sous le nom
replication-permissions.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableData" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source/table/*" }, { "Effect": "Allow", "Action": [ "s3tables:ListTables" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source" }, { "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination" }, { "Effect": "Allow", "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination/table/*" } ] } -
Associez la politique d'autorisation au rôle :
aws iam put-role-policy \ --role-nameS3TablesReplicationRole\ --policy-nameS3TablesReplicationPermissions\ --policy-document file://replication-permissions.json -
(Facultatif) Si vous utilisez le chiffrement KMS, ajoutez des autorisations KMS à votre politique :
{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" ] }
(Multi-comptes uniquement) Étape 2 : Configuration de la politique de compartiment de destination
Si vous effectuez une réplication vers un autre AWS compte, le compte de destination doit accorder des autorisations au compte source.
-
Dans le compte de destination, créez une politique de compartiment pour le compartiment de table de destination. Enregistrez ceci sous le nom
destination-bucket-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination" } ] } -
Appliquez la politique à l'aide de l'API S3 Tables :
aws s3tables put-table-bucket-policy \ --table-bucket-arn arn:aws:s3tables:us-west-2:444455556666:bucket/\ --policy file://amzn-s3-demo-table-bucket-cross-account-destinationdestination-bucket-policy.json\ --profiledestination-account -
Modifiez votre clé KMS source pour autoriser la réplication et la maintenance des tables S3 :
{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "allow replication to decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" } ] } -
De même, ajoutez des autorisations dans votre politique de clé KMS de destination
{ "Version": "2012-10-17", "Id": "key-policy-3", "Statement": [ { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" }, { "Sid": "allow replication to encrypt/decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" } ]
Étape 3 : Création d'une configuration de réplication
Vous pouvez utiliser le AWS CLI pour créer une configuration de réplication au niveau du compartiment de table ou au niveau de la table. Pour plus d’informations, consultez les procédures suivantes.
Utilisez cette approche pour répliquer toutes les tables d'un bucket.
-
Créez un fichier de configuration de réplication. Enregistrez ceci sous le nom
bucket-replication-config.json:Exemple : Destination unique sur le même compte
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" } ] } ] }Exemple : plusieurs destinations dans toutes les régions
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-dreu-west-1:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-euap-south-1:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-apacExemple : réplication entre comptes
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-east-1:444455556666:bucket/" } ] } ] }amzn-s3-demo-table-bucket-partner -
Appliquez la configuration de réplication au niveau du compartiment :
aws s3tables put-table-bucket-replication \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket\ --configuration file://bucket-replication-config.jsonSortie attendue :
{ "versionToken": "3HL4kqtJl40Nr8X8gdRQBpUMLUo", "status": "Success" }
Utilisez cette approche pour répliquer des tables spécifiques ou pour annuler la réplication au niveau du bucket.
-
Créez un fichier de configuration de réplication. Enregistrez ceci sous le nom
table-replication-config.json:Exemple : réplication sur une seule table
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-analytics-bucketExemple : Tableau avec plusieurs destinations
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-dreu-west-1:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-eu -
Appliquez la configuration de réplication au niveau de la table :
aws s3tables put-table-replication \ --table-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/\ --configuration file://amzn-s3-demo-table-bucket-sales-datatable-replication-config.jsonSortie attendue :
{ "versionToken": "xT2LZkFZ0UuTC2h8XqtGLx2Ak6M", "status": "Success" }