Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Access an external database from RDS for PostgreSQL over the internet

Última atualização: Oct 09, 2026

Este tópico descreve como uma instância do RDS for PostgreSQL pode usar a extensão foreign data wrapper (FDW) para acessar um banco de dados externo pela internet.

Contexto

As instâncias do RDS for PostgreSQL são executadas em uma Virtual Private Cloud (VPC) e exigem um Internet NAT Gateway com um endereço IP elástico (EIP) associado para acessar serviços de banco de dados pela internet.

Essa configuração permite que sua instância do RDS for PostgreSQL acesse a internet e garante a segurança da rede. Com o SNAT, a instância pode acessar a internet, mas permanece inacessível a partir da internet por meio do NAT gateway.

Para obter mais informações sobre o Internet NAT Gateway e o SNAT, consulte Use the SNAT feature of an Internet NAT Gateway to access the internet.

Pré-requisitos

  • Um banco de dados de destino, como MySQL, SQL Server, PostgreSQL ou Redis, que seja acessível pela internet por meio de um endereço IP público.

  • Você tem uma instância do RDS for PostgreSQL. Para obter instruções, consulte Quickly create an RDS for PostgreSQL instance.

    Importante

    Para acessar um banco de dados de destino exposto à internet a partir de uma instância do RDS for PostgreSQL, é necessário usar uma extensão específica, conforme a lista a seguir. Verifique se a sua instância suporta a extensão necessária. Para saber quais extensões cada versão suporta, consulte Extensions supported by RDS for PostgreSQL.

    • MySQL: mysql_fdw

    • SQL Server: tds_fdw

    • PostgreSQL: postgres_fdw

    • Redis: redis_fdw

  • Você criou contas no banco de dados de destino exposto à internet e na instância do RDS for PostgreSQL.

    • Para criar uma conta no banco de dados de destino exposto à internet, consulte a documentação oficial do respectivo motor de banco de dados.

    • Para criar uma conta na sua instância do RDS for PostgreSQL, consulte Create an account.

  • O banco de dados de destino exposto à internet deve ter um banco de dados com dados.

Procedimento

Configurar um Internet NAT Gateway

  1. Crie um Internet NAT Gateway.

    1. Acesse o console do NAT Gateway.

    2. Na página Internet NAT Gateway, clique em Create NAT Gateway.

    3. (Opcional) Se for a primeira vez que você utiliza o NAT Gateway, na página Internet NAT Gateway, localize a seção Service-linked Role Creation e clique em Create Service-Linked Role. Após criar a função, você poderá criar o NAT gateway.

    4. Na página Create Internet NAT Gateway, configure os seguintes parâmetros e clique em Buy Now.

      Nota

      Esta tabela lista apenas os parâmetros principais. Para obter detalhes sobre todos os parâmetros, consulte Use the SNAT feature of an Internet NAT Gateway to access the internet.

      Parâmetro

      Descrição

      Region

      Selecione a região da sua instância do RDS for PostgreSQL.

      Network and Zone

      Selecione a VPC e o vSwitch utilizados pela sua instância do RDS for PostgreSQL.

      Você encontra a VPC da instância do RDS for PostgreSQL de destino na página Database Connection no console do ApsaraDB RDS.

      Database Connection

      Selecione Network Type.

      Internet NAT Gateway

      Neste exemplo, selecione EIP.

    5. Na página Configure Later, verifique as informações de configuração do Internet NAT Gateway e clique em Confirm Order.

      Depois de criar o gateway, visualize a instância na página Activate Now. O status da instância é Pending Configuration e a especificação/tipo é Enhanced.

  2. Associe um endereço IP elástico (EIP) ao Internet NAT Gateway.

    1. No console do NAT Gateway, localize a nova instância do Internet NAT Gateway e clique no ID correspondente para abrir a página de detalhes.

    2. Acesse a guia Internet NAT Gateway e clique em Associated EIP.

    3. Na caixa de diálogo Associate EIP, selecione Associate EIP.

    4. Clique em Purchase and Associate EIP.

      Após associar o EIP, você poderá visualizá-lo na guia OK. O status é Allocated e o Entry Association Status é Unused. Isso indica que o EIP ainda não está associado a uma entrada DNAT ou SNAT.

  3. Crie uma entrada SNAT.

    1. No console do NAT Gateway, localize a nova instância do Internet NAT Gateway e clique no ID correspondente para acessar a página de detalhes.

    2. Acesse a guia Associated EIP e clique em SNAT.

    3. Na página Create SNAT Entry, configure os seguintes parâmetros e clique em Create SNAT Entry.

      Parâmetro

      Descrição

      OK

      Selecione a granularidade para a entrada SNAT. Este exemplo utiliza SNAT Entry. Essa configuração permite que a instância do RDS for PostgreSQL no vSwitch especificado acesse a internet por meio do endereço IP público.

      Select vSwitch

      Selecione o vSwitch da sua instância do RDS for PostgreSQL.

      Select vSwitch

      Selecione o endereço IP público para acesso à internet. Este exemplo utiliza um único endereço IP. Selecione o EIP associado na lista suspensa.

      Depois de criar a entrada, você poderá visualizá-la na Select EIP. Na guia SNAT Management, o status da nova entrada SNAT é Available.

Configurar o banco de dados de destino exposto à internet

Adicione o EIP do Internet NAT Gateway à lista de permissões do banco de dados de destino.

Configurar a instância do RDS for PostgreSQL

  1. Conecte-se à instância do RDS for PostgreSQL. Para obter instruções, consulte Connect to a PostgreSQL instance.

  2. Crie a extensão.

    Nota

    Este exemplo utiliza um banco de dados MySQL exposto à internet como destino e cria a extensão mysql_fdw.

    CREATE EXTENSION mysql_fdw;
  3. Crie uma definição de servidor para o banco de dados de destino exposto à internet.

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

    Veja a seguir um exemplo para um serviço MySQL exposto à internet:

    CREATE SERVER mysql_server80
    FOREIGN DATA WRAPPER mysql_fdw OPTIONS (
      host 'XX.XX.XX.XX',
      port '3306'
    );
  4. Crie um mapeamento de usuário. Esse mapeamento permite que o usuário especificado do RDS for PostgreSQL acesse os dados do banco de dados de destino.

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

    Exemplo:

    CREATE USER MAPPING
    FOR pg_client SERVER mysql_server80  OPTIONS (
      username 'testuser',
      password 'U123456!'
    );
  5. Crie uma tabela externa.

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

    Exemplo:

    CREATE FOREIGN TABLE mysql_fdw_test (
      id int,
      name varchar(10)
    )
    SERVER mysql_server80 OPTIONS (
      dbname 'testdb',
      table_name 'test'
    );
  6. Teste a conexão.

    Depois de concluir estas etapas, você poderá acessar as tabelas no banco de dados exposto à internet a partir da sua instância do RDS for PostgreSQL.

    Por exemplo, se criar uma tabela externa chamada mysql_fdw_test, poderá consultá-la na sua instância do RDS for PostgreSQL para recuperar dados do banco de dados de destino exposto à internet.

    SELECT * FROM mysql_fdw_test;