首页 > 解决方案 > Amazon Kinesis Firehose 是否需要扩展?

问题描述

我的目标是将通过 SNS 订阅收到的数据存储在 Amazon Redshift 中。我已经成功地使用 lambda 函数存储数据,只需创建一个 Redshift 连接并调用准备好的插入语句。虽然 lambda 确实重用了连接,但我使用连接池来确保我不会丢失连接并最终花费 5-10 秒重新连接。

这个过程非常适合小规模的测试,我并没有接近使用我所有的 lambda 并发。但是,当我开始订阅一个相当活跃的 SNS(高达 100 条记录/秒)时,我担心这个流程可能会导致问题。

虽然我知道 aws 文档和许多在线论坛因为它的可扩展性而推荐 firehose,但我的首要任务之一是降低成本,而 firehose 似乎非常昂贵(firehose 的价格 + 中间 s3 存储桶的成本)。有没有人有任何尝试通过以编程方式存储在 Redshift/其他数据库中来绕过 firehose 的经验?

标签: aws-lambdaamazon-redshiftamazon-kinesisamazon-kinesis-firehose

解决方案


由于 SNS 通过 Kinesis Data Firehose 订阅添加了对消息存档和分析的原生支持,您应该能够简化您的架构。在您的情况下,您只需将 Redshift 配置为 Firehose 传输流的目标,然后将此流直接订阅到您的 SNS 主题。

更多信息: https ://aws.amazon.com/about-aws/whats-new/2021/01/amazon-sns-adds-support-for-message-archiving-and-analytics-via-kineses-data-firehose -订阅/


推荐阅读