Cópia de dados de um bucket do S3 para outra conta e região usando a Replicação em Lote do S3 - Recomendações da AWS

Cópia de dados de um bucket do S3 para outra conta e região usando a Replicação em Lote do S3

Appasaheb Bagali, Lakshmikanth B D, Shubham Harsora, Purushotham G K e Suman Rajotia, Amazon Web Services

Resumo

Este padrão explica como é possível usar a Replicação em Lote do Amazon Simple Storage Service (Amazon S3) para copiar automaticamente o conteúdo de um bucket S3 para outro bucket do serviço, sem qualquer intervenção manual, após a configuração dos buckets. Os buckets de origem e de destino podem estar na mesma conta ou em regiões e Contas da AWS distintas.

A Replicação em Lote do S3 fornece uma maneira de replicar objetos do Amazon S3 que existiam antes da configuração de replicação ser aplicada, objetos que já haviam sido replicados anteriormente e objetos cuja replicação apresentou falhas. Este método usa um trabalho do Operações em Lote do S3. Quando o trabalho termina, você recebe um relatório de conclusão.

É possível usar a Replicação em Lote do S3 em cenários que exigem migração contínua e automática de novos objetos provenientes de um bucket de origem para um bucket de destino. Para realizar uma migração única, você pode usar a AWS Command Line Interface (AWS CLI) em vez disso, conforme descrito no padrão Cópia de dados de um bucket do S3 para outra conta e região usando a AWS CLI.

Pré-requisitos e limitações

  • Uma Conta da AWS de origem.

  • Uma Conta da AWS de destino.

  • Um bucket do S3 na conta de origem com alguns objetos, que podem ser arquivos ou pastas.

  • Um ou mais buckets do S3 na conta de destino.

  • Versionamento do S3 habilitado nos buckets de origem e de destino.

  • Permissões do AWS Identity and Access Management (IAM) para criar uma política do IAM, um perfil do IAM e uma política de bucket do S3 nas contas de origem e de destino.

  • Regras de ciclo de vida do Amazon S3 desabilitadas enquanto o trabalho de Replicação em Lote do S3 estiver ativo. Isso garante a paridade entre os buckets de origem e de destino. Caso contrário, o bucket de destino pode não ser uma réplica exata do bucket de origem.

Arquitetura

Cópia de objetos do Amazon S3 para outras contas e regiões usando a Replicação em Lote do S3

Ferramentas

AWS serviços da

Práticas recomendadas

O vídeo disponibilizado a seguir, do AWS re:Invent 2022, aborda as práticas recomendadas para usar a Replicação do Amazon S3 visando conformidade regulatória, proteção de dados e aumento da performance das aplicações.

https://www.youtube-nocookie.com/embed/hrJEbISBL04?controls=0

Épicos

TarefaDescriçãoHabilidades necessárias

Crie uma política do IAM para permitir a replicação entre contas.

Na conta da AWS de origem:

  1. Abra o console do IAM.

  2. Crie uma nova política do IAM.

  3. Na seção Editor de política, selecione JSON e cole o código apresentado a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GetSourceBucketConfiguration", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetBucketAcl", "s3:GetReplicationConfiguration", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::source-bucket-name", "arn:aws:s3:::source-bucket-name/*" ] }, { "Sid": "ReplicateToDestinationBuckets", "Effect": "Allow", "Action": [ "s3:List*", "s3:*Object", "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource": [ "arn:aws:s3:::destination-bucket-name*", "arn:aws:s3:::destination-bucket-name/*" ] }, { "Sid": "PermissionToOverrideBucketOwner", "Effect": "Allow", "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": [ "arn:aws:s3:::destination-bucket-name*", "arn:aws:s3:::destination-bucket-name/*" ] } ] }

    Esta política inclui três declarações:

    • GetSourceBucketConfiguration fornece acesso à configuração de replicação e à versão dos objetos para replicação no bucket de origem.

    •  ReplicateToDestinationBuckets fornece acesso para a realização de replicações no bucket de destino. É possível especificar vários buckets de destino na matriz.

    • PermissionToOverrideBucketOwner fornece acesso à ObjectOwnerOverrideToBucketOwner, permitindo que o bucket de destino se torne o proprietário dos objetos presentes na conta de destino que foram replicados usando a conta de origem.

  4. Escolha Próximo, forneça um nome para a política, como cross-account-bucket-replication-policy, e, em seguida, clique em Criar política.

Para obter mais informações, consulte Criar políticas do IAM na documentação do IAM.

Administrador de nuvem, administrador da AWS

Criar um perfil do IAM para a replicação entre contas.

Na conta da AWS de origem:

  1. No console do IAM, crie um perfil do IAM com as seguintes informações:

    1. Em Tipo de entidade confiável, escolha Serviços da AWS.

    2. No campo destinado ao serviço, escolha S3.

    3. No campo destinado ao caso de uso, escolha Operações em Lote do S3.

    4. Selecione a política criada na etapa anterior.

  2. Forneça um nome para o perfil, como cross-account-bucket-replication-role, e clique em Criar perfil.

Para obter mais informações, consulte Creating IAM roles na documentação do IAM.

Administrador de nuvem, administrador da AWS
TarefaDescriçãoHabilidades necessárias

Crie uma regra de replicação para o bucket de origem na conta de origem.

Na conta da AWS de origem:

  1. Abra o console Amazon S3.

  2. Acesse o bucket de origem e vá para a guia Gerenciamento.

  3. Crie uma regra de replicação com a seguinte configuração:

    1. Forneça um nome para a regra, como s3-replication-rule.

    2. Em Status, escolha Enabled.

    3. Para o escopo da regra, escolha Aplicar a todos os objetos no bucket.

    4. No campo Destino, selecione Especificar um bucket em outra conta e, em seguida, insira o número da Conta da AWS de destino e o nome do bucket.

    5. Opte por alterar a propriedade dos objetos para que o bucket de destino seja o proprietário.

    6. No campo Perfil do IAM, escolha o perfil que você criou anteriormente na conta de origem.

    7. Em Opções de replicação adicionais, selecione todas as opções disponíveis. Isso possibilita a replicação rápida de conteúdo, o monitoramento do progresso da replicação por meio das métricas do Amazon CloudWatch, e a replicação de marcadores de exclusão e de alterações nos metadados.

    8. Escolha Salvar.

  4. Se você tiver diversos buckets de destino, crie regras de replicação adicionais.

Para obter mais informações, consulte Configuring replication when source and destination buckets are owned by different accounts na documentação do Amazon S3.

Administrador da AWS, administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Aplique uma política de bucket ao bucket de destino.

Esta etapa deve ser realizada individualmente para cada bucket de destino nas contas da AWS de destino.

Na conta da AWS de destino:

  1. Abra o console do Amazon S3, acesse o bucket de destino e escolha a guia Permissões.

  2. Edite a política de bucket ao fornecer o código JSON apresentado a seguir e salve a política:

{ "Version": "2012-10-17", "Id": "PolicyForDestinationBucket", "Statement": [ { "Sid": "Permissions on objects and buckets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceAWSAccountNumber:role/IAM-Role-created-in-step1-in-source-account" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning", "s3:ReplicateDelete", "s3:ReplicateObject" ], "Resource": [ "arn:aws:s3:::destination-bucket", "arn:aws:s3:::destination-bucket/*" ] }, { "Sid": "Permission to override bucket owner", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceAWSAccountNumber:role/IAM-Role-created-in-step1-in-source-account" }, "Action": "s3:ObjectOwnerOverrideToBucketOwner", "Resource": "arn:aws:s3:::destination-bucket/*" } ] }

Esta política inclui duas declarações:

  • Permissions on objects and buckets indica que o bucket de destino pode realizar a replicação de conteúdo com base no perfil definido na conta de origem. O perfil fornece permissões sobre o bucket de origem..

  • Permission to override bucket owner indica que o bucket de destino conta com permissões para substituir a propriedade dos objetos da conta de origem.

Administrador da AWS, administrador de sistemas da AWS, administrador da nuvem
TarefaDescriçãoHabilidades necessárias

Verifique se a replicação está funcionando corretamente.

  1. Adicione um objeto ao bucket de origem.

  2. Verifique se o novo objeto foi replicado para os buckets do S3 nas contas de destino.

  3. Confira as métricas do CloudWatch:

    1. No bucket de origem, escolha a guia Métricas.

    2. Na seção Métricas de replicação, selecione uma regra de replicação.

    3. Escolha Display charts (Exibir gráficos). Os gráficos apresentam o estado da replicação, mostrando operações pendentes, latência de replicação e a quantidade de bytes ainda aguardando replicação.

Para mais informações, consulte Monitoramento de métricas com o Amazon CloudWatch na documentação do Amazon S3.

Administrador da AWS, administrador de nuvem

Recursos relacionados