Web+提供了对云数据库RDS资源的编排功能,通过配置数据库类型、数据库版本和存储类型等参数可实现将RDS实例添加至您的部署环境。

背景信息

您可以通过Web+代购RDS实例或导入已有RDS实例来使用RDS。为保障数据安全性,在Web+内释放部署环境时不会自动释放RDS实例,您可以登录RDS控制台进行数据备份及实例释放操作。

为保障数据安全性,Web+使用阿里云KMS服务来加密您的数据库密钥,Web+为您创建的KMS密钥是免费的。KMS服务API调用每位用户每个月有20000次免费额度,您在Web+上每次变更会调用2~3次API,因此免费额度可以支持您每月进行6000多次发布。当KMS API使用量超出后,将会收取0.6元/万次的费用。

RDS配置项说明

开启RDS

打开开启开关即可开启RDS功能。

开启RDS后,您有两种方式来使用RDS:
  • 代购RDS实例:该选项将新建RDS实例,那么Web+将会自动为您代购RDS实例并进行数据库、账号及密码配置。您可以进一步选择按量付费或包年包月付费模式。按量付费模式实例按使用量进行后付费,适用于短期使用场景;包年包月模式实例按预付费时长进行付费,价格相对更便宜,适用于长期使用场景。RDS的计费方式与收费项可参考计费方式与收费项
  • 导入RDS实例:如果您在使用Web+之前已经创建过RDS实例,那么您可以直接导入RDS实例进行使用。使用已有RDS实例时您无需提供实例规格、数据库类型及版本、存储类型及大小等需在代购RDS时需配置的参数。

关闭RDS

关闭开关即可关闭RDS功能。

注意:当您关闭RDS时,为保证数据安全性,Web+不会自动释放RDS实例,您可以登录RDS控制台进行数据备份及实例释放操作。

数据库类型及版本

RDS支持创建MySQL、SQL Server、PostgreSQL、PPAS和MariaDB TX类型数据库引擎,每种类型数据库引擎都有若干种版本可以选择,您可根据自己需要来选取相应数据库引擎。关于各个引擎的介绍,可参见数据库引擎

系列

云数据库RDS的实例包括四个系列,具体介绍可参见产品系列概述
  • 基础版:单节点实例,采用计算与存储分离的架构,可实现超高的性价比。
  • 高可用版:采用一主一备的经典高可用架构,适合80%以上的用户场景。
  • 集群版:适用于SQL Server 2017企业版,基于AlwaysOn技术实现,最大支持一主一备高可用架构和七个只读实例,支持横向扩展集群读能力。 购买时默认为高可用架构(仅包括主实例和备实例,没有只读实例)。
  • 金融版:采用一主两备的三节点架构,通过多副本同步复制,确保数据的强一致性,提供金融级的可靠性。

存储类型及大小

为满足不同场景的需求,云数据库RDS提供三种数据存储类型,关于存储类型的介绍请参见存储类型
  • 本地SSD盘(推荐):本地SSD盘是指与数据库引擎位于同一节点的SSD盘。将数据存储于本地SSD盘,可以降低I/O延时。
  • SSD云盘:是指基于分布式存储架构的弹性块存储设备。将数据存储于SSD云盘,即实现了计算与存储分离。
  • ESSD云盘:增强型(Enhanced)SSD云盘,是阿里云全新推出的超高性能云盘产品。ESSD云盘基于新一代分布式块存储架构,结合25GE网络和RDMA技术,为您提供单盘高达100万的随机读写能力和更低的单路时延能力。

选择完存储类型后,您可以设置存储空间的大小。

可用区及交换机

可用区是指在某个地域内拥有独立电力和网络的物理区域,交换机则指定在相应可用区内RDS所在的交换机。在同一地域内多个可用区采用高速链路互通,您可以选择将RDS与应用软件的ECS创建在同一可用区或不同的可用区,因为同一地域的不同可用区之间没有实质性区别。

RDS实例规格

RDS实例规格分为通用型和独享型,关于各个规格的介绍请参见实例规格族
  • 通用型:RDS独享被分配的内存和I/O资源,与同一物理机上的其他通用型实例共享CPU和存储资源;
  • 独享型:RDS具有完全独享的CPU、内存、存储和I/O资源,性能长期稳定,不会因为物理机上其它实例的行为而受到影响;独享型的顶配是独占物理机型,也称为独占主机型,完全独占一台物理机的所有资源。

数据库

您需要在Web+上输入数据库库名。在代购场景下,如果RDS实例上没有此数据库,Web+将会自动为您创建;在导入已有RDS场景下,您需要自己保证该RDS实例上存在相应的数据库。

数据库账号及密码

您需要在Web+上提供数据库账号及密码。在代购场景下,如果RDS实例上没有此账号,Web+将会自动为您创建该账号;在导入已有RDS场景下,您需要自己保证该RDS实例上存在相应的账号,并正确设置账号权限。

使用CLI配置RDS

CLI配置RDS需要通过Wpfile文件来进行,您可以通过wpctl dump命令来获取部署环境的Wpfile文件。同时可以增加、修改或删除RDS的配置项,然后通过apply命令使其生效。

Wpfile文件中RDS配置项归类在resources.rds下,配置项含义为:

配置项 有效值 默认值 描述
enable true / false false 是否启用RDS
imported true / false false 是否使用已有RDS
rdsId 有效的RDS实例ID RDS实例ID。在导入已有RDS场景下,需要提供此配置项来指明导入的RDS。
zoneId 有效的RDS可用区ID RDS可用区ID。可通过RDS的DescribeRegions接口来获取有效的RDS可用区。
instanceChargeType PrePaid / PostPaid PostPaid 实例付费方式
periodUnit Month / Year Month 包年包月实例时长单位
period
  • 当periodUnit为Year时,period取值:1, 2, 3
  • 当periodUnit为Month时,period取值:1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36
1 包年包月实例时长
VSwitches 交换机ID 指定RDS所在可用区的交换机。
engine 数据库类型,取值:MySQL ;SQLServer ;PostgreSQL ;PPAS ;MariaDB 。 数据库类型
engineVersion 数据库版本,取值:
  • MySQL:5.5/5.6/5.7/8.0
  • SQL Server:2008r2/2012/2012_ent_ha/2012_std_ha/2012_web/2016_ent_ha/2016_std_ha/2016_web/2017_ent
  • PostgreSQL:9.4/10.0
  • PPAS:9.3/10.0
  • MariaDB:10.3
数据库版本
storageType 实例存储类型,取值:
  • local_ssd/ephemeral_ssd:本地SSD盘(推荐)
  • cloud_ssd:SSD云盘
  • cloud_essd:ESSD云盘
存储类型
storageSize 整数 100 存储大小,单位G
dbInstanceClass 有效的实例规格 实例规格,有效值详见实例规格表 。
databaseName 字符串 webplus 数据库名
characterSetName 字符集,取值:
  • MySQL/MariaDB实例:utf8、gbk、latin1、utf8mb4
  • SQL Server实例:Chinese_PRC_CI_AS、Chinese_PRC_CS_AS、SQL_Latin1_General_CP1_CI_AS、SQL_Latin1_General_CP1_CS_AS、Chinese_PRC_BIN
  • MySQL/MariaDB实例:utf8mb4
  • SQL Server实例:Chinese_PRC_CI_AS
字符集
accountName 字符串 webplus 数据库账号
accountPassword 字符串 数据库账号密码
category 实例系列,取值:
  • Basic:基础版
  • HighAvailability:高可用版
  • AlwaysOn:集群版
  • Finance:金融版(仅中国站支持)
数据库实例系列

在应用进程中使用RDS

当启用RDS后,在Web+通过环境变量方式来向您的应用程序提供数据库连接信息。您在应用进程中可通过以下环境变量来获取相应连接信息:
  • WP_RDS_ENGINE:数据库类型,例如MySQL。
  • WP_RDS_CONNECTION_ADDRESS:数据库连接地址,例如rm-xxxx.mysql.rds.aliyuncs.com
  • WP_RDS_PORT:数据库连接端口,例如3306。
  • WP_RDS_ACCOUNT_NAME:数据库账号名。
  • WP_RDS_ACCOUNT_PASSWORD:数据库密码。
  • WP_RDS_DATABASE:数据库名。