我可以重命名RDS实例吗?


11

我继承了具有随机(无用)数据库实例名称的RDS MySQL实例集合。

我经常必须深入标签部分来找出它们属于哪个项目。

我可以在RDS中修改的设置之一是DB Instance Identifier

如果更改此名称,除了更改名称还会发生什么?它会影响任何人的代码吗?还是无害的变化?

这些是我无法承受的实时系统。

Answers:


10

是的,您可以重命名RDS实例...后果自负。

重命名数据库实例时,数据库实例的[DNS]端点[主机名]会更改,因为URL包含您分配给数据库实例的名称。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.html

因此,您的应用程序代码需要协调配置更改。

有关其他含义,请参见上面的链接。这是受支持的且通常是安全的操作,但仅在维护窗口中,因为在更改DNS和使用新数据库主机名循环输入应用程序代码时,肯定会造成短暂中断。


3

是的,您可以更改RDS实例的名称,但是强烈建议不要在LIVE Production环境中进行更改。它将更改EndPoint,这可能会影响其他主动访问RDS服务器(如应用程序服务器)的资源。

这可能需要在代码或配置中进行属性/环境变量的更改(理想情况下,这将通过配置管理最终发布配置)

为避免中断(将来)和使用较小的RTO进行更改,可以在Route53中为RDS服务器创建中间DNS条目(CNAME),并在应用程序中使用中间URL。当RDS服务器名称更改时,您只需更改新RDS端点的DNS CNAME。注意:在更改名称期间,您的RDS服务器将在几分钟内不可用(使用旧名称),这可能会导致中断

话虽如此,您已经对解决方案抱有偏见(更改RDS名称)。但

针对您的实际问题有多种解决方案(为每个项目管理RDS服务器)

A.尽量避免使用AWS控制台。为什么不开始研究AWS CLI(可以拉标签)并编写包装Python / Bash脚本以列出所有RDS服务器-具有项目名称,就可以从此输出中管理这些服务器,例如拍摄快照,备份等您还可以使用mysql --login-path(如果您使用mysql进行数据库管理) https://opensourcedbms.com/dbms/passwordless-authentication-using-mysql_config_editor-with-mysql-5-6/

B.(成本不可知的方法)如果您仍然决定更改RDS名称,那么您可以做一些事情而不会产生任何影响。

B.1 When the next code/config release happens try to bring in the intermediate DNS change into action.

B.2 (Optional) Enable Multi AZ in RDS (HA and twice the price). This will help your application to access the secondary active slave when there is any disruption due to name change. There is an option called Reboot with failover which would reboot the master while failing over to the active secondary 

B.3 Enable replication (read-replica) (this will give you a new RDS end-point). Name the read replica properly with your project names

B.4. Once replication is complete (and during your SLA / maintenance window) promote your read replica (this will break replication) and make the intermediate DNS point to the new RDS (with your proper names)

注意: 由于进行中的交易,上述所有方法均不能保证数据完整性和不正确的数据更新。因此,最好停止所有事务(通过停止所有应用程序访问和部署维护页面并执行操作)


感谢您的输入,尽管我注意到奇怪的(无用的)名称特别来自使用CLI。从控制台创建RD实例将为其赋予有意义的名称。
丹尼·舒曼

从CLI进行计费分析以及查看使用情况图表也非常困难(不可能吗?)。
丹尼·舒曼

1
#1哦,创建时,您可以看一下Cloudformation(您可以在其中定义RDS名称),当我说CLI时,我指的是读取RDS列表(以便于在grep use中轻松解析--output=text#2,是的,用于计费分析,控制台是必须的,您应该考虑使用计费角色创建一个IAM用户并将其移交给您的财务人员
Ameen Ibrahim Raffic-'AIR'17年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.