

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migre dados do Microsoft Azure Blob para o Amazon S3 usando o Rclone
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone"></a>

*Suhas Basavaraj, Aidan Keane e Corey Lane, Amazon Web Services*

## Resumo
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-summary"></a>

Esse padrão descreve como usar o [Rclone](https://rclone.org/) para migrar dados do armazenamento de objetos do Microsoft Azure Blob para um bucket do Amazon Simple Storage Service (Amazon S3). Você pode usar esse padrão para realizar uma migração única ou uma sincronização contínua dos dados. O Rclone é um programa de linha de comando escrito em Go e é usado para mover dados em várias tecnologias de armazenamento de provedores de nuvem.

## Pré-requisitos e limitações
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Dados armazenados no serviço de contêiner Azure Blob

## Arquitetura
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-architecture"></a>

**Pilha de tecnologia de origem**
+ Contêiner de armazenamento Azure Blob

**Pilha de tecnologias de destino**
+ Bucket do Amazon S3.
+ Instância Linux da Amazon Elastic Compute Cloud (Amazon EC2)

**Arquitetura**

![\[Migração de dados do Microsoft Azure para o Amazon S3\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6ead815d-7768-4726-b27d-97a70cd21081/images/abe69eee-632f-4ca2-abf6-3223f3f3ec94.png)


## Ferramentas
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-tools"></a>
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [O Rclone é um](https://rclone.org/) **programa de linha de comando de código aberto inspirado no rsync.** Ele é usado para gerenciar arquivos em várias plataformas de armazenamento em nuvem.

## Práticas recomendadas
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-best-practices"></a>

Ao migrar dados do Azure para o Amazon S3, lembre-se dessas considerações para evitar custos desnecessários ou velocidades de transferência lentas:
+ Crie sua infraestrutura da AWS na mesma região geográfica da conta de armazenamento do Azure e do contêiner Blob — por exemplo, região da AWS `us-east-1` (Norte da Virgínia) e região do Azure. `East US`
+ Evite usar o NAT Gateway, se possível, pois ele acumula taxas de transferência de dados para a largura de banda de entrada e saída.
+ Use um [endpoint de gateway VPC para o Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) para aumentar o desempenho.
+ Considere usar uma EC2 instância baseada no processador AWS Graviton2 (ARM) para obter menor custo e maior desempenho em relação às instâncias Intel x86. O Rclone é altamente compilado de forma cruzada e fornece um binário ARM pré-compilado.

## Épicos
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-epics"></a>

### Prepare os recursos de nuvem da AWS e do Azure
<a name="prepare-aws-and-azure-cloud-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare um bucket do S3 de destino. | [Crie um novo bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na região da AWS apropriada ou escolha um bucket existente como destino para os dados que você deseja migrar. | Administrador da AWS | 
| Crie uma função de instância do IAM para a Amazon EC2. | [Crie uma nova função do AWS Identity and Access Management (IAM) para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#working-with-iam-roles). Essa função dá à sua EC2 instância acesso de gravação ao bucket do S3 de destino. | Administrador da AWS | 
| Anexar uma política do IAM à instância | Use o console do IAM ou a AWS Command Line Interface (AWS CLI) para criar uma política embutida para a função EC2 da instância que permite permissões de acesso de gravação ao bucket S3 de destino. Para ver um exemplo de política, consulte a seção [Informações adicionais](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). | Administrador da AWS | 
| Execute uma EC2 instância. | Execute uma EC2 instância Amazon Linux que esteja configurada para usar a função de serviço IAM recém-criada. Essa instância também precisará acessar os endpoints públicos da API do Azure pela Internet. Considere usar [ EC2 instâncias do AWS baseadas em Graviton](https://docs.aws.amazon.com/compute-optimizer/latest/ug/graviton-recommendations.html) para reduzir custos. O Rclone fornece binários compilados em ARM. | Administrador da AWS | 
| Crie uma entidade principal de serviço do Azure AD. | Use a CLI do Azure para criar uma entidade principal de serviço do Azure Active Directory (Azure AD) que tenha acesso somente de leitura ao contêiner de armazenamento de Blob do Azure de origem. Para obter instruções, consulte a seção [Informações adicionais](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). Armazene essas credenciais na sua EC2 instância no local`~/azure-principal.json`. | Administrador de nuvem, Azure | 

### Instalar e configurar o Rclone
<a name="install-and-configure-rclone"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça download e instale o Rclone.  | Baixe e instale o programa de linha de comando Rclone. Para obter instruções de instalação, consulte [Documentação da instalação do Rclone](https://rclone.org/install/). | AWS geral, Administrador de nuvem | 
| Configure o Rclone. | Copie o arquivo `rclone.conf` de amostra a seguir. `AZStorageAccount`Substitua pelo nome da sua conta do Azure Storage e `us-east-1` pela região da AWS onde seu bucket do S3 está localizado. Salve esse arquivo `~/.config/rclone/rclone.conf` no local da sua EC2 instância.<pre>[AZStorageAccount]<br />type = azureblob<br />account = AZStorageAccount<br />service_principal_file = azure-principal.json<br /><br />[s3]<br />type = s3<br />provider = AWS<br />env_auth = true<br />region = us-east-1</pre> | AWS geral, Administrador de nuvem | 
| Verifique a configuração do Rclone. | Para confirmar se o Rclone está configurado e se as permissões estão funcionando corretamente, verifique se o Rclone pode analisar seu arquivo de configuração e se os objetos dentro do contêiner do Azure Blob e do bucket do S3 estão acessíveis. Veja a seguir exemplos de comandos de validação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.html) | AWS geral, Administrador de nuvem | 

### Migre dados usando o Rclone
<a name="migrate-data-using-rclone"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre dados de seus contêineres. | Execute o comando Rclone [copiar](https://rclone.org/commands/rclone_copy/) ou [sincronizar](https://rclone.org/commands/rclone_sync/).  **Exemplo: cópia**Esse comando copia dados do contêiner Azure Blob de origem para o bucket S3 de destino.<pre>rclone copy AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>**Exemplo: sincronização**Esse comando sincroniza dados entre o contêiner Azure Blob de origem e o bucket S3 de destino. ****<pre>rclone sync AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>Ao usar o comando **sync**, os dados que não estiverem presentes no contêiner de origem serão excluídos do bucket do S3 de destino. | AWS geral, Administrador de nuvem | 
| Sincronize seus contêineres.  | Depois que a cópia inicial estiver concluída, execute o comando Rclone **sync** para a migração contínua, de forma que somente os novos arquivos que estão faltando no bucket S3 de destino sejam copiados. | AWS geral, Administrador de nuvem | 
| Verifique se os dados foram migrados com sucesso.  | [Para verificar se os dados foram copiados com êxito para o bucket S3 de destino, execute os comandos Rclone [lsd](https://rclone.org/commands/rclone_lsd/) e ls.](https://rclone.org/commands/rclone_ls/) | AWS geral, Administrador de nuvem | 

## Recursos relacionados
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-resources"></a>
+ [Guia do usuário do Amazon S3 (documentação](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) da AWS)
+ [Funções do IAM para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) (documentação da AWS)
+ [Criação de um contêiner do Microsoft Azure Blob](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal) (documentação do Microsoft Azure)
+ [Comandos Rclone (documentação](https://rclone.org/commands/) do Rclone)

## Mais informações
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional"></a>

**Exemplo de política de função para EC2 instâncias**

Essa política dá à sua EC2 instância acesso de leitura e gravação a um bucket específico em sua conta. Se o bucket usa uma chave gerenciada pelo cliente para a criptografia no lado do servidor, a política pode precisar de acesso adicional ao AWS Key Management Service (AWS KMS).

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        }    
    ]
}
```

**Criando uma entidade principal de serviço do Azure AD somente para leitura**

Uma entidade principal de serviço do Azure é uma identidade de segurança usada por aplicativos, serviços e ferramentas de automação do cliente para acessar recursos específicos do Azure. Pense nisso como uma identidade de usuário (login e senha ou certificado) com uma função específica e permissões rigorosamente controladas para acessar seus recursos. Para criar uma entidade principal de serviço somente de leitura para seguir as permissões de privilégio mínimo e proteger os dados no Azure contra exclusões acidentais, siga estas etapas: 

1. Faça login no portal da sua conta na nuvem do Microsoft Azure e inicie o Cloud Shell PowerShell ou use a Interface de Linha de Comando (CLI) do Azure em sua estação de trabalho.

1. Crie uma entidade principal de serviço e configure-o com acesso [somente de leitura](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#storage-blob-data-reader) à sua conta de armazenamento de Blobs do Azure. Salve a saída JSON desse comando em um arquivo local chamado`azure-principal.json`. O arquivo será enviado para sua EC2 instância. Substitua as variáveis de espaço reservado que são mostradas entre colchetes (`{`e`}`) por sua ID de assinatura do Azure, nome do grupo de recursos e nome da conta de armazenamento.

   ```
   az ad sp create-for-rbac `
   --name AWS-Rclone-Reader `
   --role "Storage Blob Data Reader" `
   --scopes /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Storage/storageAccounts/{Storage Account Name}
   ```