Tutorial: Membuat tabel global multi-akun - Amazon DynamoDB

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

Tutorial: Membuat tabel global multi-akun

Bagian ini memberikan step-by-step petunjuk untuk membuat tabel global DynamoDB yang menjangkau beberapa akun. AWS

Ikuti langkah-langkah ini untuk membuat tabel global multi-akun menggunakan. Konsol Manajemen AWS Contoh berikut membuat tabel global dengan tabel replika di Amerika Serikat.

  1. Masuk ke Konsol Manajemen AWS dan buka konsol DynamoDB https://console.aws.amazon.com/dynamodb/di untuk akun pertama (katakanlah). 111122223333

  2. Untuk contoh ini, pilih US East (Ohio) dari pemilih Region di bilah navigasi.

  3. Di panel navigasi di sisi kiri konsol, pilih Tabel.

  4. Pilih Buat Tabel.

  5. Pada halaman Buat tabel:

    1. Untuk Nama tabel, masukkan MusicTable.

    2. Untuk kunci Partisi, masukkanArtist.

    3. Untuk tombol Sortir, masukkanSongTitle.

    4. Simpan pengaturan default lainnya dan pilih Buat tabel.

  6. Tambahkan kebijakan sumber daya berikut ke tabel

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": ["444455556666","111122223333"], "aws:SourceArn": [ "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable", "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable" ] } } }, { "Sid": "AllowTrustedAccountsToJoinThisGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:AssociateTableReplica" ], "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable", "Principal": {"AWS": ["444455556666"]} } ] }
  7. Tabel baru ini berfungsi sebagai tabel replika pertama dalam tabel global baru. Ini adalah protojenis untuk tabel replika lain yang Anda tambahkan nantinya.

  8. Tunggu meja menjadi Aktif. Untuk tabel yang baru dibuat, dari tab tabel Global, navigasikan ke Pengaturan Replikasi dan klik Aktifkan.

  9. Keluar dari akun ini (111122223333di sini).

  10. Masuk ke Konsol Manajemen AWS dan buka konsol DynamoDB https://console.aws.amazon.com/dynamodb/di untuk akun kedua (katakanlah). 444455556666

  11. Untuk contoh ini, pilih US East (Virginia N.) dari pemilih Region di bilah navigasi.

  12. Konsol memastikan bahwa tabel dengan nama yang sama tidak ada di Wilayah yang dipilih. Jika ada tabel dengan nama yang sama, Anda harus menghapus tabel yang ada sebelum dapat membuat tabel replika baru di Wilayah tersebut.

  13. Di drop-down dekat Create Table, pilih Create from other account

  14. Pada tabel Buat dari halaman akun lain:

    1. Tambahkan arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable sebagai tabel arn untuk tabel sumber.

    2. Dalam Tabel Replika ARNs, tambahkan ARN dari tabel sumber lagi. arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable Jika ada beberapa replika yang sudah ada sebagai bagian dari Tabel Global Multi Akun, Anda harus menambahkan setiap replika yang ada ke ReplicaTable ARN.

    3. Simpan pengaturan default lainnya dan pilih Kirim.

  15. Tab tabel Global untuk tabel Musik (dan untuk tabel replika lainnya) menunjukkan bahwa tabel telah direplikasi di beberapa Wilayah.

  16. Untuk menguji replikasi:

    1. Anda dapat menggunakan salah satu wilayah di mana replika ada untuk tabel ini

    2. Pilih Jelajahi item tabel.

    3. Pilih Buat item.

    4. Masuk item_1 untuk Artis dan Song Value 1 untuk SongTitle.

    5. Pilih Buat item.

    6. Verifikasi replikasi dengan beralih ke wilayah lain:

    7. Verifikasi bahwa tabel Musik berisi item yang Anda buat.

Contoh berikut menunjukkan cara membuat tabel global multi-akun menggunakan. AWS CLI Contoh-contoh ini menunjukkan alur kerja lengkap untuk menyiapkan replikasi lintas akun.

CLI

Gunakan AWS CLI perintah berikut untuk membuat tabel global multi-akun dengan replikasi lintas akun.

# STEP 1: Setting resource policy for the table in account 111122223333 cat > /tmp/source-resource-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": ["444455556666","111122223333"], "aws:SourceArn": [ "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable", "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable" ] } } }, { "Sid": "AllowTrustedAccountsToJoinThisGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:AssociateTableReplica" ], "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable", "Principal": {"AWS": ["444455556666"]} } ] } EOF # Step 2: Create a new table (MusicTable) in US East (Ohio), # with DynamoDB Streams enabled (NEW_AND_OLD_IMAGES), # and Settings Replication ENABLED on the account 111122223333 aws dynamodb create-table \ --table-name MusicTable \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode PAY_PER_REQUEST \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --global-table-settings-replication-mode ENABLED \ --resource-policy file:///tmp/source-resource-policy.json \ --region us-east-2 # Step 3: Creating replica table in account 444455556666 # Resource policy for account 444455556666 cat > /tmp/dest-resource-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": ["444455556666","111122223333"], "aws:SourceArn": [ "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable", "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable" ] } } } ] } EOF # Execute the replica table creation aws dynamodb create-table \ --table-name MusicTable \ --global-table-source-arn "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable" \ --resource-policy file:///tmp/dest-resource-policy.json \ --global-table-settings-replication-mode ENABLED \ --region us-east-1 # Step 4: View the list of replicas created using describe-table aws dynamodb describe-table \ --table-name MusicTable \ --region us-east-2 \ --query 'Table.{TableName:TableName,TableStatus:TableStatus,MultiRegionConsistency:MultiRegionConsistency,Replicas:Replicas[*].{Region:RegionName,Status:ReplicaStatus}}' # Step 5: To verify that replication is working, add a new item to the Music table in US East (Ohio) aws dynamodb put-item \ --table-name MusicTable \ --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \ --region us-east-2 # Step 6: Wait for a few seconds, and then check to see whether the item has been # successfully replicated to US East (N. Virginia) and Europe (Ireland) aws dynamodb get-item \ --table-name MusicTable \ --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \ --region us-east-1 aws dynamodb get-item \ --table-name MusicTable \ --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \ --region us-east-2 # Step 7: Delete the replica table in US East (N. Virginia) Region aws dynamodb delete-table \ --table-name MusicTable \ --region us-east-1 # Clean up: Delete the primary table aws dynamodb delete-table \ --table-name MusicTable \ --region us-east-2