Mengekspor data snapshot DB ke Amazon S3 untuk Amazon RDS - Layanan Basis Data Relasional Amazon

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

Mengekspor data snapshot DB ke Amazon S3 untuk Amazon RDS

Anda dapat mengekspor data snapshot DB ke bucket Amazon S3. Proses ekspor berjalan di latar belakang dan tidak memengaruhi kinerja database aktif Anda.

Saat Anda mengekspor snapshot DB, Amazon RDS mengekstrak data dari snapshot dan menyimpannya di bucket Amazon S3. Data disimpan dalam format Apache Parquet yang dikompresi dan konsisten.

Anda dapat mengekspor semua jenis snapshot DB—termasuk snapshot manual, snapshot sistem otomatis, dan snapshot yang dibuat oleh layanan. AWS Backup Secara default, semua data dalam snapshot akan diekspor. Namun, Anda dapat memilih untuk mengekspor set basis data, skema, atau tabel tertentu.

Setelah data diekspor, Anda dapat menganalisis data yang diekspor secara langsung melalui alat seperti Amazon Athena atau Amazon Redshift Spectrum. Untuk informasi lebih lanjut tentang menggunakan Athena untuk membaca data Parket, lihat Parket di Panduan Pengguna SerDe Amazon Athena. Untuk informasi selengkapnya tentang penggunaan Redshift Spectrum untuk membaca data Parket, lihat COPYdari format data kolumnar di Panduan Pengembang Database Amazon Redshift.

Untuk informasi selengkapnya tentang mengekspor snapshot DB ke Amazon S3, lihat topik berikut.

Ikhtisar pengeksporan data snapshot

Anda menggunakan proses berikut untuk mengekspor data snapshot DB ke bucket Amazon S3. Untuk detail selengkapnya, lihat bagian berikut.

  1. Identifikasi snapshot yang akan diekspor.

    Gunakan snapshot otomatis atau manual yang ada, atau buat snapshot manual dari instans DB atau cluster DB multi-AZ.

  2. Siapkan akses ke bucket Amazon S3.

    Bucket adalah kontainer untuk objek atau file Amazon S3. Untuk memberikan informasi agar dapat mengakses bucket, lakukan langkah-langkah berikut:

    1. Identifikasi bucket S3 tempat snapshot akan diekspor. Bucket S3 harus berada di AWS Wilayah yang sama dengan snapshot. Untuk informasi selengkapnya, lihat Mengidentifikasi bucket Amazon S3 untuk ekspor.

    2. Buat peran AWS Identity and Access Management (IAM) yang memberikan akses tugas ekspor snapshot ke bucket S3. Untuk informasi selengkapnya, lihat Menyediakan akses ke bucket Amazon S3 menggunakan peran IAM.

  3. Buat enkripsi simetris AWS KMS key untuk enkripsi sisi server. KMSKuncinya digunakan oleh tugas ekspor snapshot untuk mengatur enkripsi AWS KMS sisi server saat menulis data ekspor ke S3.

    Kebijakan KMS utama harus menyertakan izin kms:CreateGrant dan kms:DescribeKey izin. Untuk informasi selengkapnya tentang menggunakan KMS kunci di AmazonRDS, lihatAWS KMS key pengelolaan.

    Jika Anda memiliki pernyataan penolakan dalam kebijakan KMS utama Anda, pastikan untuk secara eksplisit mengecualikan prinsip AWS layanan. export.rds.amazonaws.com

    Anda dapat menggunakan KMS kunci dalam AWS akun Anda, atau Anda dapat menggunakan KMS kunci lintas akun. Untuk informasi selengkapnya, lihat Menggunakan akun silang AWS KMS key untuk mengenkripsi ekspor Amazon S3.

  4. Ekspor snapshot ke Amazon S3 menggunakan konsol atau start-export-task CLI perintah. Untuk informasi selengkapnya, lihat Mengekspor data snapshot DB ke bucket Amazon S3.

  5. Untuk mengakses data Anda yang diekspor di bucket Amazon S3 lihat Mengunggah, mengunduh, dan mengelola objek dalam Panduan Pengguna Amazon Simple Storage Service.

Menyiapkan akses ke bucket Amazon S3

Untuk mengekspor data snapshot DB ke file Amazon S3 Anda terlebih dahulu memberikan izin snapshot untuk mengakses bucket Amazon S3. Anda kemudian membuat IAM peran untuk memungkinkan RDS layanan Amazon menulis ke bucket Amazon S3.

Mengidentifikasi bucket Amazon S3 untuk ekspor

Identifikasi bucket Amazon S3 untuk mengekspor snapshot DB. Gunakan bucket S3 yang ada atau buat bucket S3 baru.

catatan

Bucket S3 yang akan diekspor harus berada di AWS Wilayah yang sama dengan snapshot.

Untuk informasi selengkapnya tentang cara bekerja dengan bucket Amazon S3, lihat informasi berikut dalam Panduan Pengguna Amazon Simple Storage Service:

Menyediakan akses ke bucket Amazon S3 menggunakan peran IAM

Sebelum Anda mengekspor data snapshot DB ke Amazon S3, beri tugas ekspor snapshot izin akses tulis ke bucket Amazon S3.

Untuk memberikan izin ini, buat IAM kebijakan yang menyediakan akses ke bucket, lalu buat IAM peran dan lampirkan kebijakan ke peran tersebut. Anda kemudian menetapkan IAM peran ke tugas ekspor snapshot Anda.

penting

Jika berencana menggunakan AWS Management Console untuk mengekspor snapshot, Anda dapat memilih untuk membuat IAM kebijakan dan peran secara otomatis saat mengekspor snapshot. Untuk petunjuk, silakan lihat Mengekspor data snapshot DB ke bucket Amazon S3.

Untuk memberi tugas snapshot DB akses ke Amazon S3
  1. Buat IAM kebijakan. Kebijakan ini memberi bucket dan objek izin yang memungkinkan tugas ekspor snapshot Anda mengakses Amazon S3.

    Dalam kebijakan, sertakan tindakan berikut yang diperlukan untuk mengizinkan transfer file dari Amazon RDS ke bucket S3:

    • s3:PutObject*

    • s3:GetObject*

    • s3:ListBucket

    • s3:DeleteObject*

    • s3:GetBucketLocation

    Dalam kebijakan tersebut, sertakan sumber daya berikut untuk mengidentifikasi bucket S3 dan objek dalam bucket. Daftar sumber daya berikut menunjukkan format Amazon Resource Name (ARN) untuk mengakses Amazon S3.

    • arn:aws:s3:::amzn-s3-demo-bucket

    • arn:aws:s3:::amzn-s3-demo-bucket/*

    Untuk informasi selengkapnya tentang membuat IAM kebijakan untuk AmazonRDS, lihatMembuat dan menggunakan kebijakan IAM untuk akses basis data IAM. Lihat juga Tutorial: Buat dan lampirkan kebijakan terkelola pelanggan pertama Anda di Panduan IAM Pengguna.

    AWS CLI Perintah berikut membuat IAM kebijakan bernama ExportPolicy dengan opsi ini. Ini memberikan akses ke ember bernama amzn-s3-demo-bucket.

    catatan

    Setelah Anda membuat kebijakan, perhatikan kebijakan tersebut. ARN Anda memerlukan langkah selanjutnya saat Anda melampirkan kebijakan ke suatu IAM peran. ARN

    aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExportPolicy", "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'
  2. Buat IAM peran, sehingga Amazon RDS dapat mengambil IAM peran ini atas nama Anda untuk mengakses bucket Amazon S3 Anda. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin kepada IAM pengguna di Panduan IAM Pengguna.

    Contoh berikut menunjukkan menggunakan AWS CLI perintah untuk membuat peran bernamards-s3-export-role.

    aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
  3. Lampirkan IAM kebijakan yang Anda buat ke IAM peran yang Anda buat.

    AWS CLI Perintah berikut melampirkan kebijakan yang dibuat sebelumnya ke peran bernamards-s3-export-role. Ganti your-policy-arn dengan kebijakan ARN yang Anda catat di langkah sebelumnya.

    aws iam attach-role-policy --policy-arn your-policy-arn --role-name rds-s3-export-role

Menggunakan bucket Amazon S3 lintas akun

Anda dapat menggunakan bucket Amazon S3 di seluruh akun. AWS Untuk menggunakan bucket lintas akun, tambahkan kebijakan bucket untuk mengizinkan akses ke IAM peran yang Anda gunakan untuk ekspor S3. Untuk informasi selengkapnya, lihat Contoh 2: Pemilik bucket yang memberikan izin bucket lintas akun.

Lampirkan kebijakan bucket pada bucket Anda, seperti yang ditunjukkan dalam contoh berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/Admin" }, "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] } ] }

Menggunakan akun silang AWS KMS key untuk mengenkripsi ekspor Amazon S3

Anda dapat menggunakan akun silang AWS KMS key untuk mengenkripsi ekspor Amazon S3. Pertama, Anda menambahkan kebijakan kunci ke akun lokal, lalu Anda menambahkan IAM kebijakan di akun eksternal. Untuk informasi selengkapnya, lihat Mengizinkan pengguna di akun lain menggunakan KMS kunci.

Untuk menggunakan kunci lintas akun KMS
  1. Tambahkan kebijakan kunci ke akun lokal.

    Contoh berikut memberi ExampleRole dan ExampleUser di akun eksternal 444455556666 izin di akun lokal 123456789012.

    { "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "*" }
  2. Tambahkan IAM kebijakan ke akun eksternal.

    Contoh IAM kebijakan berikut memungkinkan prinsipal untuk menggunakan KMS kunci dalam akun 123456789012 untuk operasi kriptografi. Untuk memberikan izin ini ke ExampleRole dan ExampleUser di akun 444455556666, lampirkan kebijakan di akun tersebut.

    { "Sid": "Allow use of KMS key in account 123456789012", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

Mengekspor data snapshot DB ke bucket Amazon S3

Anda dapat memiliki hingga lima tugas ekspor snapshot DB bersamaan yang sedang berlangsung per. Akun AWS

catatan

Mengekspor RDS snapshot dapat memakan waktu cukup lama tergantung pada jenis dan ukuran database Anda. Tugas ekspor akan terlebih dahulu memulihkan dan menskalakan seluruh basis data sebelum mengekstrak data ke Amazon S3.​ Dalam fase ini, progres tugas tersebut akan ditampilkan sebagai Memulai. Saat tugas beralih menjadi mengekspor data ke S3, progres akan ditampilkan sebagai Sedang berlangsung.

Waktu yang diperlukan untuk menyelesaikan ekspor tergantung pada data yang disimpan di basis data. Misalnya, tabel yang berisi kolom indeks atau kunci primer numerik yang terdistribusi dengan baik akan diekspor paling cepat. Tabel yang tidak berisi kolom yang sesuai untuk partisi dan tabel yang hanya berisi satu indeks pada kolom berbasis string memerlukan waktu lebih lama. Waktu ekspor yang lebih lama ini terjadi karena ekspor menggunakan proses alur tunggal yang lebih lambat.

Anda dapat mengekspor snapshot DB ke Amazon S3 menggunakan AWS Management Console, file, atau AWS CLI file. RDS API Untuk mengekspor snapshot DB ke bucket Amazon S3 lintas akun, gunakan AWS CLI atau file. RDS API

Jika Anda menggunakan fungsi Lambda untuk mengekspor snapshot, tambahkan tindakan kms:DescribeKey ke kebijakan fungsi Lambda. Untuk informasi selengkapnya, lihat izin AWS Lambda.

Opsi konsol Ekspor ke Amazon S3 hanya muncul untuk snapshot yang dapat diekspor ke Amazon S3. Snapshot mungkin tidak tersedia untuk diekspor karena alasan berikut:

  • Mesin DB tidak didukung untuk ekspor S3.

  • Versi mesin DB tidak didukung untuk ekspor S3.

  • Ekspor S3 tidak didukung di AWS Wilayah tempat snapshot dibuat.

Untuk mengekspor snapshot DB
  1. Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/.

  2. Di panel navigasi, pilih Snapshot.

  3. Dari tabnya, pilih jenis snapshot yang ingin Anda ekspor.

  4. Dalam daftar snapshot, pilih snapshot yang ingin Anda ekspor.

  5. Untuk Tindakan, pilih Ekspor ke Amazon S3.

    Jendela Ekspor ke Amazon S3 akan muncul.

  6. Untuk Pengidentifikasi ekspor, masukkan nama untuk mengidentifikasi tugas ekspor. Nilai ini juga akan digunakan untuk nama file yang dibuat di bucket S3.

  7. Pilih data yang akan diekspor:

    • Pilih Semua untuk mengekspor semua data dalam snapshot.

    • Pilih Sebagian untuk mengekspor bagian tertentu dari snapshot. Untuk mengidentifikasi bagian snapshot yang akan diekspor, masukkan satu atau beberapa basis data, skema, atau tabel untuk Pengidentifikasi, dipisahkan dengan spasi.

      Gunakan format berikut:

      database[.schema][.table] database2[.schema2][.table2] ... databasen[.scheman][.tablen]

      Contohnya:

      mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
  8. Untuk Bucket S3, pilih bucket yang akan dijadikan tujuan ekspor.

    Untuk menetapkan data yang diekspor ke jalur folder dalam bucket S3, masukkan jalur opsional untuk Prefiks S3.

  9. Untuk IAMperan, pilih peran yang memberi Anda akses tulis ke bucket S3 pilihan Anda, atau buat peran baru.

    • Jika Anda membuat peran dengan mengikuti langkah-langkah di Menyediakan akses ke bucket Amazon S3 menggunakan peran IAM, pilih peran tersebut.

    • Jika Anda tidak membuat peran yang memberi Anda akses tulis ke bucket S3 yang Anda pilih, pilih Buat peran baru untuk membuat peran secara otomatis. Selanjutnya, masukkan nama untuk peran dalam nama IAM peran.

  10. Untuk AWS KMS key, masukkan kunci ARN untuk digunakan untuk mengenkripsi data yang diekspor.

  11. Pilih Ekspor ke Amazon S3.

Untuk mengekspor snapshot DB ke Amazon S3 menggunakan AWS CLI, gunakan perintah dengan start-export-taskopsi yang diperlukan berikut:

  • --export-task-identifier

  • --source-arn

  • --s3-bucket-name

  • --iam-role-arn

  • --kms-key-id

Dalam contoh berikut, tugas ekspor snapshot diberi nama my-snapshot-export, yang mengekspor snapshot ke bucket S3 bernama amzn-s3-demo-bucket.

Untuk Linux, macOS, atau Unix:

aws rds start-export-task \ --export-task-identifier my-snapshot-export \ --source-arn arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name \ --s3-bucket-name amzn-s3-demo-bucket \ --iam-role-arn iam-role \ --kms-key-id my-key

Untuk Windows:

aws rds start-export-task ^ --export-task-identifier my-snapshot-export ^ --source-arn arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name ^ --s3-bucket-name amzn-s3-demo-bucket ^ --iam-role-arn iam-role ^ --kms-key-id my-key

Berikut adalah contoh output.

{ "Status": "STARTING", "IamRoleArn": "iam-role", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "my-export-bucket", "PercentProgress": 0, "KmsKeyId": "my-key", "ExportTaskIdentifier": "my-snapshot-export", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name" }

Untuk menyediakan jalur folder di bucket S3 untuk ekspor snapshot, sertakan --s3-prefix opsi dalam perintah. start-export-task

Untuk mengekspor snapshot DB ke Amazon S3 menggunakan RDS API Amazon, gunakan operasi dengan StartExportTaskparameter yang diperlukan berikut:

  • ExportTaskIdentifier

  • SourceArn

  • S3BucketName

  • IamRoleArn

  • KmsKeyId

Wilayah dan ketersediaan versi

Ketersediaan dan dukungan fitur bervariasi di seluruh versi spesifik dari setiap mesin basis data dan di seluruh Wilayah AWS. Untuk mengetahui informasi selengkapnya tentang versi dan ketersediaan Wilayah pengeksporan snapshot ke S3, lihat Daerah yang Didukung dan engine DB untuk mengekspor snapshot ke S3 di Amazon RDS.

Batasan

Mengekspor data snapshot DB ke Amazon S3 memiliki batasan sebagai berikut:

  • Anda tidak dapat menjalankan beberapa tugas ekspor untuk snapshot DB yang sama secara bersamaan. Ini berlaku untuk ekspor penuh dan sebagian.

  • Mengekspor snapshot dari database yang menggunakan penyimpanan magnetik tidak didukung.

  • Ekspor ke S3 tidak mendukung awalan S3 yang berisi titik dua (:).

  • Karakter berikut di jalur file S3 akan diubah menjadi garis bawah (_) selama ekspor berlangsung:

    \ ` " (space)
  • Jika basis data, skema, atau tabel memiliki karakter dalam namanya selain yang berikut ini, maka ekspor parsial tidak didukung. Namun, Anda dapat mengekspor seluruh snapshot DB.

    • Huruf latin (A-Z)

    • Digit (0–9)

    • Simbol dolar ($)

    • Garis bawah (_)

  • Spasi ( ) dan karakter-karakter tertentu tidak didukung dalam nama kolom tabel basis data. Tabel yang nama kolomnya berisi karakter berikut akan dilewati selama ekspor berlangsung:

    , ; { } ( ) \n \t = (space)
  • Tabel yang namanya berisi garis miring (/) akan dilewati selama ekspor berlangsung.

  • RDSuntuk Postgre SQL sementara dan tabel yang tidak tercatat dilewati selama ekspor.

  • Jika data berisi objek besar, seperti BLOB atauCLOB, yang mendekati atau lebih besar dari 500 MB, maka ekspor gagal.

  • Jika suatu tabel berisi baris besar yang berukuran mendekati atau lebih dari 2 GB, maka tabel tersebut akan dilewati selama ekspor berlangsung.

  • Untuk ekspor sebagian, ExportOnly daftar memiliki ukuran maksimum 200 KB.

  • Sebaiknya Anda menggunakan nama unik untuk setiap tugas ekspor. Jika tidak menggunakan nama tugas yang unik, Anda mungkin menerima pesan kesalahan berikut:

    ExportTaskAlreadyExistsFault: Terjadi kesalahan (ExportTaskAlreadyExists) saat memanggil StartExportTask operasi: Tugas ekspor dengan ID xxxxx sudah ada.

  • Anda dapat menghapus snapshot saat sedang mengekspor datanya ke S3, tetapi Anda masih dikenai biaya penyimpanan untuk snapshot tersebut hingga tugas ekspor selesai.

  • Anda tidak dapat memulihkan data snapshot yang diekspor dari S3 ke instans DB baru atau mengimpor data snapshot dari S3 ke instans DB yang ada.

  • Anda dapat memiliki hingga lima tugas ekspor snapshot DB bersamaan yang sedang berlangsung per. Akun AWS

  • Untuk mengekspor snapshot DB ke bucket Amazon S3 lintas akun, Anda harus menggunakan AWS CLI atau. RDS API