华为云云数据库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”
参数 |
说明 |
---|---|
|
在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)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家