Migrasi data dari Microsoft Azure Blob ke Amazon S3 dengan menggunakan Rclone - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Migrasi data dari Microsoft Azure Blob ke Amazon S3 dengan menggunakan Rclone

Suhas Basavaraj, Aidan Keane, dan Corey Lane, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara menggunakan Rclone untuk memigrasikan data dari penyimpanan objek Microsoft Azure Blob ke bucket Amazon Simple Storage Service (Amazon S3). Anda dapat menggunakan pola ini untuk melakukan migrasi satu kali atau sinkronisasi data yang sedang berlangsung. Rclone adalah program baris perintah yang ditulis dalam Go dan digunakan untuk memindahkan data di berbagai teknologi penyimpanan dari penyedia cloud.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Data disimpan dalam layanan kontainer Azure Blob

Arsitektur

Tumpukan teknologi sumber

  • Wadah penyimpanan Azure Blob

Tumpukan teknologi target

  • Bucket Amazon S3

  • Contoh Amazon Elastic Compute Cloud (Amazon EC2) Linux

Arsitektur

Migrasi data dari Microsoft Azure ke Amazon S3

Alat

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • Rclone adalah program baris perintah open-source yang terinspirasi oleh rsync. Ini digunakan untuk mengelola file di banyak platform penyimpanan cloud.

Praktik terbaik

Saat Anda memigrasikan data dari Azure ke Amazon S3, perhatikan pertimbangan ini untuk menghindari biaya yang tidak perlu atau kecepatan transfer yang lambat:

  • Buat infrastruktur AWS Anda di Wilayah geografis yang sama dengan akun penyimpanan Azure dan wadah Blob—misalnya, us-east-1 Wilayah AWS (Virginia N.) dan wilayah Azure. East US

  • Hindari menggunakan NAT Gateway jika memungkinkan, karena akan dikenakan biaya transfer data untuk bandwidth masuk dan keluar.

  • Gunakan titik akhir gateway VPC untuk Amazon S3 untuk meningkatkan kinerja.

  • Pertimbangkan untuk menggunakan EC2 instans berbasis prosesor AWS Graviton2 (ARM) untuk biaya yang lebih rendah dan kinerja yang lebih tinggi dibandingkan instans Intel x86. Rclone sangat dikompilasi silang dan menyediakan biner ARM yang telah dikompilasi sebelumnya.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Siapkan ember S3 tujuan.

Buat bucket S3 baru di Wilayah AWS yang sesuai atau pilih bucket yang sudah ada sebagai tujuan data yang ingin Anda migrasikan.

Administrator AWS

Buat peran instans IAM untuk Amazon EC2.

Buat peran AWS Identity and Access Management (IAM) baru untuk Amazon EC2. Peran ini memberikan akses penulisan EC2 instance Anda ke bucket S3 tujuan.

Administrator AWS

Lampirkan kebijakan ke peran instans IAM.

Gunakan konsol IAM atau AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) untuk membuat kebijakan inline untuk peran EC2 instance yang memungkinkan izin akses tulis ke bucket S3 tujuan. Untuk kebijakan contoh, lihat bagian Informasi tambahan.

Administrator AWS

Luncurkan sebuah EC2 instance.

Luncurkan EC2 instans Amazon Linux yang dikonfigurasi untuk menggunakan peran layanan IAM yang baru dibuat. Instans ini juga memerlukan akses ke titik akhir API publik Azure melalui internet. 

catatan

Pertimbangkan untuk menggunakan EC2 instans berbasis AWS Graviton untuk menurunkan biaya. Rclone menyediakan binari yang dikompilasi ARM.

Administrator AWS

Buat kepala layanan Azure AD.

Gunakan Azure CLI untuk membuat prinsip layanan Azure Active Directory (Azure AD) yang memiliki akses hanya-baca ke wadah penyimpanan Azure Blob sumber. Untuk petunjuk, lihat bagian Informasi tambahan. Simpan kredensyal ini pada EC2 instans Anda ke lokasi. ~/azure-principal.json

Administrator awan, Azure
TugasDeskripsiKeterampilan yang dibutuhkan

Unduh dan instal Rclone.

Unduh dan instal program baris perintah Rclone. Untuk petunjuk penginstalan, lihat dokumentasi instalasi Rclone.

AWS Umum, Administrator Cloud

Konfigurasikan Rclone.

Salin file rclone.conf contoh berikut. Ganti AZStorageAccount dengan nama akun Azure Storage Anda dan us-east-1 dengan Wilayah AWS tempat bucket S3 Anda berada. Simpan file ini ke lokasi ~/.config/rclone/rclone.conf pada EC2 instance Anda.

[AZStorageAccount] type = azureblob account = AZStorageAccount service_principal_file = azure-principal.json [s3] type = s3 provider = AWS env_auth = true region = us-east-1
AWS Umum, Administrator Cloud

Verifikasi konfigurasi Rclone.

Untuk mengonfirmasi bahwa Rclone dikonfigurasi dan izin berfungsi dengan baik, verifikasi bahwa Rclone dapat mengurai file konfigurasi Anda dan objek di dalam wadah Azure Blob dan bucket S3 dapat diakses. Lihat berikut ini misalnya perintah validasi.

  • Buat daftar remote yang dikonfigurasi dalam file konfigurasi. Ini akan memastikan bahwa file konfigurasi Anda sedang diurai dengan benar. Tinjau output untuk memastikan bahwa itu cocok dengan rclone.conf file Anda.

    rclone listremotes AZStorageAccount: s3:
  • Buat daftar wadah Azure Blob di akun yang dikonfigurasi. Ganti AZStorageAccount dengan nama akun penyimpanan yang Anda gunakan dalam rclone.conf file.

    rclone lsd AZStorageAccount: 2020-04-29 08:29:26 docs
  • Buat daftar file dalam wadah Azure Blob. Ganti dokumen dalam perintah ini dengan nama wadah Blob yang sebenarnya di akun penyimpanan Azure Anda.

    rclone ls AZStorageAccount:docs 824884 administrator-en.a4.pdf
  • Buat daftar bucket di akun AWS Anda.

    [root@ip-10-0-20-157 ~]# rclone lsd s3: 2022-03-07 01:44:40 amzn-s3-demo-bucket1 2022-03-07 01:45:16 amzn-s3-demo-bucket2 2022-03-07 02:12:07 amzn-s3-demo-bucket3
  • Buat daftar file di ember S3.

    [root@ip-10-0-20-157 ~]# rclone ls s3:amzn-s3-demo-bucket1 template0.yaml template1.yaml
AWS Umum, Administrator Cloud
TugasDeskripsiKeterampilan yang dibutuhkan

Migrasikan data dari kontainer Anda.

Jalankan perintah Rclone copy atau sync.  

Contoh: copy

Perintah ini menyalin data dari wadah Azure Blob sumber ke bucket S3 tujuan.

rclone copy AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1

Contoh: sinkronisasi

Perintah ini menyinkronkan data antara wadah Azure Blob sumber dan bucket S3 tujuan.

rclone sync AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1
penting

Saat Anda menggunakan perintah sinkronisasi, data yang tidak ada di wadah sumber akan dihapus dari bucket S3 tujuan.

AWS Umum, Administrator Cloud

Sinkronkan wadah Anda.

Setelah salinan awal selesai, jalankan perintah sinkronisasi Rclone untuk migrasi yang sedang berlangsung sehingga hanya file baru yang hilang dari bucket S3 tujuan yang akan disalin.

AWS Umum, Administrator Cloud

Verifikasi bahwa data telah berhasil dimigrasi.

Untuk memeriksa apakah data berhasil disalin ke bucket S3 tujuan, jalankan perintah Rclone lsd dan ls.

AWS Umum, Administrator Cloud

Sumber daya terkait

Informasi tambahan

Contoh kebijakan peran untuk EC2 instance

Kebijakan ini memberikan akses baca dan tulis EC2 instans Anda ke bucket tertentu di akun Anda. Jika bucket Anda menggunakan kunci terkelola pelanggan untuk enkripsi sisi server, kebijakan tersebut mungkin memerlukan akses tambahan ke 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:::*" } ] }

Membuat prinsipal layanan Azure AD hanya-baca

Prinsipal layanan Azure adalah identitas keamanan yang digunakan oleh aplikasi pelanggan, layanan, dan alat otomatisasi untuk mengakses sumber daya Azure tertentu. Anggap saja sebagai identitas pengguna (login dan kata sandi atau sertifikat) dengan peran tertentu dan izin yang dikontrol ketat untuk mengakses sumber daya Anda. Untuk membuat prinsipal layanan hanya-baca agar mengikuti izin hak istimewa paling sedikit dan melindungi data di Azure dari penghapusan yang tidak disengaja, ikuti langkah-langkah berikut:

  1. Masuk ke portal akun cloud Microsoft Azure Anda dan luncurkan Cloud Shell PowerShell atau gunakan Antarmuka Baris Perintah Azure (CLI) di workstation Anda.

  2. Buat prinsip layanan dan konfigurasikan dengan akses hanya-baca ke akun penyimpanan Azure Blob Anda. Simpan output JSON dari perintah ini ke file lokal bernamaazure-principal.json. File akan diunggah ke EC2 instance Anda. Ganti variabel placeholder yang ditampilkan dalam tanda kurung gigi ({dan}) dengan ID langganan Azure, nama grup sumber daya, dan nama akun penyimpanan Anda.

    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}