AWS数据管道用于在不同存储之间移动数据。 在本文中,我们将讨论如何在不同区域中部署数据管道以及区域之间的设置如何不同。
本文中数据管道的用例是从SQL Server检索数据并将其存储到AWS Dynamodb表中。 这种方法不是直接的实现途径。 以下是要完成的步骤,
1. SQL到S3存储桶— CopyActivity
2. S3存储桶到Dynamodb — HiveActivity
首先,需要将数据以CSV格式从SQL服务器获取到S3服务器,这就是CopyActivity。 其次,需要将数据从S3存储桶发送到Dynamodb表,这就是HiveActivity。
创建两个活动时,我们需要为两个活动指定资源。 在HiveActivity期间,应为Dynamodb的目标区域指定这些资源。 这是整体架构。
![](https://i-blog.csdnimg.cn/blog_migrate/85e6fda9b2e91f872ab46979fb1c3b3d.png)
让我们看看跨区域如何与以下每个方案一起使用:
方案1 :在同一地区爱尔兰地区部署S3,Dynamodb和管道
部署数据管道后,该管道运行良好。 在Dynamodb表或EMR群集中未指定任何区域。 由于数据管道与s3和Dynamodb在同一区域上运行,因此将配置默认值。 因此,管道工作顺利。
方案2 :在弗吉尼亚北部部署S3和Dynamodb,并在爱尔兰地区部署数据管道
当进行跨区域数据传输时,对于S3,如果未将区域指定给创建的EC2实例,则不会有问题,因为s3存储桶名称是唯一的。 但是对于Dynamodb,需要指定区域,并且需要指定EMR群集区域。
![](https://i-blog.csdnimg.cn/blog_migrate/8f330e4e0d9382ccbd8300f794d6f928.png)
对于数据管道EMR资源的设置,将m1.medium定义为核心实例类型,并以4.4.0给出EMR发布标签,并将区域指定为Frankfurt。 如果未为EMR群集指定区域,则数据管道将成功运行,但不会将数据发送到北弗吉尼亚州的Dynamodb。
方案3 :在法兰克福部署S3和Dynamodb,在爱尔兰部署Data Pipeline
在将S3&Dynamodb部署到法兰克福地区之后,由于该地区是2014年之后的,所以不需考虑一些因素,因此不支持某些配置。 如果要转移到支持新技术的区域,则需要考虑以下配置。
1. EMR的实例类型
2. AMI版本
3.从S3读取日志和数据
对于实例类型, 区域和需要更新的版本 不支持上一代实例 。 对于该区域中受EMR支持的实例,在本文中选择了m4.large实例类型。 并且AMI版本必须为5.13.0或更高版本 。
读取日志时,由于AWS Signature 4错误(AWS4-HMAC-SHA 25),它将不支持数据管道。 为避免此问题,请在爱尔兰等其他地区创建另一个S3存储桶。 并且将日志定向到另一个区域将可以简单地解决该问题。
![](https://i-blog.csdnimg.cn/blog_migrate/147a4c2802fcbd6152ea50c1ce175252.png)
此外,通过在HiveActivity期间未为EMR定义区域,将由于给出AWS4-HMAC-SHA 25错误而失败。 如果遇到任何错误,请发表评论并感谢您的阅读。
From: https://hackernoon.com/how-aws-data-pipeline-configurations-are-different-from-each-region-omhm3x0m