Avec l’élément technologique de l’informatique trouvant ses racines dans chaque organisation financière et dans tous les secteurs, une capacité de stockage solide forme l’épine dorsale de la disponibilité, de la durabilité et de la scalabilité. Parmi celles-ci, Amazon S3 est l’un des services les plus populaires pour répondre à ces besoins. À mesure que les entreprises s’étendent géographiquement, le besoin de réplication des données entre les sites commence à se faire fortement sentir. Par conséquent, la nécessité de développer la Réplication entre régions dans Amazon S3 est apparue, où la réplication des données entre un compartiment provenant d’une région AWS vers un autre compartiment dans une région AWS différente est autorisée.
L’article décrira comment configurer la Réplication entre régions dans Amazon S3 en utilisant Terraform, un logiciel IaC. Il donne un aperçu général de la façon de mettre en place des SLA, discute des raisons pour lesquelles on mettrait en œuvre une réplication entre régions, et montre comment mettre en place un concept de preuve de fonctionnement.
Qu’est-ce que la Réplication entre régions ?
La RRR signifie Réplication entre régions, une fonctionnalité d’Amazon S3 qui réplique les objets d’un compartiment vers un autre dans une région différente. Cette réplication aide à la conformité réglementaire, à la reprise après sinistre et à l’optimisation des performances en stockant les données plus près des utilisateurs.
Principales caractéristiques de la RRR
- Elle réplique automatiquement les objets entre les compartiments.
- Les régions sont indépendantes ; c’est-à-dire que les compartiments source et de destination peuvent être de régions différentes.
- Règles : Cela permet un contrôle granulaire sur ce qui est répliqué.
- Prise en charge du chiffrement et de l’étiquetage : prend en charge la réplication des données chiffrées et des étiquettes d’objet.
Pourquoi utiliser Terraform pour CRR ?
Terraform permet la gestion des ressources cloud via une configuration déclarative. Alors que la Console de gestion AWS dispose de politiques de réplication par défaut, Terraform permet l’utilisation de modèles contrôlés par version.
Avantages de Terraform
- Cohérence. Le processus réduit les chances de variations de configuration.
- Automatisation. Permet une mise en œuvre rapide, des mises à jour et des suppressions.
- Contrôle de version. Simplifie les retours en arrière et le suivi de l’historique.
Prérequis
Avant de configurer CRR avec Terraform, les éléments suivants doivent être en place :
- Un compte AWS avec des autorisations S3 et IAM
- Terraform installé localement
- Configuration AWS CLI pour l’authentification
Mise en œuvre
Étape 1 : Définir vos buckets S3
Vous devez créer au moins deux buckets : un bucket source et un bucket de destination.
resource "aws_s3_bucket" "source_bucket" {
bucket = "my-source-bucket-example"
acl = "private"
versioning {
enabled = true
}
tags = {
Name = "SourceBucket"
Environment = "Production"
}
}
resource "aws_s3_bucket" "destination_bucket" {
bucket = "my-destination-bucket-example"
acl = "private"
versioning {
enabled = true
}
tags = {
Name = "DestinationBucket"
Environment = "Production"
}
}
Étape 2 : Créer un rôle IAM pour la réplication
Pour utiliser CRR, un rôle IAM avec les privilèges nécessaires doit être créé. Créons-en un :
resource "aws_iam_role" "replication_role" {
name = "s3-replication-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = "sts:AssumeRole"
Effect = "Allow"
Principal = {
Service = "s3.amazonaws.com"
}
}
]
})
}
resource "aws_iam_policy" "replication_policy" {
name = "s3-replication-policy"
description = "Allows S3 to replicate objects"
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"s3:GetObject",
"s3:ListBucket",
"s3:ReplicateObject",
"s3:ReplicateDelete",
"s3:ReplicateTags"
]
Effect = "Allow"
Resource = [
"arn:aws:s3:::my-source-bucket-example/*",
"arn:aws:s3:::my-source-bucket-example"
]
},
{
Action = "s3:PutObject"
Effect = "Allow"
Resource = "arn:aws:s3:::my-destination-bucket-example/*"
}
]
})
}
resource "aws_iam_role_policy_attachment" "replication_role_attachment" {
role = aws_iam_role.replication_role.name
policy_arn = aws_iam_policy.replication_policy.arn
}
Étape 3 : Configuration de la réplication S3
Configurer une configuration de réplication pour associer les buckets source et de destination.
resource "aws_s3_bucket_replication_configuration" "replication_config" {
bucket = aws_s3_bucket.source_bucket.id
role = aws_iam_role.replication_role.arn
rule {
id = "ReplicationRule1"
status = "Enabled"
filter {
prefix = ""
}
destination {
bucket = aws_s3_bucket.destination_bucket.arn
storage_class = "STANDARD"
}
}
}
Étape 4 : Initialiser et appliquer la configuration
Exécutez la configuration Terraform en utilisant ces commandes :
terraform init
terraform apply
Pendant l’exécution de terraform apply
, vérifiez simplement le plan et confirmez son exécution.
Comment tester la configuration CRR
Créez un objet dans le bucket source et vérifiez s’il est répliqué dans le bucket de destination.
# Put a file in the source bucket
aws s3 cp test-file.txt s3://my-source-bucket-example/
# Check if file is there in the destination bucket
aws s3 ls s3://my-destination-bucket-example/
Avantages de la Réplication entre Régions
- Reprise après sinistre. Protégez les données en les dupliquant dans différentes régions géographiques.
- Conformité. Répondez aux exigences réglementaires en matière d’emplacement et de sauvegarde des données.
- Performances améliorées. Réduisez la latence en stockant les données plus près des utilisateurs.
- Automatisation de sauvegarde. Gérez les sauvegardes et les archives sans outils ou scripts supplémentaires.
Conseils de dépannage
- Erreurs de permission. Vérifiez que le rôle IAM a les autorisations correctes sur les buckets source et de destination.
- Versioning non activé. Assurez-vous que la versioning est activée sur les buckets source et de destination.
- Délais de réplication. La réplication est éventuellement cohérente. Surveillez la réplication à l’aide de CloudWatch.
Conclusion
Amazon S3 La Réplication entre Régions est une fonctionnalité très puissante pour toute entreprise souhaitant obtenir une redondance et une conformité adéquates des données. Terraform vous permet d’automatiser et de rationaliser le processus de mise en œuvre afin que la configuration de l’infrastructure reste cohérente et évolutive.
Dans ce tutoriel, nous avons appris comment implémenter CRR en utilisant Terraform, de la configuration du bucket aux définitions de règles de réplication. En vous basant sur la méthode décrite dans cet article, vous pouvez concevoir votre architecture de stockage optimale pour répondre aux besoins d’une application d’entreprise moderne.
Source:
https://dzone.com/articles/amazon-s3-cross-region-replication-terraform