Menyiapkan replikasi Tabel S3 - Amazon Simple Storage Service

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

Menyiapkan replikasi Tabel S3

Anda dapat mengatur replikasi untuk secara otomatis membuat replika tabel dari tabel sumber hingga lima bucket tabel tujuan. Replikasi dapat dikonfigurasi pada tingkat bucket (berlaku untuk semua tabel di bucket) atau di tingkat tabel (untuk tabel tertentu). Topik ini menjelaskan cara mengonfigurasi replikasi menggunakan konsol Amazon S3 atau Antarmuka AWS CLI Baris AWS Perintah ().

Untuk informasi selengkapnya tentang menyiapkan replikasi, lihat topik berikut.

Prasyarat untuk menyiapkan replikasi

Sebelum Anda mengonfigurasi replikasi, pastikan Anda memiliki yang berikut:

Sumber daya yang dibutuhkan

  • Ember meja sumber - Ember meja berisi tabel yang ingin Anda tiru

  • Bucket meja tujuan - Satu atau beberapa ember meja tempat Anda ingin mereplikasi tabel Anda (hingga 5 ember meja tujuan)

  • Tabel sumber - Tabel yang ada di keranjang tabel sumber Anda untuk direplikasi

  • Peran IAM — Peran IAM yang memberikan izin Amazon S3 untuk mereplikasi tabel atas nama Anda

Izin yang diperlukan

Identitas IAM yang Anda gunakan untuk mengatur replikasi harus memiliki izin berikut:

Untuk replikasi tingkat ember:
  • s3tables:PutTableBucketReplicationdi ember meja sumber

  • s3tables:GetTableBucketReplicationdi ember meja sumber

  • iam:PassRoleuntuk peran IAM replikasi

Untuk replikasi tingkat tabel:
  • s3tables:PutTableReplicationdi atas meja sumber

  • s3tables:GetTableReplicationdi atas meja sumber

  • iam:PassRoleuntuk peran IAM replikasi

Untuk replikasi lintas akun:
  • Izin dari kebijakan bucket akun tujuan

Persyaratan tambahan untuk replikasi lintas akun

Jika bucket tabel sumber dan tujuan Anda berada di AWS akun yang berbeda, Anda juga memerlukan:

  • Kebijakan bucket pada bucket tabel tujuan yang memberikan izin akun sumber untuk mereplikasi tabel

  • ID akun tujuan dan keranjang tabel Nama Sumber Daya Amazon (ARN)

Persyaratan tambahan untuk tabel terenkripsi

Jika Anda ingin mengenkripsi tabel replika dengan: AWS KMS

  • Kunci KMS di Wilayah tujuan

  • Izin untuk menggunakan kunci KMS dalam peran replikasi IAM Anda

  • Kebijakan kunci KMS yang memungkinkan peran replikasi untuk mengenkripsi data

Memahami konfigurasi replikasi

Konfigurasi replikasi menentukan cara Amazon S3 mereplikasi tabel dari bucket tabel sumber Anda. Replikasi dapat dikonfigurasi pada dua tingkat:

Replikasi tingkat ember

Konfigurasi replikasi tingkat ember berlaku untuk semua tabel di bucket tabel sumber. Saat Anda mengonfigurasi replikasi tingkat ember, Amazon S3 secara otomatis mereplikasi tabel yang ada dan tabel baru yang dibuat di bucket.

Gunakan replikasi tingkat ember saat:

  • Anda ingin mereplikasi semua tabel dalam ember

  • Anda ingin perilaku replikasi yang konsisten di semua tabel

  • Anda ingin menyederhanakan manajemen dengan memiliki satu konfigurasi

Replikasi tingkat meja

Konfigurasi replikasi tingkat tabel berlaku untuk tabel tertentu. Konfigurasi tingkat tabel mengesampingkan konfigurasi tingkat ember untuk tabel tertentu.

Gunakan replikasi tingkat tabel saat:

  • Anda hanya ingin mereplikasi tabel tertentu

  • Anda memerlukan tujuan replikasi yang berbeda untuk tabel yang berbeda

  • Anda ingin mengganti konfigurasi tingkat ember untuk tabel tertentu

Elemen konfigurasi replikasi

Setiap konfigurasi replikasi berisi:

  • Peran IAM - Peran yang diasumsikan Amazon S3 untuk melakukan operasi replikasi

  • Aturan — Satu atau lebih aturan replikasi (terbatas pada 1 aturan saat peluncuran). Setiap aturan berisi:

    • Tujuan — Daftar keranjang meja tujuan ARNs (hingga 5 tujuan)

    • Status - Apakah aturan diaktifkan atau dinonaktifkan

  • Token versi — Token yang digunakan untuk mencegah konflik penulisan saat memperbarui konfigurasi

Memilih antara replikasi tingkat ember dan tingkat meja

Keutamaan konfigurasi

Ketika konfigurasi tingkat ember dan tingkat tabel ada:

  • Konfigurasi tingkat tabel diutamakan untuk tabel tertentu.

  • Tabel lain mengikuti konfigurasi tingkat ember.

Menyiapkan replikasi dengan menggunakan konsol Amazon S3

Prosedur ini menunjukkan cara mengonfigurasi replikasi menggunakan konsol Amazon S3.

Prosedur ini menunjukkan cara membuat konfigurasi replikasi bucket tabel menggunakan konsol Amazon S3. Konfigurasi replikasi bucket tabel berlaku untuk semua tabel di bucket tabel sumber.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi, pilih Bucket tabel.

  3. Dalam daftar bucket Table, pilih nama bucket tabel yang ingin Anda konfigurasikan replikasi.

  4. Pilih tab Manajemen.

  5. Di bagian konfigurasi replikasi bucket tabel, pilih Buat konfigurasi replikasi bucket tabel.

  6. Di bagian Tujuan, konfigurasikan tujuan replikasi Anda:

    1. Pada kolom Table bucket ARN, masukkan ARN dari bucket meja tujuan. Formatnya adalah: arn:aws:s3tables:region:account-id:bucket/table-bucket-name

      Atau, pilih Browse S3 untuk memilih keranjang meja dari akun Anda.

    2. (Opsional) Untuk menambahkan tujuan tambahan, pilih Tambahkan tujuan. Anda dapat menambahkan hingga 4 ember meja lagi untuk total 5 tujuan.

  7. Di bagian peran IAM, konfigurasikan peran replikasi:

    1. Untuk metode pemilihan peran IAM, pilih salah satu opsi berikut:

      • Buat peran IAM baru — Amazon S3 menciptakan peran baru dengan izin yang diperlukan untuk replikasi.

      • Pilih dari peran IAM yang ada — Pilih peran yang ada yang memiliki izin replikasi yang diperlukan.

      • Masukkan peran IAM ARN — Masukkan ARN secara manual dari peran IAM yang ada.

    2. Jika Anda memilih Pilih dari peran IAM yang ada, pilih peran dari daftar tarik-turun peran IAM.

    3. (Opsional) Pilih Lihat untuk meninjau izin peran yang dipilih di konsol IAM.

  8. Pilih Buat konfigurasi replikasi.

    Setelah Anda membuat konfigurasi replikasi, Amazon S3 memulai proses pengisian ulang awal. Anda dapat memantau status replikasi di bagian Status replikasi tabel, yang menampilkan informasi tentang setiap tujuan termasuk status replikasi, ARN tabel tujuan, dan metadata terakhir yang direplikasi.

Prosedur ini menunjukkan cara membuat konfigurasi replikasi tingkat tabel menggunakan konsol Amazon S3. Konfigurasi replikasi tabel berlaku untuk tabel tertentu dan mengganti konfigurasi replikasi tingkat ember untuk tabel tersebut.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi, pilih Bucket tabel.

  3. Dalam daftar bucket Table, pilih nama bucket tabel yang berisi tabel yang ingin Anda tiru.

  4. Pilih tab Tabel.

  5. Dalam daftar Tabel, pilih nama tabel yang ingin Anda tiru.

  6. Pilih tab Manajemen.

  7. Di bagian konfigurasi replikasi tabel, pilih Buat konfigurasi replikasi tabel.

  8. Di bagian Tujuan, konfigurasikan tujuan replikasi Anda:

    1. Pada kolom Table bucket ARN, masukkan ARN dari bucket meja tujuan. Formatnya adalah: arn:aws:s3tables:region:account-id:bucket/table-bucket-name

      Atau, pilih Browse S3 untuk memilih keranjang meja dari akun Anda.

    2. (Opsional) Untuk menambahkan tujuan tambahan, pilih Tambahkan tujuan. Anda dapat menambahkan hingga 4 ember meja lagi untuk total 5 tujuan.

  9. Di bagian peran IAM, konfigurasikan peran replikasi:

    1. Untuk metode pemilihan peran IAM, pilih salah satu opsi berikut:

      • Buat peran IAM baru — Amazon S3 menciptakan peran baru dengan izin yang diperlukan untuk replikasi.

      • Pilih dari peran IAM yang ada — Pilih peran yang ada yang memiliki izin replikasi yang diperlukan.

      • Masukkan peran IAM ARN — Masukkan ARN secara manual dari peran IAM yang ada.

    2. Jika Anda memilih Pilih dari peran IAM yang ada, pilih peran dari daftar peran IAM.

    3. (Opsional) Pilih Lihat untuk meninjau izin peran yang dipilih di konsol IAM.

  10. Pilih Buat konfigurasi replikasi.

Apa yang terjadi selanjutnya?

Setelah Anda membuat konfigurasi replikasi:

  • Amazon S3 memulai proses pengisian ulang awal, membuat tabel replika di setiap bucket tujuan

  • Status replikasi berubah menjadi Replikasi setelah pengisian ulang dimulai

  • Anda dapat memantau kemajuan replikasi pada tab Manajemen

  • Waktu replikasi awal tergantung pada ukuran tabel sumber Anda

Menyiapkan replikasi dengan menggunakan AWS CLI

Prosedur ini menunjukkan kepada Anda cara mengkonfigurasi replikasi menggunakan file. AWS CLI Ganti akun IDs, wilayah, dan nama bucket dengan nilai aktual Anda. Tambahkan semua bucket tujuan ke izin.

Langkah 1: Buat peran IAM untuk replikasi

Pertama, buat peran IAM yang dapat diasumsikan Amazon S3 untuk mereplikasi tabel Anda.

  1. Buat dokumen kebijakan kepercayaan yang memungkinkan Tabel S3 untuk mengambil peran. Simpan ini sebagaitrust-policy.json:

    { "Version": "2012-10-17" "Statement": [ { "Effect": "Allow", "Principal": { "Service": "replication.s3tables.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Buat peran IAM:

    aws iam create-role \ --role-name S3TablesReplicationRole \ --assume-role-policy-document file://trust-policy.json \ --description "Role for S3 Tables replication"
  3. Buat kebijakan izin yang memberikan izin replikasi. Simpan ini sebagaireplication-permissions.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableData" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source/table/*" }, { "Effect": "Allow", "Action": [ "s3tables:ListTables" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source" }, { "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination" }, { "Effect": "Allow", "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination/table/*" } ] }
  4. Lampirkan kebijakan izin ke peran:

    aws iam put-role-policy \ --role-name S3TablesReplicationRole \ --policy-name S3TablesReplicationPermissions \ --policy-document file://replication-permissions.json
  5. (Opsional) Jika menggunakan enkripsi KMS, tambahkan izin KMS ke kebijakan Anda:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" ] }

(Hanya lintas akun) Langkah 2: Konfigurasikan kebijakan bucket tujuan

Jika Anda mereplikasi ke AWS akun lain, akun tujuan harus memberikan izin ke akun sumber.

  1. Di akun tujuan, buat kebijakan bucket untuk bucket tabel tujuan. Simpan ini sebagaidestination-bucket-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination" } ] }
  2. Menerapkan kebijakan menggunakan API Tabel S3:

    aws s3tables put-table-bucket-policy \ --table-bucket-arn arn:aws:s3tables:us-west-2:444455556666:bucket/amzn-s3-demo-table-bucket-cross-account-destination \ --policy file://destination-bucket-policy.json \ --profile destination-account
  3. Ubah kunci KMS sumber Anda untuk memungkinkan replikasi dan pemeliharaan Tabel S3:

    { "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "allow replication to decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" } ] }
  4. Demikian pula, tambahkan izin dalam kebijakan kunci KMS tujuan Anda

    { "Version": "2012-10-17", "Id": "key-policy-3", "Statement": [ { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" }, { "Sid": "allow replication to encrypt/decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" } ]

Langkah 3: Buat konfigurasi replikasi

Anda dapat menggunakan AWS CLI untuk membuat konfigurasi replikasi di tingkat ember tabel atau tingkat tabel. Untuk informasi selengkapnya, lihat prosedur berikut ini.

Gunakan pendekatan ini untuk mereplikasi semua tabel dalam ember.

  1. Buat file konfigurasi replikasi. Simpan ini sebagaibucket-replication-config.json:

    contoh: Tujuan tunggal di akun yang sama
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" } ] } ] }
    contoh: Beberapa tujuan di seluruh wilayah
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" }, { "destinationTableBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu" }, { "destinationTableBucketARN": "arn:aws:s3tables:ap-south-1:111122223333:bucket/amzn-s3-demo-table-bucket-apac" } ] } ] }
    contoh: Replikasi lintas akun
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-east-1:444455556666:bucket/amzn-s3-demo-table-bucket-partner" } ] } ] }
  2. Terapkan konfigurasi replikasi tingkat ember:

    aws s3tables put-table-bucket-replication \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --configuration file://bucket-replication-config.json

    Keluaran yang diharapkan

    { "versionToken": "3HL4kqtJl40Nr8X8gdRQBpUMLUo", "status": "Success" }

Gunakan pendekatan ini untuk mereplikasi tabel tertentu atau untuk mengganti replikasi tingkat ember.

  1. Buat file konfigurasi replikasi. Simpan ini sebagaitable-replication-config.json:

    contoh: Replikasi tabel tunggal
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-analytics-bucket" } ] } ] }
    contoh: Tabel dengan beberapa tujuan
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" }, { "destinationTableBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu" } ] } ] }
  2. Terapkan konfigurasi replikasi tingkat tabel:

    aws s3tables put-table-replication \ --table-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table-bucket-sales-data \ --configuration file://table-replication-config.json

    Keluaran yang diharapkan

    { "versionToken": "xT2LZkFZ0UuTC2h8XqtGLx2Ak6M", "status": "Success" }