Halaman ini menunjukkan cara membuat dan memulai tugas transfer dari Amazon S3 ke Cloud Storage.
Konfigurasikan izin
Sebelum membuat transfer, Anda harus mengonfigurasi izin di bucket Amazon S3. Lihat Mengonfigurasi akses ke sumber: Amazon S3 untuk mengetahui detailnya.
Anda juga harus mengonfigurasi izin untuk entity Google Cloud berikut:
Akun pengguna yang digunakan untuk membuat transfer. Akun ini adalah akun yang login ke konsol Google Cloud , atau akun yang ditentukan saat melakukan autentikasi ke CLI `gcloud`. Akun pengguna dapat berupa akun pengguna biasa, atau akun layanan yang dikelola pengguna. | |
Akun layanan yang dikelola Google, yang juga dikenal sebagai agen
layanan, yang digunakan oleh Storage Transfer Service. Akun ini umumnya diidentifikasi berdasarkan
alamat emailnya, yang menggunakan format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
Lihat Izin transfer tanpa agen untuk mendapatkan petunjuk.
Opsi keluar
Storage Transfer Service menyediakan beberapa opsi untuk cara mentransfer data S3 Anda ke Cloud Storage.
Opsi keluar | Deskripsi |
---|---|
Tanpa agen default | Opsi ini menggunakan transfer terkelola tanpa agen dari S3. Anda dikenai biaya keluar oleh Amazon.
Ikuti petunjuk di halaman ini untuk menggunakan opsi ini. |
Distribusi CloudFront | Menggunakan distribusi Amazon CloudFront sebagai jalur keluar. Transfer data melalui CloudFront mungkin
mendapatkan manfaat dari biaya egress AWS yang lebih rendah dibandingkan dengan
transfer langsung dari S3. Lihat
harga CloudFront dan biaya keluar S3
untuk mengetahui detailnya.
Ikuti petunjuk dalam artikel Mentransfer dari S3 melalui CloudFront untuk menyiapkan distribusi dan membuat transfer. |
Jaringan pribadi terkelola | Transfer data Anda melalui jaringan yang dikelola Google. Anda tidak membayar biaya keluar S3; sebagai gantinya, Anda membayar tarif per GiB keGoogle Cloud. Lihat halaman Harga untuk mengetahui detailnya. Anda mungkin masih dikenai biaya operasi dari AWS (misalnya, LIST atau GET
panggilan); lihat harga mereka untuk mengetahui detailnya.
Semua transfer project melalui jaringan pribadi terkelola berbagi bandwidth yang sama. Saat penggunaan tinggi, transfer Anda mungkin melambat. Transfer dengan file besar lebih terpengaruh daripada transfer dengan file kecil. Ikuti petunjuk di halaman ini untuk menggunakan opsi ini. Tentukan opsi Managed private network di konsol Google Cloud atau kolom managedPrivateNetwork di REST API. gcloud CLI dan library klien tidak mendukung transfer jaringan pribadi terkelola. Lihat region yang didukung. |
Didorong oleh agen | Valid untuk semua penyimpanan yang kompatibel dengan S3, termasuk Amazon S3. Dengan menginstal software agen di mesin yang memiliki akses ke bucket S3 Anda, Anda dapat mengontrol jalur dan bandwidth jaringan. Opsi ini memerlukan agen dan kumpulan agen.
Ikuti petunjuk di bagian Mentransfer dari sumber yang kompatibel dengan S3 untuk menggunakan opsi ini. |
Region yang didukung
Storage Transfer Service mendukung wilayah Amazon S3 berikut:
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ap-southeast-2 ap-southeast-3 |
ap-southeast-4 ca-central-1 ca-west-1 eu-central-1 eu-central-2 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2
|
eu-west-3 il-central-1 me-central-1 me-south-1 sa-east-1 us-east-1 us-east-2 us-west-1 us-west-2
|
ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ca-central-1 ca-west-1 eu-central-1 eu-central-2 |
eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2 eu-west-3 us-east-1 us-east-2 us-west-1 us-west-2
|
Opsi transfer
Fitur Storage Transfer Service berikut tersedia untuk transfer dari S3 ke Cloud Storage
- Mentransfer file tertentu menggunakan manifes
- Anda dapat meneruskan daftar file agar Storage Transfer Service dapat bertindak. Lihat Mentransfer file atau objek tertentu menggunakan file manifes untuk mengetahui detailnya.
- Memfilter objek sumber menurut awalan atau menurut waktu terakhir diubah
-
Anda dapat memilih untuk menyertakan atau mengecualikan objek dari transfer berdasarkan nama file dan jalur, atau berdasarkan waktu terakhir diubah.
Filter awalan dijelaskan dalam Filter awalan.
Filter berbasis waktu mencakup:
- Waktu minimum yang berlalu, dan waktu maksimum yang berlalu, sejak modifikasi terakhir. Keduanya menerima nilai dalam detik untuk memfilter objek yang diubah atau tidak diubah dalam jangka waktu tertentu.
- Terakhir diubah sejak, dan terakhir diubah sebelum, yang keduanya menerima nilai dateTime.
Perhatikan bahwa filter berbasis waktu untuk transfer S3 mengandalkan definisi "waktu terakhir diubah" AWS, yaitu waktu saat objek mulai diupload. Karena objek tidak tersedia hingga upload selesai, Anda mungkin menemukan objek yang waktu terakhir diubahnya memenuhi kriteria filter Anda, tetapi masih diupload. Objek ini tidak akan disertakan dalam tugas transfer Anda. Untuk menghindari masalah, sebaiknya lakukan hal berikut:
- Daripada filter berbasis waktu, gunakan [transfer berbasis peristiwa](/storage-transfer/docs/event-driven-aws) untuk mentransfer objek saat tersedia.
- Untuk mencegah objek hilang dalam transfer berulang, periode lihat kembali "waktu modifikasi terakhir" harus lebih besar daripada jadwal berulang. Misalnya, untuk tugas yang berjalan setiap jam, jangka waktu lihat kembali selama dua jam memberikan buffer.
- Tentukan kelas penyimpanan
- Anda dapat menentukan
kelas penyimpanan Cloud Storage yang akan digunakan untuk data Anda di bucket
tujuan. Lihat opsi
StorageClass
untuk detail REST, atau gunakan flag--custom-storage-class
dengan Google Cloud CLI.Perhatikan bahwa setelan kelas penyimpanan apa pun akan diabaikan jika bucket tujuan mengaktifkan Autoclass. Jika Autoclass diaktifkan, objek yang ditransfer ke dalam bucket awalnya ditetapkan ke penyimpanan Standard.
- Penyimpanan metadata
-
Saat mentransfer file dari S3, Storage Transfer Service dapat secara opsional menyimpan atribut tertentu sebagai metadata kustom.
Lihat bagian Amazon S3 ke Cloud Storage di Mempertahankan metadata untuk mengetahui detail tentang metadata mana yang dapat dipertahankan, dan cara mengonfigurasi transfer Anda.
- Transfer berdasarkan peristiwa
- Storage Transfer Service dapat memproses Notifikasi Peristiwa Amazon S3 yang dikirim ke Amazon SQS untuk otomatis mentransfer data yang telah ditambahkan atau diperbarui di lokasi sumber. Lihat Transfer berbasis peristiwa untuk mengetahui informasinya.
- Logging dan pemantauan
- Transfer dari S3 dapat dilihat di Cloud Logging dan Cloud Monitoring. Lihat Cloud Logging untuk Storage Transfer Service dan Memantau tugas transfer untuk mengetahui detailnya. Anda juga dapat mengonfigurasi notifikasi Pub/Sub.
Buat transfer
Storage Transfer Service menyediakan beberapa antarmuka untuk membuat transfer.
Jangan sertakan informasi sensitif seperti informasi identitas pribadi (PII) atau data keamanan dalam nama tugas transfer Anda. Nama resource dapat disalurkan ke nama resource Google Cloud lain dan dapat diekspos ke sistem internal Google di luar project Anda.
Google Cloud console
Buka halaman Storage Transfer Service di konsol Google Cloud .
Klik Buat tugas transfer. Halaman Buat tugas transfer akan ditampilkan.
Di bagian Source type, pilih Amazon S3.
Sebagai Jenis tujuan, pilih Google Cloud Storage.
Pilih Mode penjadwalan Anda. Transfer batch dieksekusi secara satu kali atau terjadwal. Transfer yang didorong peristiwa terus-menerus memantau sumber dan mentransfer data saat ditambahkan atau diubah.
Untuk mengonfigurasi transfer yang didorong peristiwa, ikuti petunjuk di Transfer yang didorong peristiwa.
Klik Next step.
Di kolom Bucket or folder name, masukkan nama bucket sumber.
Nama bucket adalah nama seperti yang muncul di AWS Management Console.
Jika Anda menggunakan distribusi CloudFront untuk mentransfer dari S3, masukkan nama domain distribusi di kolom CloudFront domain. Contoh,
https://dy1h2n3l4ob56.cloudfront.net
. Lihat Mentransfer dari S3 melalui CloudFront untuk mengonfigurasi distribusi CloudFront.Untuk menggunakan Managed private network untuk transfer ini, centang kotak. Lihat Opsi egress untuk mengetahui detailnya.
Pilih metode autentikasi Amazon Web Services (AWS) Anda. Lihat Mengonfigurasi akses ke sumber: Amazon S3 untuk mengetahui detailnya.
Kunci akses: Masukkan kunci akses Anda di kolom Access key ID dan kunci rahasia yang terkait dengan kunci akses Anda di kolom Secret access key.
Peran IAM AWS untuk penggabungan identitas: Masukkan ARN Anda di kolom AWS IAM role ARN, dengan sintaksis berikut:
arn:aws:iam::ACCOUNT:role/ROLE-NAME-WITH-PATH
Dengan:
ACCOUNT
: ID akun AWS tanpa tanda hubung.ROLE-NAME-WITH-PATH
: Nama peran AWS, termasuk jalur.
Untuk mengetahui informasi selengkapnya tentang ARN, lihat ARN IAM.
Resource rahasia: Pilih opsi ini untuk menggunakan kredensial Amazon yang disimpan di Secret Manager. Pilih secret dari daftar, atau masukkan secara manual dalam format
projects/PROJECT_NUMBER/secrets/SECRET_NAME
.
Jika ini adalah transfer berbasis peristiwa, masukkan ARN antrean Amazon SQS, yang memiliki format berikut:
arn:aws:sqs:us-east-1:1234567890:event-queue
- Secara opsional, pilih untuk
memfilter objek menurut awalan
atau menurut tanggal terakhir diubah. Jika Anda menentukan folder sebagai lokasi sumber, filter awalan
bersifat relatif terhadap folder tersebut. Misalnya, jika sumber Anda adalah
my-test-bucket/path/
, filter sertakanfile
akan menyertakan semua file yang diawali denganmy-test-bucket/path/file
. Klik Next step.
Di kolom Bucket atau folder, masukkan bucket tujuan dan (opsional) nama folder, atau klik Jelajahi untuk memilih bucket dari daftar bucket yang ada di project saat ini. Untuk membuat bucket baru, klik
Buat bucket baru.
Klik Next step.
Pilih setelan untuk tugas transfer.
Di kolom Deskripsi, masukkan deskripsi transfer. Sebagai praktik terbaik, masukkan deskripsi yang bermakna dan unik agar Anda dapat membedakan tugas.
Di bagian Opsi metadata, pilih untuk menggunakan opsi default, atau klik Lihat dan pilih opsi untuk menentukan nilai bagi semua metadata yang didukung. Lihat Penyimpanan metadata untuk mengetahui detailnya.
Di bagian Kapan menimpa, pilih salah satu opsi berikut:
Jika berbeda: Menimpa file tujuan jika file sumber dengan nama yang sama memiliki nilai ETag atau checksum yang berbeda.
Selalu: Selalu menimpa file tujuan saat file sumber memiliki nama yang sama, meskipun keduanya identik.
Di bagian Kapan harus dihapus, pilih salah satu opsi berikut:
Jangan pernah: Jangan pernah menghapus file dari sumber atau tujuan.
Hapus file dari sumber setelah ditransfer: Hapus file dari sumber setelah ditransfer ke tujuan. Jika file sumber tidak ditransfer, misalnya karena sudah ada di tujuan, file sumber tidak akan dihapus.
Hapus file dari tujuan jika di sumbernya tidak ada: Jika file di bucket Cloud Storage tujuan tidak ada di sumber, maka hapus file dari bucket Cloud Storage.
Opsi ini memastikan bahwa bucket Cloud Storage tujuan sama persis dengan sumber Anda.
Di bagian Opsi notifikasi, pilih topik Pub/Sub dan peristiwa yang akan diberi notifikasi. Lihat notifikasi Pub/Sub untuk detail selengkapnya.
Klik Next step.
Pilih opsi penjadwalan Anda:
Dari menu drop-down Jalankan sekali, pilih salah satu opsi berikut:
Jalankan sekali: Menjalankan satu transfer, dimulai pada waktu yang Anda pilih.
Jalankan setiap hari: Menjalankan transfer setiap hari, dimulai pada waktu yang Anda pilih.
Anda dapat memasukkan Tanggal akhir opsional, atau membiarkan Tanggal akhir kosong agar pengalihan berjalan terus-menerus.
Jalankan setiap minggu: Menjalankan transfer setiap minggu, dimulai pada waktu yang Anda pilih.
Jalankan dengan frekuensi khusus: Menjalankan transfer dengan frekuensi yang Anda pilih. Anda dapat memilih untuk mengulangi transfer pada interval reguler Jam, Hari, atau Minggu.
Anda dapat memasukkan Tanggal akhir opsional, atau membiarkan Tanggal akhir kosong agar pengalihan berjalan terus-menerus.
Dari menu drop-down Mulai sekarang, pilih salah satu opsi berikut:
Mulai sekarang: Memulai transfer setelah Anda mengklik Buat.
Mulai pada: Memulai transfer pada tanggal dan waktu yang Anda pilih. Klik Kalender untuk menampilkan kalender guna memilih tanggal mulai.
Untuk membuat tugas transfer, klik Buat.
gcloud CLI
Untuk membuat tugas transfer baru, gunakan perintah gcloud transfer jobs create
. Membuat tugas baru akan memulai transfer yang ditentukan, kecuali jika jadwal atau --do-not-run
ditentukan.
gcloud CLI tidak mendukung transfer melalui CloudFront atau Managed private network.
gcloud transfer jobs create \
s3://S3_BUCKET_NAME gs://STORAGE_BUCKET_NAME \
--source-creds-file="relative_path/to/creds.json"
Dengan:
S3_BUCKET_NAME adalah sumber data untuk transfer ini. Anda dapat menyertakan jalur secara opsional:
s3://S3_BUCKET_NAME/S3_FOLDER_PATH
STORAGE_BUCKET_NAME adalah bucket Cloud Storage yang akan ditransfer ke dalamnya. Untuk mentransfer ke direktori tertentu, tentukan
gs://STORAGE_BUCKET_NAME/STORAGE_FOLDER_PATH/
, termasuk garis miring penutup.--source-creds-file
menentukan jalur relatif ke file lokal di komputer Anda yang menyertakan kredensial AWS untuk sumber transfer. Konten harus dalam format JSON berikut:{ "accessKeyId": string, "secretAccessKey": string }
Opsi tambahan mencakup:
--do-not-run
mencegah Storage Transfer Service menjalankan tugas setelah perintah dikirimkan. Untuk menjalankan tugas, perbarui tugas tersebut untuk menambahkan jadwal, atau gunakanjobs run
untuk memulainya secara manual.--manifest-file
menentukan jalur ke file CSV di Cloud Storage yang berisi daftar file yang akan ditransfer dari sumber Anda. Untuk pemformatan file manifes, lihat Mentransfer file atau objek tertentu menggunakan manifes.Informasi tugas: Anda dapat menentukan
--name
dan--description
.Jadwal: Tentukan
--schedule-starts
,--schedule-repeats-every
, dan--schedule-repeats-until
, atau--do-not-run
.Kondisi objek: Gunakan kondisi untuk menentukan objek mana yang akan ditransfer. Hal ini mencakup
--include-prefixes
dan--exclude-prefixes
, serta kondisi berbasis waktu di--include-modified-[before | after]-[absolute | relative]
. Jika Anda menentukan folder dengan sumber, filter awalan bersifat relatif terhadap folder tersebut. Lihat Memfilter objek sumber menurut awalan untuk mengetahui informasi selengkapnya.Opsi transfer: Tentukan apakah akan mengganti file tujuan (
--overwrite-when=different
ataualways
) dan apakah akan menghapus file tertentu selama atau setelah transfer (--delete-from=destination-if-unique
atausource-after-transfer
); tentukan nilai metadata yang akan dipertahankan (--preserve-metadata
); dan secara opsional tetapkan class penyimpanan pada objek yang ditransfer (--custom-storage-class
).Notifikasi: Konfigurasi notifikasi Pub/Sub untuk transfer dengan
--notification-pubsub-topic
,--notification-event-types
, dan--notification-payload-format
.Cloud Logging: Aktifkan Cloud Logging dengan
--log-actions
dan--log-action-states
. Lihat Cloud Logging untuk Storage Transfer Service untuk mengetahui detailnya.
Untuk melihat semua opsi, jalankan gcloud transfer jobs create --help
atau lihat
dokumentasi referensi gcloud
.
REST
Contoh berikut menunjukkan cara menggunakan Storage Transfer Service melalui REST API.
Saat mengonfigurasi atau mengedit tugas transfer menggunakan Storage Transfer Service API, waktu harus dalam UTC. Untuk mengetahui informasi selengkapnya tentang cara menentukan jadwal tugas transfer, lihat Jadwalkan.
Saat membuat tugas transfer, jangan sertakan awalan s3://
untuk
bucketName
dalam nama sumber bucket Amazon S3.
Transfer tanpa agen
Contoh berikut membuat tugas transfer menggunakan konfigurasi standar tanpa agen. Lihat referensi transferJobs.create untuk mengetahui detail selengkapnya.
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Lihat Mengonfigurasi akses ke sumber: Amazon S3 untuk opsi autentikasi lainnya.
Distribusi CloudFront
Jika Anda mentransfer dari S3 melalui distribusi CloudFront, tentukan nama domain distribusi sebagai nilai kolom transferSpec.awsS3DataSource.cloudfrontDomain
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Jaringan pribadi terkelola
Untuk mentransfer dari S3 menggunakan jaringan pribadi yang dikelola Google, tentukan kolom
transferSpec.awsS3DataSource.managedPrivateNetwork
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "managedPrivateNetwork": TRUE, "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Library klien
Contoh berikut menunjukkan cara menggunakan Storage Transfer Service secara terprogram dengan Go, Java, Node.js, dan Python.
Saat Anda mengonfigurasi atau mengedit tugas transfer secara terprogram, waktu harus dalam UTC. Untuk mengetahui informasi selengkapnya tentang cara menentukan jadwal tugas transfer, lihat Jadwalkan.
Untuk mengetahui informasi selengkapnya tentang library klien Storage Transfer Service, lihat Mulai menggunakan library klien Storage Transfer Service.
Transfer dari Amazon S3 ke Cloud Storage
Dalam contoh ini, Anda akan mempelajari cara memindahkan file dari Amazon S3 ke bucket Cloud Storage.
Saat membuat tugas transfer, jangan sertakan awalan s3://
untuk
bucketName
dalam nama sumber bucket Amazon S3.
Library klien Storage Transfer Service tidak mendukung transfer melalui CloudFront atau Managed private network.
Go
Java
Mencari contoh yang lebih lama? Lihat Panduan Migrasi Storage Transfer Service.
Node.js
Python
Mencari contoh yang lebih lama? Lihat Panduan Migrasi Storage Transfer Service.