华为云云数据库rds通过公网连接RDS for PostgreSQL实例(Linux方式)_云淘科技

RDS for PostgreSQL实例购买完成后,可以先登录到Linux弹性云服务器,在ECS上安装PostgreSQL客户端,然后执行psql命令行通过PostgreSQL公网IP连接到实例。

通过PostgreSQL客户端连接实例的方式有SSL连接。SSL连接通过了加密功能,具有更高的安全性。

创建RDS for PostgreSQL实例时默认开启SSL,实例创建完成后,不支持关闭。

开启SSL连接数据库实例后,数据库的只读、读写性能是未开启SSL连接数据库实例的80%左右。

步骤1:购买ECS

登录管理控制台,查看是否有弹性云服务器。

有Linux弹性云服务器,执行3。
无Linux弹性云服务器,执行2。

图1 ECS实例

购买弹性云服务器时,选择Linux操作系统,例如CentOS。

由于需要在ECS下载PostgreSQL客户端,因此需要为ECS绑定弹性公网IP(EIP)。

购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。

在ECS实例基本信息页,查看ECS实例的区域和VPC。

图2 ECS基本信息

在RDS for PostgreSQL实例基本信息页,查看RDS实例的区域和VPC。

图3 PostgreSQL基本信息

步骤2:测试连通性并安装PostgreSQL客户端

登录ECS实例,请参见《弹性云服务器用户指南》中“Linux弹性云服务器远程登录(VNC方式)”。
在RDS“实例管理”页面,单击实例名称进入“基本信息”页面。
选择“连接管理”,在“连接信息”模块获取实例的公网地址和数据库端口。

图4 连接信息

如果没有绑定公网地址,请参见绑定弹性公网IP。

在ECS上测试是否可以正常连接到RDS for PostgreSQL实例公网地址的端口。

telnet 公网地址 3306

如果可以通信,说明网络正常。
如果无法通信,请检查安全组规则。

查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将RDS实例的公网IP地址和端口添加到出方向规则。

图5 ECS的安全组

查看RDS的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参见设置安全组规则。

图6 RDS的安全组

打开客户端安装页面。

PostgreSQL官网提供了针对不同操作系统的客户端安装方法。

下面将以CentOS下PostgreSQL 12版本为例,介绍安装PostgreSQL客户端。

选择数据库版本、操作系统、操作系统架构,在弹性云服务器上执行以下命令安装PostgreSQL客户端。

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server

图7 安装客户端

数据库版本,选择与RDS for PostgreSQL数据库实例一致的版本。
操作系统,选择与弹性云服务器一致的操作系统。
操作系统架构,选择与弹性云服务器一致的操作系统架构。

图8 安装rpm包

图9 客户端安装完成

步骤3:使用命令行连接实例(SSL加密)

在RDS“实例管理”页面,单击实例名称进入“基本信息”页面。
选择“连接管理”。
在“连接信息”模块,单击“SSL”处的,下载“Certificate Download”压缩包,解压后获取根证书(ca.pem)和捆绑包(ca-bundle.pem)。

图10 下载证书

将根证书(ca.pem)上传到ECS。

推荐使用TLS v1.2及以上协议,低于该版本可能存在安全风险。
协议算法推荐使用EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EDH+aRSA+AESGCM:EDH+aDSS+AESGCM:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!SRP:!RC4,使用其他选项可能存在安全风险。
根证书捆绑包(ca-bundle.pem)包含2017年4月之后的新根证书和原有根证书。
ca.pem和ca-bundle.pem都可以实现SSL连接,ca-bundle.pem文件包含ca.pem,使用ca.pem即可。

在ECS上执行以下命令连接RDS for PostgreSQL实例。

psql –no-readline -h -p “dbname= user= sslmode=verify-ca sslrootcert=

示例:

psql –no-readline -h 192.168.0.44 -p 5432 “dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem”

表1 参数说明

参数

说明

在3中获取的公网地址。

在3中获取的数据库端口,默认5432。

需要连接的数据库名,默认的管理数据库是postgres。

管理员账号root。

SSL连接CA证书路径,该文件需放在执行该命令的路径下。

sslmode

SSL连接模式,设置为“verify-ca”,通过检查证书链(Certificate Chain,以下简称CA)来验证服务是否可信任。

出现如下提示时,输入数据库账号对应的密码。

Password:

出现如下信息,表示连接成功。

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

常见问题

连接RDS实例失败的排查思路

后续操作

登录实例后,您可以创建数据库,进行数据迁移等操作,具体请参见:

通过调用API创建PostgreSQL数据库
通过DAS管理PostgreSQL数据库
迁移方案总览

父主题: 通过公网连接RDS for PostgreSQL实例

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家