全部产品
Search
文档中心

ApsaraDB RDS:Mengakses database eksternal melalui Internet dari instans RDS for PostgreSQL

更新时间:Dec 04, 2025

Topik ini menjelaskan cara menggunakan ekstensi Foreign Data Wrapper (FDW) untuk PostgreSQL guna mengakses database eksternal melalui Internet dari instans ApsaraDB RDS for PostgreSQL.

Informasi latar belakang

Instans ApsaraDB RDS for PostgreSQL dapat mengakses berbagai jenis database eksternal—seperti MySQL, SQL Server, PostgreSQL, dan Redis—menggunakan fitur FDW. Karena instans RDS for PostgreSQL berada di dalam Virtual Private Cloud (VPC), Anda harus mengonfigurasi Internet NAT Gateway dan mengaitkan Elastic IP Address (EIP) agar instans tersebut dapat mengakses layanan database melalui Internet.

Topik ini menjelaskan cara mengaktifkan akses Internet untuk instans RDS for PostgreSQL dengan mengonfigurasi Internet NAT Gateway dan EIP. Anda dapat membuat entri Source Network Address Translation (SNAT) untuk mengizinkan instans RDS for PostgreSQL mengakses Internet. Pendekatan ini juga menjamin keamanan jaringan instans tersebut, karena jaringan eksternal tidak dapat mengakses instans melalui NAT Gateway.

Untuk informasi selengkapnya tentang NAT Gateway dan SNAT, lihat Menggunakan fitur SNAT pada Internet NAT Gateway untuk mengakses Internet.

Prasyarat

  • Database target tersedia dan dapat diakses melalui Internet, misalnya database MySQL, SQL Server, PostgreSQL, atau Redis yang memiliki alamat IP publik.

  • Instans RDS for PostgreSQL telah dibuat. Untuk informasi selengkapnya, lihat Membuat instans RDS for PostgreSQL dengan cepat.

    Penting

    Instans RDS for PostgreSQL memerlukan ekstensi tertentu untuk mengakses database target melalui Internet. Pastikan instans Anda mendukung ekstensi yang diperlukan. Untuk informasi selengkapnya mengenai ekstensi yang didukung oleh berbagai versi RDS for PostgreSQL, lihat Daftar ekstensi yang didukung oleh RDS for PostgreSQL.

    • MySQL: mysql_fdw

    • SQL Server: tds_fdw

    • PostgreSQL: postgres_fdw

    • Redis: redis_fdw

  • Akun telah dibuat baik untuk database target maupun instans RDS for PostgreSQL.

    • Untuk membuat akun pada database target, lihat dokumentasi resmi mesin database tersebut.

    • Untuk membuat akun pada instans RDS for PostgreSQL, lihat Membuat akun.

  • Database yang berisi data telah dibuat di database target.

Prosedur

Konfigurasikan Gateway NAT Internet

  1. Buat NAT Gateway.

    1. Masuk ke Konsol Gateway NAT.

    2. Di halaman Internet NAT Gateway, klik Create Internet NAT Gateway.

    3. (Opsional) Jika Anda menggunakan NAT Gateway untuk pertama kalinya, pada halaman Internet NAT Gateway, di bagian Service-linked Role Creation, klik Create Service-linked Role. Setelah role dibuat, Anda dapat membuat NAT Gateway.

    4. Pada halaman Create Internet NAT Gateway, atur parameter berikut dan klik Buy Now.

      Catatan

      Tabel berikut hanya mencantumkan parameter utama. Untuk informasi selengkapnya mengenai semua parameter, lihat Menggunakan fitur SNAT pada Internet NAT Gateway untuk mengakses Internet.

      Konfigurasi

      Deskripsi

      Region

      Pilih wilayah tempat Anda ingin membuat Internet NAT gateway. Wilayah tersebut harus sama dengan wilayah instans RDS for PostgreSQL.

      Network And Zone

      Pilih VPC dan vSwitch untuk instans Internet NAT gateway. Keduanya harus sama dengan VPC dan vSwitch instans RDS for PostgreSQL.

      Anda dapat membuka halaman Database Connection di Konsol RDS untuk melihat VPC instans RDS for PostgreSQL target.

      Network Type

      Pada topik ini, dipilih Internet NAT Gateway.

      EIP

      Pada topik ini, dipilih Configure Later.

    5. Pada halaman Confirm, konfirmasi konfigurasi Internet NAT Gateway dan klik Activate Now.

      Setelah instans dibuat, Anda dapat melihatnya di halaman Internet NAT Gateway.创建NAT网关

  2. Asosiasikan EIP dengan Gateway NAT Internet.

    1. Di Konsol NAT Gateway, temukan instans Internet NAT Gateway yang telah Anda buat dan klik ID instansnya untuk membuka halaman Basic Information.

    2. Pada tab Associated EIP, klik EIP.

    3. Pada kotak dialog Associate EIP, pilih Purchase and Associate EIP.绑定弹性公网IP

    4. Klik OK.

      Setelah EIP dikaitkan, EIP tersebut akan ditampilkan di bagian Associated EIP.已绑定的弹性公网IP

  3. Buat entri SNAT.

    1. Di Konsol NAT Gateway, temukan instans Internet NAT Gateway yang telah Anda buat dan klik ID instansnya untuk membuka halaman Basic Information.

    2. Pada tab SNAT, klik Create SNAT Entry.

    3. Di halaman Create SNAT Entry, konfigurasikan parameter yang diperlukan dan klik OK.

      Konfigurasi

      Deskripsi

      SNAT Entry

      Pilih granularitas untuk entri SNAT. Topik ini menggunakan contoh VSwitch Granularity. Ini berarti instans RDS for PostgreSQL dalam vSwitch tersebut menggunakan alamat IP publik yang dikonfigurasi untuk mengakses Internet.

      Select vSwitch

      Dari daftar drop-down, pilih vSwitch instans RDS for PostgreSQL.

      Select EIP

      Pilih alamat IP publik yang menyediakan akses Internet. Topik ini menggunakan contoh alamat IP tunggal. Dari daftar drop-down, pilih EIP yang telah dikaitkan.

      Setelah entri dibuat, Anda dapat melihatnya di SNAT Entry List.已配置的SNAT

Konfigurasi database target

Tambahkan EIP yang dikaitkan dengan Internet NAT Gateway ke daftar putih database target.

Konfigurasi instans RDS for PostgreSQL

  1. Hubungkan ke instans RDS for PostgreSQL. Untuk informasi selengkapnya, lihat Menghubungkan ke instans PostgreSQL.

  2. Buat ekstensi.

    Catatan

    Topik ini menggunakan contoh database MySQL yang dapat diakses melalui Internet. Pada contoh ini, ekstensi mysql_fdw dibuat.

    CREATE EXTENSION mysql_fdw;
  3. Buat definisi server untuk database target.

    CREATE SERVER <server_name>
    FOREIGN DATA WRAPPER mysql_fdw OPTIONS (
      host '<public_IP_of_the_target_database>',
      port '<port_of_the_target_database>'
    );

    Berikut adalah contoh perintah untuk layanan MySQL yang dapat diakses melalui Internet:

    CREATE SERVER mysql_server80
    FOREIGN DATA WRAPPER mysql_fdw OPTIONS (
      host 'XX.XX.XX.XX',
      port '3306'
    );
  4. Buat pemetaan pengguna. Ini memetakan definisi server MySQL ke pengguna di instans RDS for PostgreSQL sehingga pengguna tersebut dapat mengakses data di database MySQL target.

    CREATE USER MAPPING
    FOR <RDS_for_PostgreSQL_username> SERVER <created_server_name> OPTIONS (
      username '<username_for_the_target_database>',
      password '<password_for_the_target_database>'
    );

    Berikut adalah contoh perintah:

    CREATE USER MAPPING
    FOR pg_client SERVER mysql_server80  OPTIONS (
      username 'testuser',
      password 'U123456!'
    );
  5. Buat tabel asing.

    CREATE FOREIGN TABLE <foreign_table_name> (
      id int,
      name varchar(10)
    )
    SERVER <created_server_name> OPTIONS (
      dbname '<database_name_of_the_target_database>',
      table_name '<table_name_of_the_target_database>'
    );

    Berikut adalah contoh perintah:

    CREATE FOREIGN TABLE mysql_fdw_test (
      id int,
      name varchar(10)
    )
    SERVER mysql_server80 OPTIONS (
      dbname 'testdb',
      table_name 'test'
    );
  6. Uji koneksi.

    Setelah konfigurasi selesai, Anda dapat mengakses tabel di database eksternal dari instans RDS for PostgreSQL Anda.

    Sebagai contoh, jika Anda membuat tabel eksternal bernama mysql_fdw_test, Anda dapat langsung melakukan kueri terhadap tabel eksternal tersebut di instans RDS for PostgreSQL untuk mengambil data dari database target.

    SELECT * FROM mysql_fdw_test;