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

我经常不得不深入研究标签部分以找出它们属于哪个项目。

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

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

这些是我无法负担得起的实时系统。

#1 楼

是的,您可以重命名RDS实例...。但是,您要自己承担风险。 URL包括您分配给数据库实例的名称。

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



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

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

#2 楼

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

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

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

话虽如此,您已经对解决方案(更改RDS名称)存有偏见。为您的问题。 BuT

针对您的实际问题有多种解决方案(为每个项目管理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实例将为其赋予有意义的名称。

–丹尼·舒曼(Danny Schoemann)
17年8月13日在11:27

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

–丹尼·舒曼(Danny Schoemann)
17年8月13日在11:28

#1哦,对于创建,您可以看一下Cloudformation(您可以在其中定义RDS名称),当我说CLI时,我指的是读取RDS列表(为了在grep中轻松解析,请使用--output = text。#2和是的,对于计费分析来说,控制台是必须的,您应该考虑使用计费角色创建一个IAM用户并将其移交给您的财务人员。

– Ameen Ibrahim Raffic-'AIR'
17年8月14日在20:21