DMS是[AWS Database Migration Service]的简称,主要是帮助客户将本地数据库安全高效的迁移到AWS云上。本实验使用AWS DMS迁移MySQL数据库到AWS的RDS上。
本次实验架构图
本次实验架构图如下:
1. 实验准备
1.1 准备Corporate Data Center
本实验有一台Web服务器,访问地址为:http://ec2-54-149-186-172.us-west-2.compute.amazonaws.com;一台数据库服务器,访问地址为:ec2-52-42-121-115.us-west-2.compute.amazonaws.com:3306
访问Web入下:
本次实验为了方便,在AWS上的另外VPC部署2台EC2,分别部署Web和DB。
1.2 准备AWS VPC网络环境
准备一个VPC,CIDR为10.0.0.0/16。该VPC分布在2个AZ中,每个AZ有3个子网,包含1个含有NAT Gateway的共有子网,2个私有子网,1个是Web子网,另一个是DB子网。
该VPC可以使用这个 AWS上DevOps实验(二)--- 使用Terraform创建VPC网络文章中的代码来完成。
本实验假设DMS可以访问到本地数据库实例。实际上可能会用VPN或者AWS Direct Connect访问本地服务器
1.3 配置源数据库
- 在源数据库实例上,向
wordpress-user
数据库用户授予权限(我们将在 CDC 功能中使用该用户)
mysql> GRANT REPLICATION CLIENT ON *.* to 'wordpress-user';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT REPLICATION SLAVE ON *.* to 'wordpress-user';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SUPER ON *.* to 'wordpress-user';
Query OK, 0 rows affected (0.01 sec)
- 在 MySQL 中,二进制日志 包含描述数据库更改的“事件”,例如表创建操作或表数据更改。这对于 DMS 的连续复制任务至关重要。
mkdir /var/lib/mysql/binlogs
chown -R mysql\:mysql /var/lib/mysql/binlogs
- 修改MySQL配置以启用二进制日志
cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
chown -R mysql\:mysql /etc/mysql/my.cnf
cat <<EOF >> /etc/mysql/my.cnf
server_id=1
log-bin=/var/lib/mysql/binlogs/log
binlog_format=ROW
expire_logs_days=1
binlog_checksum=NONE
binlog_row_image=FULL
log_slave_updates=TRUE
performance_schema=ON
EOF
- 要实施更改,需要重新启动 MySQL 服务
systemctl restart mysql
- 查看MYSQL的配置是否生效
select variable_value as "BINARY LOGGING STATUS (log-bin) :: "
from performance_schema.global_variables where variable_name='log_bin';
select variable_value as "BINARY LOG FORMAT (binlog_format) :: "
from performance_schema.global_variables where variable_name='binlog_format';
2. 部署目标DRS
2.1 创建安全组
- 在 AWS 控制台上,访问服务 > 计算 > EC2
- 在左侧菜单中选择 “安全组”,然后单击顶部的 “创建安全组”按钮
- 使用以下参数填写安全组创建表单,然后单击底部的创建安全组:
Parameter | Value |
---|---|
Security group name | DB-SG |
Description | Security Group for RDS Target Database |
VPC | TargetVPC |
Inbound rules | (Keep default: Empty) |
Outbound rules | (Keep default: All Traffic, 0.0.0.0/0) |
2.2 设置网络子网组
- 在 AWS 控制台中,访问服务 > 数据库 > RDS
- 然后从左侧菜单中选择子网组,然后单击右上角的创建数据库子网组按钮:
- 使用以下参数填写数据库子网组创建表单,然后单击底部的创建:
Parameter | Value |
---|---|
Name | database-subnet-group |
Description | Subnets where RDS will be deployed |
VPC | TargetVPC |
Availability Zones | Select us-west-2a and us-west-2b |
Add subnets | Add 10.0.101.0/24 , 10.0.201.0/24 |
2.3 创建目标数据库
- 单击左侧菜单中的数据库选项,然后单击顶部的创建数据库按钮
- 从引擎选项中,选择MySQL,并为Engine Version选择 5.7系列中的最新版本:
- 在模板部分中,选择免费套餐:
- 在 “设置” 部分中,配置以下参数:
Parameter | Value |
---|---|
DB instance identifier | database-1 |
Master username | admin |
Master password | VeryHardPassword |
- 在实例配置部分中,从Burstable DB 实例类中选择db.t3.micro:
- 在 “存储” 部分中,配置以下参数:
Parameter | Value |
---|---|
Storage type | General Purpose SSD (gp3) |
Allocated storage | 20 |
Storage autoscaling > Enable storage autoscaling | Unchecked |
- 在 “连接” 部分中,配置以下参数
Parameter | Value |
---|---|
Virtual private cloud (VPC) | Select TargetVPC |
DB subnet group | Select database-subnet-group |
VPC security group (firewall) | Select Choose Existing |
Existing VPC security groups | Choose DB-SG only |
- 对于数据库身份验证部分,选择密码身份验证:
- 对于 “监控” 部分,请确保未选中 “启用增强监控” :
- 对于 “其他配置” 部分,请确保 未选中“启用自动备份” 和 “启用自动次要版本升级” ,以避免不必要的成本和中断:
- 查看“估计每月成本” 部分的成本,然后单击底部的 “创建数据库” 按钮。
- RDS 数据库实例创建将需要几分钟的时间,您可以从左侧菜单中关注数据库选项的状态。请等待状态变为可用。
3. 部署DMS
3.1 创建安全组
- 在 AWS 控制台上,访问 服务 > 计算 > EC2
- 在左侧菜单中选择 “安全组”,然后单击顶部的 “创建安全组” 按钮:
- 使用以下参数填写安全组创建表单,然后单击底部的 创建安全组:
Parameter | Value |
---|---|
Security group name | RI-SG |
Description | Security Group for DMS Replication Instance |
VPC | TargetVPC |
Inbound rules | (Keep default: Empty) |
Outbound rules | (Keep default: All Traffic, 0.0.0.0/0) |
3.2 修改RDS安全组
- 选中步骤2.1中创建的安全组,点击操作-> 编辑入站规则
![](file://C:\Users\guomi\AppData\Roaming\marktext\images\2023-11-02-16-00-26-image.png?msec=1704346695600)
- 点击添加规则
- 在类型中选择MYSQL/Aurora,在源中选择步骤3.1中的安全组
3.3 创建复制实例网络组
- 在 AWS 控制台中,访问服务 > 迁移和传输 > 数据库迁移服务
- 从左侧菜单中选择 子网组,然后单击创建子网组按钮
使用以下参数填写 “创建复制子网组” 表单,然后单击底部的 **“创建子网组”**:
Parameter | Value |
---|---|
Name | dms-subnet-group |
Description | Default VPC Subnet Group for DMS |
VPC | TargetVPC |
Add subnets | TargetVPC-public-a, TargetVPC-public-b |
3.4 创建复制实例
- AWS 控制台中访问服务> 迁移与传输 > Database Migration Service
- 从左侧菜单中选择 “复制实例” ,然后单击右上角的 “创建复制实例” 按钮:
- 在创建复制实例创建表单的设置部分中,填写以下参数:
Parameter | Value |
---|---|
Name | replication-instance |
Descriptive Amazon Resource Name (ARN) | (Keep default: Empty) |
Description | DMS replication instance |
- 对于实例配置和存储部分,除了需要 开发或测试工作负载(单可用区) 的 高可用性(以避免不必要的成本)之外,将大部分保留为默认值
- 在连接和安全的高级设置中,确保选择复制子网组、可用区 (us-west-2a) 和您之前创建的复制实例安全组。
- 然后点击底部的创建按钮
- DMS 复制实例可能需要长达 10-15 分钟才能达到可用状态
- 复制实例启动后,记下分配给我们的 DMS 复制实例的公共 IP 地址
4. 创建复制任务
4.1 创建源端点
- 在 AWS 控制台中访问服务> 迁移与传输 > Database Migration Service
- 从左侧菜单中选择 “端点” ,然后单击右上角的 “创建端点” 按钮:
- 使用以下参数填写创建端点创建表单:
Parameter | Value |
---|---|
Endpoint type | Source endpoint |
Endpoint identifier | source-endpoint |
Descriptive Amazon Resource Name (ARN) | (Keep default: Empty) |
Source engine | MySQL |
Access to endpoint database | Provide access information manually |
Server name | Use the 'DBServerDNSName' Output section of the workshop dashboard (or in the CloudFormation stack ) |
Port | 3306 |
SSL mode | (Keep default: none) |
User name | wordpress-user |
Password | AWSRocksSince2006 |
- 在单击 “创建端点” 之前,请务必展开 “测试端点连接(可选)” 部分并执行测试连接。
TargetVPC
应使用之前创建的和来预先填充这些值replication-instance
。如果测试成功,则单击创建端点:
4.2 创建源端点
- 在AWS DMS服务页面,从左侧菜单中选择 “端点” ,然后单击右上角的 “创建端点” 按钮:
- 使用以下参数填写创建端点创建表单:
Parameter | Value |
---|---|
Endpoint type | Target endpoint |
Select RDS DB instance | checked |
RDS Instance | Select your RDS instance from the drop-down (if it's not visible enter values manually) |
Endpoint Identifier | target-endpoint |
Descriptive Amazon Resource Name (ARN) | (Keep default: Empty) |
Target Engine | MySQL (keep pre-populated value) |
Access to endpoint database | Provide access information manually |
Server Name | DNS name of your RDS database (keep pre-populated value) |
Port | 3306 (keep pre-populated value) |
SSL mode | (Keep default: none) |
User name | admin (keep pre-populated value) |
Password | Enter password you used when you creating the RDS database (Default: VeryHardPassword) |
- 在单击 “创建端点” 之前,请务必展开 “测试端点连接(可选)” 部分并执行测试连接。
TargetVPC
应使用之前创建的和来预先填充这些值replication-instance
。如果测试成功,则单击创建端点:
4.3 创建并运行复制任务
- 在AWS DMS服务页面,左侧菜单中选择数据库迁移任务,然后单击右上角的创建任务按钮:
- 使用以下参数填写创建数据库迁移任务表单:
Parameter | Value |
---|---|
Task identifier | replication-cdc |
Descriptive Amazon Resource Name (ARN) | (Keep default: Empty) |
Replication instance | replication-instance |
Source endpoint | source-endpoint |
Target endpoint | target-endpoint |
Migration type | Migrate existing data and replicate ongoing changes |
- 在 “任务设置” 面板中,选择 “向导” 并按照下图所示进行设置:
- 在表映射面板中选择向导模式,按添加新选择规则按钮并
wordpress-db
在架构下拉列表中选择:
- 在**“迁移任务启动配置”部分中,选择“创建时自动”。然后滚动到屏幕底部并单击创建任务**按钮以创建任务并开始数据复制:
- 监视任务,直到状态更改为Load Complete、复制正在进行且进度为**100%**:
- 该任务将一直运行直到我们停止它,因为它是连续复制。您可以查看其详细信息以查看有关表和复制的行数的信息:
本实验完成。
标签:单击,创建,数据库,AWS,---,DMS,VPC,mysql From: https://blog.51cto.com/garycloud/9100839