Esegui la migrazione dei dati da Microsoft Azure Blob ad Amazon S3 utilizzando Rclone - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui la migrazione dei dati da Microsoft Azure Blob ad Amazon S3 utilizzando Rclone

Creato da Suhas Basavaraj (AWS), Aidan Keane () e Corey Lane () AWS AWS

Ambiente: PoC o pilota

Fonte: contenitore di archiviazione Microsoft Azure

Obiettivo: bucket Amazon S3

Tipo R: Replatform

Carico di lavoro: Microsoft

Tecnologie: migrazione; archiviazione e backup

AWSservizi: Amazon S3

Riepilogo

Questo modello descrive come usare Rclone per migrare i dati dallo storage di oggetti Microsoft Azure Blob a un bucket Amazon Simple Storage Service (Amazon S3). È possibile utilizzare questo modello per eseguire una migrazione una tantum o una sincronizzazione continua dei dati. Rclone è un programma a riga di comando scritto in Go e viene utilizzato per spostare i dati tra varie tecnologie di archiviazione dei provider di cloud.

Prerequisiti e limitazioni

Prerequisiti

  • AWSUn account attivo

  • Dati archiviati nel servizio contenitore Azure Blob

Architettura

Stack tecnologico di origine

  • Contenitore di archiviazione Azure Blob

Stack tecnologico Target

  • Bucket Amazon S3

  • Istanza Amazon Elastic Compute Cloud (AmazonEC2) Linux

Architettura

Migrazione dei dati da Microsoft Azure ad Amazon S3

Strumenti

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • Rclone è un programma a riga di comando open source ispirato a rsync. Viene utilizzato per gestire i file su molte piattaforme di archiviazione cloud.

Best practice

Quando esegui la migrazione dei dati da Azure ad Amazon S3, tieni presente queste considerazioni per evitare costi inutili o velocità di trasferimento lente:

  • Crea la tua AWS infrastruttura nella stessa area geografica dell'account di archiviazione di Azure e del contenitore Blob, ad esempio Regione (Virginia settentrionale) e Regione Azure. AWS us-east-1 East US

  • Se possibile, evita di usare NAT Gateway, perché fa maturare tariffe per il trasferimento dei dati sia per la larghezza di banda in ingresso che in uscita.

  • Utilizza un endpoint VPC gateway per Amazon S3 per aumentare le prestazioni.

  • Prendi in considerazione l'utilizzo di un'EC2istanza basata su processore AWS Graviton2 (ARM) per ridurre i costi e aumentare le prestazioni rispetto alle istanze Intel x86. Rclone è fortemente compilato in modo incrociato e fornisce un binario precompilato. ARM

Epiche

AttivitàDescrizioneCompetenze richieste

Prepara un bucket S3 di destinazione.

Crea un nuovo bucket S3 nella AWS regione appropriata o scegli un bucket esistente come destinazione per i dati che desideri migrare.

AWSamministratore

Crea un ruolo di IAM istanza per AmazonEC2.

Crea un nuovo ruolo AWS Identity and Access Management (IAM) per Amazon EC2. Questo ruolo fornisce all'EC2istanza l'accesso in scrittura al bucket S3 di destinazione.

AWSamministratore

Allega una policy al ruolo dell'IAMistanza.

Utilizza la IAM console o l'interfaccia a riga di AWS comando (AWSCLI) per creare una policy in linea per il ruolo dell'EC2istanza che consenta le autorizzazioni di accesso in scrittura al bucket S3 di destinazione. Per un esempio di policy, consulta la sezione Informazioni aggiuntive.

AWSamministratore

Avviare un'istanza EC2.

Avvia un'EC2istanza Amazon Linux configurata per utilizzare il ruolo di IAM servizio appena creato. Questa istanza dovrà inoltre accedere agli API endpoint pubblici di Azure tramite Internet. 

Nota: valuta la possibilità di utilizzare istanze AWSbasate su Graviton EC2 per ridurre i costi. Rclone fornisce file binari compilati. ARM

AWSamministratore

Crea un responsabile del servizio Azure AD.

Usa Azure CLI per creare un service principal di Azure Active Directory (Azure AD) con accesso in sola lettura al contenitore di archiviazione Azure Blob di origine. Per istruzioni, vedere la sezione Informazioni aggiuntive. Archivia queste credenziali sulla tua EC2 istanza nella posizione~/azure-principal.json.

Amministratore cloud, Azure
AttivitàDescrizioneCompetenze richieste

Scarica e installa Rclone.

Scarica e installa il programma da riga di comando Rclone. Per le istruzioni di installazione, consulta la documentazione di installazione di Rclone.

GeneraleAWS, amministratore del cloud

Configura Rclone.

Copia il seguente file di rclone.conf esempio. AZStorageAccountSostituiscilo con il nome del tuo account di archiviazione di Azure e us-east-1 con la AWS regione in cui si trova il bucket S3. Salva questo file nella posizione dell'istanza~/.config/rclone/rclone.conf. EC2

[AZStorageAccount] type = azureblob account = AZStorageAccount service_principal_file = azure-principal.json [s3] type = s3 provider = AWS env_auth = true region = us-east-1
GeneraleAWS, amministratore del cloud

Verifica la configurazione di Rclone.

Per confermare che Rclone sia configurato e che le autorizzazioni funzionino correttamente, verifica che Rclone sia in grado di analizzare il file di configurazione e che gli oggetti all'interno del contenitore Azure Blob e del bucket S3 siano accessibili. Vedi quanto segue, ad esempio, i comandi di convalida.

  • Elenca i telecomandi configurati nel file di configurazione. Ciò garantirà che il file di configurazione venga analizzato correttamente. Controlla l'output per assicurarti che corrisponda al tuo rclone.conf file.

    rclone listremotes AZStorageAccount: s3:
  • Elenca i contenitori Azure Blob nell'account configurato. Sostituiscili AZStorageAccount con il nome dell'account di archiviazione che hai usato nel rclone.conf file.

    rclone lsd AZStorageAccount: 2020-04-29 08:29:26 docs
  • Elenca i file nel contenitore Azure Blob. Sostituisci i documenti in questo comando con un nome effettivo del contenitore Blob nel tuo account di archiviazione di Azure.

    rclone ls AZStorageAccount:docs 824884 administrator-en.a4.pdf
  • Elenca i bucket presenti nel tuo account. AWS

    [root@ip-10-0-20-157 ~]# rclone lsd s3: 2022-03-07 01:44:40 examplebucket-01 2022-03-07 01:45:16 examplebucket-02 2022-03-07 02:12:07 examplebucket-03
  • Elenca i file nel bucket S3.

    [root@ip-10-0-20-157 ~]# rclone ls s3:examplebucket-01 template0.yaml template1.yaml
GeneraleAWS, amministratore del cloud
AttivitàDescrizioneCompetenze richieste

Migra i dati dai tuoi contenitori.

Esegui il comando Rclone copy or sync.  

Esempio: copia

Questo comando copia i dati dal contenitore Azure Blob di origine al bucket S3 di destinazione.

rclone copy AZStorageAccount:blob-container s3:examplebucket-01

Esempio: sync

Questo comando sincronizza i dati tra il contenitore Azure Blob di origine e il bucket S3 di destinazione.

rclone sync AZStorageAccount:blob-container s3:examplebucket-01

Importante: quando usi il comando sync, i dati che non sono presenti nel contenitore di origine verranno eliminati dal bucket S3 di destinazione.

GeneraleAWS, amministratore del cloud

Sincronizza i tuoi contenitori.

Una volta completata la copia iniziale, esegui il comando Rclone sync per la migrazione in corso in modo che vengano copiati solo i nuovi file mancanti dal bucket S3 di destinazione.

Generale, amministratore del cloud AWS

Verifica che i dati siano stati migrati correttamente.

Per verificare che i dati siano stati copiati correttamente nel bucket S3 di destinazione, esegui i comandi Rclone lsd e ls.

Generale, amministratore del cloud AWS

Risorse correlate

Informazioni aggiuntive

Esempio di politica di ruolo per le istanze EC2

Questa politica offre all'EC2istanza l'accesso in lettura e scrittura a un bucket specifico del tuo account. Se il bucket utilizza una chiave gestita dal cliente per la crittografia lato server, la policy potrebbe richiedere un accesso aggiuntivo al 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:::BUCKET_NAME/*", "arn:aws:s3:::BUCKET_NAME" ] }, { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "arn:aws:s3:::*" } ] }

Creazione di un principale di servizio Azure AD di sola lettura

Un service principal di Azure è un'identità di sicurezza usata dalle applicazioni, dai servizi e dagli strumenti di automazione dei clienti per accedere a risorse di Azure specifiche. Pensala come un'identità utente (login e password o certificato) con un ruolo specifico e autorizzazioni strettamente controllate per accedere alle tue risorse. Per creare un servizio principale di sola lettura che utilizzi le autorizzazioni con privilegi minimi e protegga i dati in Azure da eliminazioni accidentali, segui questi passaggi:

  1. Accedi al portale del tuo account cloud Microsoft Azure e avvia Cloud Shell PowerShell o usa l'interfaccia a riga di comando di Azure (CLI) sulla tua workstation.

  2. Crea un service principal e configuralo con accesso in sola lettura al tuo account di archiviazione Azure Blob. Salva l'JSONoutput di questo comando in un file locale chiamato. azure-principal.json Il file verrà caricato sulla tua EC2 istanza. Sostituisci le variabili segnaposto mostrate tra parentesi quadre ({e}) con l'ID di sottoscrizione di Azure, il nome del gruppo di risorse e il nome dell'account di archiviazione.

    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}