AWS实战:Aurora到Redshift数据同步

本文介绍了如何使用AWS Data Migration Service (DMS)将Amazon Aurora数据库无缝迁移到Redshift数据仓库。阐述了Aurora和Redshift的特性,以及为何需要从Aurora到Redshift的数据同步。详细步骤包括设置IAM权限、VPC配置、数据库参数调整、DMS的使用,以及探讨了其他同步方法如Zero-ETL、Data Pipeline和Glue的优缺点,帮助读者选择适合的数据迁移方案。
摘要由CSDN通过智能技术生成

什么是Aurora

  • Amazon Aurora是一种基于云且完全托管关系型数据库服务,与MySQL 和 PostgreSQL 数据库兼容,完全托管意味着自动对数据库进行管理,包括管理数据备份、硬件配置和软件更新等操作

  • Amazon Aurora提供了企业级性能

  • Amazon Aurora提供了多种实例类型,不同的实例类型有不同的CPU,内存,带宽等配置,用户可以根据需求选择合适的实例类型来支持自己的业务

  • Amazon Aurora 提供了可扩展性,可以根据需要自动扩大或缩小存储规模。Amazon Aurora 将自动从最小 10 GB 存储扩展到 64 TB 存储,每次增量为 10 GB,且扩展不会影响数据库的性能

什么是Redshift

  • Amazon Redshift 是一个基于云的完全托管的数据仓库服务。开发人员可以使用 redshift 来构建、查询和维护多达 PB 或更多的数据。

  • 每个 Redshift 数据仓库都是完全托管的,这意味着备份创建、安全和配置等管理任务都是自动化的。

  • Redshift 中的每个数据仓库都由一组节点组成。这些节点被组织成集群,使得对大量数据运行分析查询变得容易。

  • 许多现有的基于 SQL 的客户端,以及范围广泛的数据源和数据分析工具,都可以与 Redshift 一起使用。它具有稳定的架构,可以轻松地与各种商业智能工具进行交互。

  • 由于 Redshift 旨在处理大量数据,因此其模块化设计使其能够轻松扩展。它的多层结构使一次处理多个查询变得简单。

  • 可以从 Redshift 集群创建切片,允许对数据集进行更精细的检查

  • Redshift 提供的性能指标可用于跟踪数据库的健康状况

为什么会有从Aurora到Redshift数据同步的需求

  • Aurora 是一个基于行的数据库,这使得它最适合事务查询(OLTP)业务,比如Web 应用程序。想根据用户 ID 查找用户名?使用 Aurora 很容易做到。

  • Redshift 是一个基于列的数据库,旨在高效处理对大量数据的复杂查询,这使得它最适合数据分析(OLAP)业务,比如电商网站用户行为分析。

  • 比如我们可以用Aurora来实现电商网站的基本业务功能,用户管理,订单管理,商品管理等基本功能,然后用Redshift来实现用户行为分析,商品销售情况分析等等需要处理海量数据的查询功能。

AWS Data Migration Service

  • AWS Database Migration Service (AWS DMS) 用于管理和迁移云上的数据库。

  • 借助 AWS DMS,客户可以跨许多流行的商业数据库同步数据,包括 Microsoft SQL Server、Amazon Aurora 和 MySQL。

  • 使用 AWS DMS,用户可以运行一次性迁移或设置持续同步。

  • 在同步数据库之前,需要在云服务器上创建一个复制实例。此实例读取源数据并将其加载到目标。

如何使用AWS DMS从Aurora同步数据到Redshift

  • 在实际开发过程中,我们的web服务器位于VPC public subnet中,允许任何客户端进行访问

  • 用户数据库一般位于VPC的private subnet中,且只允许同一个VPC的web服务器进行访问,以保证数据库的安全

  • DMS进行数据同步使用的instance也只需要位于private subnet,无需对外开放

  • 因此我们首先需要创建一个VPC,vpc的架构如下:

接下来我们详细介绍每一部分需要创建的资源。

IAM

如果在资源创建过程中出现类似如下没有权限的错误,则需要在AWS Web Console IAM页面为用户添加相应的权限。

User: arn:aws:iam::****:user/*** is not authorized to perform: dms:CreateReplicationSubnetGroup on resource: arn:aws:dms:ap-southeast-1:****:subgrp:aurora-to-redshift-instance because no identity-based policy allows the dms:CreateReplicationSubnetGroup action (Service: AWSDatabaseMigrationService; Status Code: 400; Error Code: AccessDeniedException; ; Proxy: null)

本文中用到的权限如下:

  • AmazonS3FullAccess: AWS Managed Policy

  • AmazonVPCFullAccess: AWS Managed Policy

  • AmazonRDSFullAccess: AWS Managed Policy

  • AmazonRedshiftFullAccess: AWS Managed Policy

  • DMS没有找到AWS Managed Policy,需要自己手动创建一下,内容如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "dms:*",
            "Resource": "*"
        }
    ]
}

VPC

  • vpc

  • cird block: 10.10.0.0/16

  • internet gateway

  • public subnet

  • 三个Availability Zone

  • private subnet

  • 三个Availability Zone

  • public route table: public subnet关联的 route table

  • destination: 0.0.0.0/0 target: internet-gateway-id(允许与外界进行通信)

  • destination:10.10.0.0/16 local(内部通信)

  • private route table:private subnet关联的 route table

  • destination:10.10.0.0/16 local(内部通信)

  • web server security group

  • 允许任意ip对443端口进行访问

  • 允许自己的ipdui22端口进行访问,以便ssh到服务器上向数据库插入数据

  • private dms security group

  • 只允许vpc内部访问

  • private aurora security group

  • 允许web server security group对3306端口进行访问

  • 允许dms security group对3306端口进行访问

  • private redshift auro

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值