Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Acessar um banco de dados externo pela Internet a partir de uma instância RDS for PostgreSQL

Última atualização: Aug 21, 2026

As instâncias RDS for PostgreSQL operam em uma Virtual Private Cloud (VPC) e não acessam a Internet pública diretamente. Este tópico explica como configurar um NAT gateway da Internet e uma entrada de Source Network Address Translation (SNAT) para permitir que sua instância RDS for PostgreSQL se conecte a um banco de dados externo — MySQL, SQL Server, PostgreSQL ou Redis — pela Internet usando a extensão foreign data wrapper (FDW).

A entrada SNAT concede acesso de saída à Internet para a instância. Redes externas não conseguem alcançar a instância por meio do NAT gateway.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância RDS for PostgreSQL. Consulte Quickly create an RDS for PostgreSQL instance.

  • Um banco de dados de destino (MySQL, SQL Server, PostgreSQL ou Redis) acessível pela Internet com um endereço IP público.

  • A extensão FDW compatível com a versão do seu RDS for PostgreSQL. Verifique em Extensions supported by RDS for PostgreSQL a extensão necessária para cada tipo de banco de dados:

    • MySQL: mysql_fdw

    • SQL Server: tds_fdw

    • PostgreSQL: postgres_fdw

    • Redis: redis_fdw

  • Uma conta na instância RDS for PostgreSQL. Consulte Create an account.

  • Uma conta no banco de dados de destino e um banco de dados com dados.

Antes de configurar o FDW, reúna as seguintes informações do banco de dados de destino:

  • Endereço IP público ou nome do host.

  • Número da porta (padrão: 3306 para MySQL).

  • Nome do banco de dados.

  • Nome de usuário e senha para a conexão FDW.

Configurar um NAT gateway da Internet

Etapa 1: Criar um NAT gateway

  1. Faça login no console do NAT Gateway.

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

  3. (Opcional) Se esta for a primeira vez que você usa o NAT Gateway, clique em Create Service-linked Role na seção Service-linked Role Creation. O botão aparece na página Internet NAT Gateway.

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

    A tabela abaixo lista apenas os principais parâmetros. Para visualizar 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 mesma região da sua instância RDS for PostgreSQL.

    Network And Zone

    Escolha a VPC e o vSwitch da sua instância RDS for PostgreSQL. Para localizar a VPC, acesse a página Database Connection no console RDS.

    Network Type

    Selecione Internet NAT Gateway.

    EIP

    Escolha Configure Later.

  5. Na página Confirm, revise a configuração e clique em Activate Now.

Após a criação, o gateway aparece na página Internet NAT Gateway.

创建NAT网关

Etapa 2: Associar um Elastic IP Address (EIP)

  1. No console do NAT Gateway, clique no ID da instância do NAT gateway criado.

  2. Na aba Associated EIP, clique em Associate EIP.

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

    绑定弹性公网IP

  4. Clique em OK.

O EIP aparece na seção Associated EIP.

已绑定的弹性公网IP

Etapa 3: Criar uma entrada SNAT

  1. No console do NAT Gateway, clique no ID da instância do NAT gateway criado.

  2. Na aba SNAT, clique em Create SNAT Entry.

  3. Configure os parâmetros a seguir e clique em OK.

    Parâmetro

    Descrição

    SNAT Entry

    Selecione vSwitch Granularity. Todas as instâncias no vSwitch usam o EIP para acessar a Internet.

    Select vSwitch

    Escolha o vSwitch da sua instância RDS for PostgreSQL.

    Select EIP

    Selecione o EIP associado na etapa anterior.

A entrada SNAT aparece na SNAT Entry List.

已配置的SNAT

Configurar o banco de dados de destino

Adicione o EIP à lista de permissões ou às regras de firewall do banco de dados de destino para que ele aceite conexões da sua instância RDS.

Configurar a instância RDS for PostgreSQL

Os passos a seguir usam um banco de dados MySQL como exemplo. A extensão mysql_fdw é usada em todo o processo. Substitua o nome da extensão e as opções FDW pelos valores adequados ao tipo do seu banco de dados de destino.

Etapa 1: Conectar-se à instância RDS

Conecte-se à sua instância RDS for PostgreSQL. Consulte Connect to a PostgreSQL instance.

Etapa 2: Instalar a extensão FDW

Execute o seguinte comando:

CREATE EXTENSION mysql_fdw;

Etapa 3: Criar uma definição de servidor

Crie uma definição de servidor que aponte para o banco de dados de destino. Substitua os espaços reservados pelos valores reais:

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

Exemplo para um banco de dados MySQL:

CREATE SERVER mysql_server80
FOREIGN DATA WRAPPER mysql_fdw OPTIONS (
  host 'XX.XX.XX.XX',
  port '3306'
);

Saída esperada:

CREATE SERVER

Etapa 4: Criar um mapeamento de usuário

Mapeie a definição de servidor para um usuário na instância RDS. Isso permite que o usuário se autentique no banco de dados MySQL de destino:

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>'
);

Exemplo:

CREATE USER MAPPING
FOR pg_client SERVER mysql_server80 OPTIONS (
  username 'testuser',
  password 'U123456!'
);

Saída esperada:

CREATE USER MAPPING

Etapa 5: Criar uma tabela externa

Crie uma tabela externa que faça referência a uma tabela no banco de dados de destino. Os nomes e tipos das colunas devem corresponder aos da tabela remota:

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>'
);

Exemplo:

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

Saída esperada:

CREATE FOREIGN TABLE

Etapa 6: Verificar a conexão

Consulte a tabela externa para confirmar se os dados retornam do banco de dados MySQL de destino:

SELECT * FROM mysql_fdw_test;

Se a consulta retornar linhas do banco de dados de destino, a configuração estará concluída.

Próximos passos