有教做点心的网站吗,做网站水印,厦门网站推广公司哪家好,wordpress文章 插件问题描述#xff1a;
因为AWS RDS官方文档【1】中已经明确说明#xff0c;MySQL RDS的存储为EBS卷#xff0c;用KMS进行RDS加密有如下限制#xff1a;
您只能在创建RDS的时候#xff0c;选择加密。对于已经创建的RDS实例#xff0c;您无法将为加密的实例#xff0c;直…问题描述
因为AWS RDS官方文档【1】中已经明确说明MySQL RDS的存储为EBS卷用KMS进行RDS加密有如下限制
您只能在创建RDS的时候选择加密。对于已经创建的RDS实例您无法将为加密的实例直接改为加密实例。文档【1】中的Amazon RDS 加密的数据库实例的限制部分
因此对于一个我们已经创建并运行的实例我们无法将其从未加密的状态直接改为加密状态。
那么如果我的数据较多或者我的生产环境过于忙碌我也并不想通过mysqldump这类需要很长的停机时间才能够迁移全部数据的方式将数据从未加密的实例迁移到加密实例。
我有哪些方案可以选择呢
分析过程 及 方案建议
1. 我们可以为RDS MySQL创建一个Aurora MySQL 集群的只读副本。因为我们可以在创建Aurora集群的只读副本的的时候将“启用加密”的选项选择上。等到Aurora副本和primary的MySQL RDS latency为0以后promote Aurora cluster副本并修改application connection string。
文档【2】对这个方式提供了理论支撑如果 MySQL 数据库实例未加密请指定一个加密密钥来对数据库集群进行静态加密。我也进行了测试未加密的RDS MySQL是可以创建加密的Aurora cluster的。
2. 如果我们并不希望通过建Aurora副本的方式而希望继续使用RDS MySQL。 那么我们可以通过如下的步骤建立一个加密的RDS MySQL实例在这之后建立源库和新库之间的主从步骤如下
我们可以通过您的未加密的RDS实例记录binlog position, 之后创建一个未加密的快照。之后选定此快照通过复制copy的方式复制一个快照的副本【3】而copy的过程中我们可以选定KMS加密并选定使用加密的key。这样创建的新的快照便是加密的快照。之后我们可以用这个快照恢复成一个新的RDS这个新的RDS即为加密RDS。这个过程也在文档【1】中有所提及。
等到snapshot还原RDS B完成以后我们可以通过用mysql.rds_set_external_source这个存储过程【4】将源RDS设为Primary并同步这段时间Primary写入的数据之后在同步完成以后promote已经加密的新库并更改endpoint.
过程描述 未加密的实例A -- 未加密的实例快照A snapshot -- 通过copy成为加密快照Encrypted Snapshot B -- Snapshot B还原为加密的RDS B. -- 用primary replica连结A和B.
3. 另一种方式是我们创建一个新的RDS并在创建RDS的过程中选择加密RDS的存储。 在创建出新的加密RDS以后我们可以使用Database Migration Service【5】服务创建一个fullload CDC全量持续复制任务指定我们的未加密的RDS为源已经加密的新的RDS为目标端。将我们的未加密的RDS中的数据全部迁移到已经加密的新的RDS中。
请注意DMS服务并不会迁移MySQL数据库的所有架构。我们可能需要mysqldump metadata only的方式迁移view, function, proceduretrigger等DDL。
过程描述 未加密的实例A 为源端 --- DMS 任务 -- 加密的实例B为目标
在迁移完以后我们可以选择改变业务应用中的RDS 连结选择新的加密的RDS进行应用。或者我们可以更换RDS 实例ID重命名原RDS并将新的已经加密的RDS改为原RDS ID。然后重新进行应用的连结。
参考文档 【1】加密RDS实例, 以及Amazon RDS 加密的数据库实例的限制 https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/Overview.Encryption.html 【2】Aurora只读副本加密https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html 【3】复制RDS快照https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html 【4】mysql.rds_set_external_source https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/mysql_rds_set_external_source.html 【5】Databse Migration Service介绍https://docs.amazonaws.cn/dms/latest/userguide/Welcome.html