Memulai dengan Aurora DSQL - Amazon Aurora DSQL

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

Memulai dengan Aurora DSQL

Amazon Aurora DSQL adalah database relasional terdistribusi tanpa server yang dioptimalkan untuk beban kerja transaksional. Di bagian berikut, Anda akan belajar cara membuat kluster DSQL Aurora wilayah tunggal dan Multi-wilayah, menghubungkannya, dan membuat serta memuat skema sampel. Anda akan mengakses cluster dengan AWS Management Console dan berinteraksi dengan database Anda menggunakan psql utilitas. Pada akhirnya, Anda akan memiliki cluster Aurora DSQL yang berfungsi dan siap digunakan untuk beban kerja pengujian atau produksi.

Prasyarat

Sebelum Anda dapat mulai menggunakan Aurora DSQL, pastikan Anda memenuhi prasyarat berikut:

  • Identitas IAM Anda harus memiliki izin untuk masuk ke. AWS Management Console

  • Identitas IAM Anda harus memenuhi salah satu kriteria berikut:

    • Akses untuk melakukan tindakan apa pun pada sumber daya apa pun di Akun AWS

    • Izin IAM iam:CreateServiceLinkedRole dan kemampuan untuk mendapatkan akses ke tindakan kebijakan IAM dsql:*

  • Jika Anda menggunakan lingkungan mirip Unix, pastikan bahwa Python versi 3.8+ dan versi 14+ diinstal. AWS CLI psql Untuk memeriksa versi aplikasi Anda, jalankan perintah berikut.

    python3 --version psql --version

    Jika Anda menggunakan AWS CLI di lingkungan yang berbeda, pastikan bahwa Anda secara manual mengatur Python versi 3.8+ dan versi 14+. psql

  • Jika Anda berniat mengakses Aurora DSQL menggunakan, AWS CloudShell Python versi 3.8+ dan psql versi 14+ disediakan tanpa pengaturan tambahan. Untuk informasi lebih lanjut tentang AWS CloudShell, lihat Apa itu AWS CloudShell? .

  • Jika Anda berniat mengakses Aurora DSQL menggunakan GUI, gunakan atau. DBeaver JetBrains DataGrip Untuk informasi selengkapnya, lihat Mengakses Aurora DSQL dengan DBeaver dan Mengakses Aurora DSQL dengan JetBrains DataGrip.

Mengakses Aurora DSQL

Anda dapat mengakses Aurora DSQL melalui teknik berikut. Untuk mempelajari cara menggunakan CLI,, dan APIs SDKs, lihat. Mengakses Aurora DSQL

Mengakses Aurora DSQL melalui AWS Management Console

Anda dapat mengakses AWS Management Console untuk Aurora DSQL di. https://console.aws.amazon.com/dsql

Mengakses Aurora DSQL menggunakan klien SQL

Aurora DSQL menggunakan protokol PostgreSQL. Gunakan klien interaktif pilihan Anda dengan menyediakan token autentikasi IAM yang ditandatangani sebagai kata sandi saat menghubungkan ke klaster Anda. Token otentikasi adalah string karakter unik yang dihasilkan Aurora DSQL secara dinamis AWS menggunakan Signature Version 4.

Aurora DSQL menggunakan token hanya untuk otentikasi. Token tidak memengaruhi koneksi setelah dibuat. Jika Anda mencoba menyambung kembali menggunakan token kedaluwarsa, permintaan koneksi ditolak. Untuk informasi selengkapnya, lihat Menghasilkan token otentikasi di Amazon Aurora DSQL.

Mengakses Aurora DSQL dengan psql (terminal interaktif PostgreSQL)

psqlUtilitas adalah front-end berbasis terminal untuk PostgreSQL. Ini memungkinkan Anda untuk mengetik kueri secara interaktif, menerbitkannya ke PostgreSQL, dan melihat hasil kueri. Untuk meningkatkan waktu respons kueri, gunakan klien PostgreSQL versi 17.

Unduh installer sistem operasi Anda dari halaman Unduhan PostgreSQL. Untuk informasi lebih lanjut tentangpsql, lihat https://www.postgresql. org/docs/current/app-psql.htm.

Jika Anda sudah AWS CLI menginstal, gunakan contoh berikut untuk terhubung ke cluster Anda. Anda dapat menggunakan AWS CloudShell, yang dilengkapi dengan psql prainstal, atau Anda dapat menginstal psql langsung.

# Aurora DSQL requires a valid IAM token as the password when connecting. # Aurora DSQL provides tools for this and here we're using Python. export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --expires-in 3600 \ --hostname your_cluster_endpoint) # Aurora DSQL requires SSL and will reject your connection without it. export PGSSLMODE=require # Connect with psql, which automatically uses the values set in PGPASSWORD and PGSSLMODE. # Quiet mode suppresses unnecessary warnings and chatty responses but still outputs errors. psql --quiet \ --username admin \ --dbname postgres \ --host your_cluster_endpoint

Mengakses Aurora DSQL dengan DBeaver

DBeaver adalah alat basis data berbasis GUI open-source. Anda dapat menggunakannya untuk terhubung dan mengelola database Anda. Untuk mengunduh DBeaver, lihat halaman unduhan di situs web DBeaver Komunitas. Langkah-langkah berikut menjelaskan cara menghubungkan ke cluster Anda menggunakan DBeaver.

Untuk mengatur koneksi Aurora DSQL baru di DBeaver
  1. Pilih Koneksi Database Baru.

  2. Di jendela New Database Connection, pilih PostgreSQL.

  3. Di tab Pengaturan Koneksi/Utama, pilih Connect by: Host dan masukkan informasi berikut.

    1. Host — Gunakan endpoint cluster Anda.

      Database — Masukkan postgres

      Otentikasi - Pilih Database Native

      Nama Pengguna — Masukkan admin

      Kata Sandi — Hasilkan token otentikasi. Salin token yang dihasilkan dan gunakan sebagai kata sandi Anda.

  4. Abaikan peringatan apa pun dan tempel token otentikasi Anda ke bidang DBeaverKata Sandi.

    catatan

    Anda harus mengatur mode SSL di koneksi klien. Aurora DSQL mendukung. SSLMODE=require Aurora DSQL memberlakukan komunikasi SSL di sisi server dan menolak koneksi non-SSL.

  5. Anda harus terhubung ke cluster Anda dan dapat mulai menjalankan pernyataan SQL.

penting

Fitur administratif yang disediakan oleh DBeaver database PostgreSQL (seperti Session Manager dan Lock Manager) tidak berlaku untuk database, karena arsitekturnya yang unik. Meskipun dapat diakses, layar ini tidak memberikan informasi yang dapat dipercaya tentang kesehatan atau status database.

Otentikasi kredensi kedaluwarsa untuk DBeaver

Sesi yang ditetapkan tetap diautentikasi selama maksimal 1 jam atau sampai DBeaver terputus atau waktu habis. Untuk membuat koneksi baru, berikan token otentikasi yang valid di bidang Kata Sandi pengaturan koneksi. Mencoba membuka sesi baru (misalnya, untuk membuat daftar tabel baru, atau konsol SQL baru) memaksa upaya otentikasi baru. Jika token otentikasi yang dikonfigurasi dalam pengaturan Koneksi tidak lagi valid, sesi baru gagal, dan DBeaver membatalkan semua sesi yang dibuka sebelumnya. Ingatlah hal ini saat memilih durasi token otentikasi IAM Anda dengan opsi. expires-in

Mengakses Aurora DSQL dengan JetBrains DataGrip

JetBrains DataGrip adalah IDE lintas platform untuk bekerja dengan SQL dan database, termasuk PostgreSQL. DataGrip termasuk GUI yang kuat dengan editor SQL cerdas. Untuk mengunduh DataGrip, buka halaman unduhan di situs JetBrains web.

Untuk mengatur koneksi Aurora DSQL baru di JetBrains DataGrip
  1. Pilih Sumber Data Baru dan pilih PostgreSQL.

  2. Di Sources/General tab Data, masukkan informasi berikut:

    1. Host — Gunakan endpoint cluster Anda.

      Port - Aurora DSQL menggunakan PostgreSQL default: 5432

      Database - Aurora DSQL menggunakan PostgreSQL default dari postgres

      Otentikasi — PilihUser & Password .

      Nama Pengguna — Masukkanadmin.

      Kata sandiBuat token dan tempelkan ke bidang ini.

      URL - Jangan ubah bidang ini. Ini akan diisi secara otomatis berdasarkan bidang lain.

  3. Kata sandi — Berikan ini dengan membuat token otentikasi. Salin output yang dihasilkan dari generator token dan tempel ke bidang kata sandi.

    catatan

    Anda harus mengatur mode SSL di koneksi klien. Aurora DSQL mendukung. PGSSLMODE=require Aurora DSQL memberlakukan komunikasi SSL di sisi server dan akan menolak koneksi non-SSL.

  4. Anda harus terhubung ke cluster Anda dan dapat mulai menjalankan pernyataan SQL:

penting

Beberapa tampilan yang DataGrip disediakan oleh database PostgreSQL (seperti Sessions) tidak berlaku untuk database karena arsitekturnya yang unik. Meskipun dapat diakses, layar ini tidak memberikan informasi yang dapat dipercaya tentang sesi aktual yang terhubung ke database.

Kedaluwarsa kredensi otentikasi

Sesi yang ditetapkan tetap diautentikasi selama maksimal 1 jam atau sampai pemutusan eksplisit atau batas waktu sisi klien terjadi. Jika koneksi baru perlu dibuat, token Otentikasi baru harus dibuat dan disediakan di bidang Kata Sandi Properti Sumber Data. Mencoba membuka sesi baru (misalnya, untuk membuat daftar tabel baru, atau konsol SQL baru) memaksa upaya otentikasi baru. Jika token otentikasi yang dikonfigurasi dalam pengaturan Koneksi tidak lagi valid, sesi baru itu akan gagal dan semua sesi yang dibuka sebelumnya akan menjadi tidak valid.

Menggunakan protokol PostgreSQL dengan Aurora DSQL

PostgreSQL menggunakan protokol berbasis pesan untuk komunikasi antara klien dan server. Protokol ini didukung TCP/IP berulang-ulang melalui soket unix-domain. Tabel berikut menunjukkan bagaimana Aurora DSQL mendukung protokol PostgreSQL.

PostgreSQL Aurora DSQL Catatan
Peran (juga dikenal sebagai Pengguna atau Grup) Peran Database Aurora DSQL menciptakan peran untuk Anda bernama. admin Saat membuat peran basis data kustom, Anda harus menggunakan peran tersebut untuk mengaitkannya dengan admin peran IAM untuk mengautentikasi saat menghubungkan ke klaster Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi peran basis data kustom.
Host (juga dikenal sebagai hostname atau hostspec) Titik Akhir klaster Aurora DSQL Kluster wilayah tunggal menyediakan satu titik akhir terkelola dan secara otomatis mengarahkan lalu lintas jika tidak tersedia di dalam Wilayah.
Port N/A - gunakan default 5432 Ini adalah PostgreSQL default.
Database (dbname) menggunakan postgres Aurora DSQL membuat database ini untuk Anda saat Anda membuat cluster.
Modus SSL SSL selalu diaktifkan di sisi server Di Aurora DSQL, Aurora DSQL mendukung Mode SSL. require Koneksi tanpa SSL ditolak oleh Aurora DSQL.
Kata sandi Token Otentikasi Aurora DSQL membutuhkan token otentikasi sementara alih-alih kata sandi berumur panjang. Untuk mempelajari selengkapnya, lihat Menghasilkan token otentikasi di Amazon Aurora DSQL.

Langkah 1: Buat cluster Aurora DSQL Single-region

Unit dasar Aurora DSQL adalah cluster, yang merupakan tempat Anda menyimpan data Anda. Dalam tugas ini, Anda membuat cluster dalam satu Wilayah AWS.

Untuk membuat cluster Single-region di Aurora DSQL
  1. Masuk ke AWS Management Console dan buka konsol Aurora DSQL di. https://console.aws.amazon.com/dsql

  2. Pilih Buat cluster dan kemudian Single-Region.

  3. (Opsional) Dalam pengaturan Cluster, pilih salah satu opsi berikut:

    • Pilih Sesuaikan pengaturan enkripsi (lanjutan) untuk memilih atau membuat AWS KMS key.

    • Pilih Aktifkan perlindungan penghapusan untuk mencegah operasi penghapusan klaster Anda. Secara default, perlindungan penghapusan dipilih.

  4. (Opsional) Di Tag, pilih atau masukkan tag untuk cluster ini.

  5. Pilih Buat klaster.

Langkah 2: Hubungkan ke cluster Aurora DSQL Anda

Titik akhir cluster secara otomatis dihasilkan saat Anda membuat cluster Aurora DSQL berdasarkan ID cluster dan Region. Format penamaan adalahclusterid.dsql.region.on.aws. Klien menggunakan endpoint untuk membuat koneksi jaringan ke cluster Anda.

Otentikasi dikelola menggunakan IAM sehingga Anda tidak perlu menyimpan kredensi dalam database. Token otentikasi adalah string karakter unik yang dihasilkan secara dinamis. Token hanya digunakan untuk otentikasi dan tidak memengaruhi koneksi setelah dibuat. Sebelum mencoba terhubung, pastikan identitas IAM Anda memiliki dsql:DbConnectAdmin izin, seperti yang dijelaskan dalam. Prasyarat

catatan

Untuk mengoptimalkan kecepatan koneksi database, gunakan klien PostgreSQL versi 17 dan atur untuk mengarahkan:. PGSSLNEGOTIATION PGSSLNEGOTIATION=direct

Untuk terhubung ke klaster Anda dengan token otentikasi
  1. Di konsol Aurora DSQL, pilih cluster yang ingin Anda sambungkan.

  2. Pilih Hubungkan.

  3. Salin titik akhir dari Endpoint (Host).

  4. Pastikan Anda Connect as admin dipilih di bagian Authentication token (Password).

  5. Salin token otentikasi yang dihasilkan. Token ini berlaku selama 15 menit.

  6. Pada baris perintah sistem operasi, gunakan perintah berikut untuk memulai psql dan terhubung ke cluster Anda. Ganti your_cluster_endpoint dengan titik akhir cluster yang Anda salin sebelumnya.

    PGSSLMODE=require \ psql --dbname postgres \ --username admin \ --host your_cluster_endpoint

    Saat diminta kata sandi, masukkan token otentikasi yang Anda salin sebelumnya. Jika Anda mencoba menyambung kembali menggunakan token kedaluwarsa, permintaan koneksi ditolak. Untuk informasi selengkapnya, lihat Menghasilkan token otentikasi di Amazon Aurora DSQL.

  7. Tekan Enter. Anda akan melihat prompt PostgreSQL.

    postgres=>

    Jika Anda mendapatkan kesalahan akses ditolak, pastikan identitas IAM Anda memiliki dsql:DbConnectAdmin izin. Jika Anda memiliki izin dan terus mendapatkan kesalahan penolakan akses, lihat Memecahkan masalah IAM dan Bagaimana saya bisa memecahkan masalah kesalahan operasi yang ditolak atau tidak sah dengan kebijakan IAM? .

Langkah 3: Jalankan contoh perintah SQL di Aurora DSQL

Uji cluster Aurora DSQL Anda dengan menjalankan pernyataan SQL. Pernyataan contoh berikut memerlukan file data bernama department-insert-multirow.sql daninvoice.csv, yang dapat Anda unduh dari aurora-dsql-samplesaws-samples/ repositori. GitHub

Untuk menjalankan contoh perintah SQL di Aurora DSQL
  1. Buat skema bernamaexample.

    CREATE SCHEMA example;
  2. Buat tabel faktur yang menggunakan UUID yang dibuat secara otomatis sebagai kunci utama.

    CREATE TABLE example.invoice( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created timestamp, purchaser int, amount float);
  3. Buat indeks sekunder yang menggunakan tabel kosong.

    CREATE INDEX ASYNC invoice_created_idx on example.invoice(created);
  4. Buat tabel departemen.

    CREATE TABLE example.department(id INT PRIMARY KEY UNIQUE, name text, email text);
  5. Gunakan perintah psql \include untuk memuat file bernama department-insert-multirow.sql yang Anda unduh dari aurora-dsql-samplesaws-samples/ repositori aktif. GitHub Ganti my-path dengan jalur ke salinan lokal Anda.

    \include my-path/department-insert-multirow.sql
  6. Gunakan perintah psql \copy untuk memuat file bernama invoice.csv yang Anda unduh dari aurora-dsql-samplesaws-samples/ repositori aktif. GitHub Ganti my-path dengan jalur ke salinan lokal Anda.

    \copy example.invoice(created, purchaser, amount) from my-path/invoice.csv csv
  7. Tanyakan departemen dan urutkan berdasarkan total penjualan mereka.

    SELECT name, sum(amount) AS sum_amount FROM example.department LEFT JOIN example.invoice ON department.id=invoice.purchaser GROUP BY name HAVING sum(amount) > 0 ORDER BY sum_amount DESC;

    Output sampel berikut menunjukkan bahwa Departemen Tiga memiliki penjualan terbanyak.

    name | sum_amount --------------------------+-------------------- Example Department Three | 54061.67752854594 Example Department Seven | 53869.65965365204 Example Department Eight | 52199.73742066634 Example Department One | 52034.078869900826 Example Department Six | 50886.15556256385 Example Department Two | 50589.98422247931 Example Department Five | 49549.852635496005 Example Department Four | 49266.15578027619 (8 rows)

Langkah 4: Buat cluster Multi-region

Saat Anda membuat cluster Multi-region, Anda menentukan Wilayah berikut:

Wilayah Terpencil

Ini adalah Wilayah tempat Anda membuat cluster kedua. Anda membuat cluster kedua di Region ini dan mengintip ke cluster awal Anda. Aurora DSQL mereplikasi semua penulisan pada cluster awal ke cluster jarak jauh. Anda dapat membaca dan menulis di cluster mana pun.

Wilayah Saksi

Wilayah ini menerima semua data yang ditulis ke cluster Multi-region. Namun, Wilayah saksi tidak meng-host titik akhir klien dan tidak menyediakan akses data pengguna. Jendela terbatas dari log transaksi terenkripsi dipertahankan di Wilayah saksi. Log ini memfasilitasi pemulihan dan mendukung kuorum transaksional jika suatu Wilayah menjadi tidak tersedia.

Contoh berikut menunjukkan cara membuat cluster awal, membuat cluster kedua di Region yang berbeda, dan kemudian mengintip dua cluster untuk membuat cluster Multi-region. Ini juga menunjukkan replikasi penulisan lintas wilayah dan pembacaan yang konsisten dari kedua titik akhir Regional.

Untuk membuat cluster Multi-region
  1. Masuk ke AWS Management Console dan buka konsol Aurora DSQL di. https://console.aws.amazon.com/dsql

  2. Pada panel navigasi, silakan pilih Klaster.

  3. Pilih Buat cluster dan kemudian Multi-Region.

  4. (Opsional) Dalam pengaturan Cluster, pilih salah satu opsi berikut untuk klaster awal Anda:

    • Pilih Sesuaikan pengaturan enkripsi (lanjutan) untuk memilih atau membuat AWS KMS key.

    • Pilih Aktifkan perlindungan penghapusan untuk mencegah operasi penghapusan klaster Anda. Secara default, perlindungan penghapusan dipilih.

  5. Di pengaturan Multi-Region, pilih opsi berikut untuk klaster awal Anda:

    • Di Wilayah Saksi, pilih Wilayah. Saat ini, hanya Wilayah yang berbasis di AS yang didukung untuk menyaksikan Wilayah di klaster Multi-wilayah.

    • (Opsional) Di ARN cluster Remote Region, masukkan ARN untuk cluster yang ada di Wilayah lain. Jika tidak ada klaster yang berfungsi sebagai klaster kedua di klaster Multi-region Anda, selesaikan penyiapan setelah Anda membuat klaster awal.

  6. (Opsional) Pilih tag untuk klaster awal Anda.

  7. Pilih Buat klaster untuk membuat klaster awal Anda. Jika Anda tidak memasukkan ARN pada langkah sebelumnya, konsol akan menampilkan pemberitahuan tertunda pengaturan Cluster.

  8. Dalam pemberitahuan tertunda penyiapan klaster, pilih Selesaikan pengaturan klaster Multi-wilayah. Tindakan ini memulai pembuatan cluster kedua di Wilayah lain.

  9. Pilih salah satu opsi berikut untuk cluster kedua Anda:

    • Tambahkan ARN cluster Region jarak jauh — Pilih opsi ini jika ada cluster, dan Anda ingin itu menjadi cluster kedua di cluster Multi-region Anda.

    • Buat cluster di Wilayah lain - Pilih opsi ini untuk membuat cluster kedua. Di Remote Region, pilih Region untuk cluster kedua ini.

  10. Pilih Buat cluster di your-second-region, di your-second-region mana lokasi cluster kedua Anda. Konsol terbuka di Wilayah kedua Anda.

  11. (Opsional) Pilih pengaturan cluster untuk cluster kedua Anda. Misalnya, Anda dapat memilih AWS KMS key.

  12. Pilih Buat cluster untuk membuat cluster kedua Anda.

  13. Pilih Peer in initial-cluster-region, di mana initial-cluster-region adalah Region yang menghosting cluster pertama yang Anda buat.

  14. Saat diminta, pilih Konfirmasi. Langkah ini melengkapi pembuatan cluster Multi-region Anda.

Untuk terhubung ke cluster kedua
  1. Buka konsol Aurora DSQL dan pilih Region untuk cluster kedua Anda.

  2. Pilih Klaster.

  3. Pilih baris untuk cluster kedua di cluster Multi-region Anda.

  4. Dalam Tindakan, pilih Buka di CloudShell.

  5. Pilih Connect sebagai admin.

  6. Pilih Luncurkan CloudShell.

  7. Pilih Jalankan.

  8. Buat skema sampel dengan mengikuti langkah-langkah diLangkah 3: Jalankan contoh perintah SQL di Aurora DSQL.

    Contoh transaksi

    CREATE SCHEMA example; CREATE TABLE example.invoice(id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created timestamp, purchaser int, amount float); CREATE INDEX ASYNC invoice_created_idx on example.invoice(created); CREATE TABLE example.department(id INT PRIMARY KEY UNIQUE, name text, email text);
  9. Gunakan psql copy dan include perintah untuk memuat data sampel. Untuk informasi selengkapnya, lihat Langkah 3: Jalankan contoh perintah SQL di Aurora DSQL.

    \copy example.invoice(created, purchaser, amount) from samples/invoice.csv csv \include samples/department-insert-multirow.sql
Untuk melakukan kueri data di klaster kedua dari Region yang menghosting klaster awal Anda
  1. Di konsol Aurora DSQL, pilih Region untuk cluster awal Anda.

  2. Pilih Klaster.

  3. Pilih baris untuk cluster kedua di cluster Multi-region Anda.

  4. Dalam Tindakan, pilih Buka di CloudShell.

  5. Pilih Connect sebagai admin.

  6. Pilih Luncurkan CloudShell.

  7. Pilih Jalankan.

  8. Kueri data yang Anda masukkan ke dalam cluster kedua.

    SELECT name, sum(amount) AS sum_amount FROM example.department LEFT JOIN example.invoice ON department.id=invoice.purchaser GROUP BY name HAVING sum(amount) > 0 ORDER BY sum_amount DESC;