通过分析Bedrock日志来获取不同应用各自调用成本

在Athena查询语句SQL中,更新了Claude 3 Sonnect 3.5的价格(基于美西)。

本文已更新使用Athena Partition Projection功能,无须再手工管理数据分区。

一、背景

1、挑战

Amazon Bedrock提供多了多种基础模型的Model as a Service的调用能力,用户通过API调用Bedrock并指定要交互的模型,如Claude3的不同版本,即可获得模型返回结果。当属于多个团队、多个Workload的不同应用程序,分别调用Bedrock API时候,在AWS的账单中将仅包含从API传入的Token和生成的Token总数,但是没有提供按用户分账的功能。由此,需要一种方式能够帮助用户区分多个应用系统各自调用API的成本。

Continue reading “通过分析Bedrock日志来获取不同应用各自调用成本”

使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误

更新于2024年7月,加入5xx错误排查方法。

本文的分析实现两个目的:1)确认一个发布点上绑定多个CNAME时各自的流量;2)找到CloudFront控制台的监控面板上5xx报错的原因。

一、背景

1、关于CloudFront日志种类

Cloudfront日志分成Standard Log标准日志和Realtime Log实时日志。后者时效性好,但是需要Kinesis等日志处理方案,成本更高。对于排查一般的错误,使用标准日志保存到S3上,用Athena查询分析即可。

Continue reading “使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误”

EMR 101 Workshop 中文版(下篇)

因篇幅所限和单次实验时间所限,本文拆成上下两篇且只包含Spark/Hive/Presto。HBase、Iceberg、Hudi等将另外编写。

点击这里跳转到上篇:EMR 101 Workshop 中文版(上篇)

接上篇,继续使用上篇执行Spark任务的集群来完成实验。因篇幅所限和单次实验时间所限,本篇只写Spark/Hive/Presto,不包含HBase、Iceberg、Hudi等。

Continue reading “EMR 101 Workshop 中文版(下篇)”

开始使用 Managed Streaming for Kafka (MSK) Serverless 版本

一、背景

MSK的Serverless版本简单易用,无须设置大量复杂参数,点击几下鼠标,五分钟内即可创建完毕,可快速开始使用。

MSK Serverless默认是2个可用区,使用IAM认证,并开启TLS认证。因此需要在Kafka的客户端做额外配置。本文讲解如何连接到MSK Serverless版本。

Continue reading “开始使用 Managed Streaming for Kafka (MSK) Serverless 版本”

创建低成本的工作在VPC内网的OpenSearch单节点并配置用户名密码身份验证

摘要:本文介绍如何快速创建一个低成本的、工作在VPC内网的OpenSearch单节点集群,并允许Master用户密码身份验证,然后测试上传文档和搜索,并分别在VPC内网的EC2 Windows和开发者本机用Session Manager转发方式访问Kibana。

Continue reading “创建低成本的工作在VPC内网的OpenSearch单节点并配置用户名密码身份验证”

使用Athena分析在S3上的WAF Log

一、背景

在使用WAF保护业务系统的过程中,经常需要查询历史日志,分析特定防护对象的防护效果,查看拦截的请求,或查看访问特定URL的防护效果。这时候就需要用到WAF日志功能。

AWS WAF支持将日志输出到CloudWatch Log Groups,Kinesis,以及S3。将日志输出到CloudWatch Log Groups使用方便,但是存储成本高;将日志输出到Kinesis后可连接多种投递方式,灵活且延迟低,但技术架构稍微复杂。将WAF日志存储到S3数据湖,可实现最低低成本储存日志,通过Athena可快速方便查询。

Continue reading “使用Athena分析在S3上的WAF Log”

在Redshift上使用comment语句

一、背景

Redshift是用于大量数据分析的列式数据仓库。Redshift并不支持所有PostgreSQL的语法。

关于Redshift支持的的限制,可参考这里 Unsupported PostgreSQL functions 的文档。

在这篇文章中,明确提到Comment information functions是不被支持的。

不过,在Redshift上可使用comment命令来为数据库的表、列添加注释。

Continue reading “在Redshift上使用comment语句”

Redshift 跨库查询使用方法

一、背景

Redshift默认会创建名为dev的数据库,在其中又包含名为public的schema,然后用户在其中创建表和视图。如果希望在同一个Redshift集群内同时创建多个数据库,并且进行跨数据库访问,那么可参照本文的方法。

注:本功能仅支持RA3机型,老的dc2/ds2机型上不支持。

Continue reading “Redshift 跨库查询使用方法”

Kinesis入门之三部曲系列

注:2024年2月起,Kinesis Data Firehose也成为了独立产品Data Firehose。再加上之前成为独立产品的Managed Flink,Kinesis的三套件目前都成为了独立产品。

之前很多同学觉得Kinesis比较复杂,这里做一系列入门实验,方便快速采纳服务。点击每个标题后的连接跳转到对应文档。

典型的Kinesis数据流如下图。

场景1:KDF准实时流式入湖(1分钟级)+ 低频查询

使用Kinesis Data Firehose将数据导入S3数据湖,设置分区键,并转换为Parquet列格式。通过Athena可以极低的开销做低频查询。本方案成本低效果好,对现有系统不侵入,可作为现有大数据分析手段的补充。点击跳转:文档视频

场景2:KDF准实时流式入仓(1分钟级)+ 高频查询

使用Kinesis Data Firehose将原始数据以GZIP压缩方式在S3落盘,并按照60秒的间隔自动加载到数Redshift数据仓库。Redshift为MPP架构分布式数仓,支持通过JDBC方式调用,满足BI系统多并发的高频查询要求。点击跳转:文档

场景3:KDS实时流式入仓(秒级)+ 高频查询

使用Kinesis Data Stream将原始数据放在Kinesis流中,可使用多种消费方式包括KDA(托管Flink)、Redshift等方式消费。本方案采用Redshift的物化视图方式对Kinesis数据流进行消费,并通过自动刷新物化视图实现秒级的延迟。Redshift可满足BI系统多并发的高频查询要求。点击跳转:文档

Redshift Realtime Ingress 实时数据摄入之Kinesis Data Stream方案

注:2024年2月起,Kinesis Data Firehose也成为了独立产品Data Firehose。再加上之前成为独立产品的Managed Flink,Kinesis的三套件目前都成为了独立产品。

一、背景

Redshift实时数据摄取功能是面向需要实时数据分析客户、对报表低延迟要求极高的客户的最佳选择之一。与使用Data Firehose相比,延迟从1分钟到1分半提升到秒级。

Continue reading “Redshift Realtime Ingress 实时数据摄入之Kinesis Data Stream方案”

Kinesis Data Firehose 准实时写入数据到Redshift方案

注:2024年2月起,Kinesis Data Firehose也成为了独立产品Data Firehose。再加上之前成为独立产品的Managed Flink,Kinesis的三套件目前都成为了独立产品。

一、背景

Kinesis作为AWS流式数据服务的核心产品,支持多种数据服务作为投递对象。通过Kinesis Data Firehose将数据持久化落盘到S3并自动加载到Redshift数据仓库,可实现最低一分钟的分析间隔,且无需额外配置脚本或计划任务用于加载和数据转换。

本文通过自定义脚本生成测试数据,并加载到Redshift。

Continue reading “Kinesis Data Firehose 准实时写入数据到Redshift方案”

Kinesis Data Firehose 写入S3动态分区并转换为Parquet格式

注:2024年2月起,Kinesis Data Firehose也成为了独立产品Data Firehose。再加上之前成为独立产品的Managed Flink,Kinesis的三套件目前都成为了独立产品。

本文有关操作Demo请参考这个视频。本篇为具体技术配置过程。

一、背景和需求分析

1、Kinesis介绍

Kinesis简介From AWS官网:

Amazon Kinesis Data Firehose (KDF) 是将流数据加载到数据存储和分析工具的最简单方式。Kinesis Data Firehose是一项完全托管式服务,让您可以轻松地从数十万个来源中捕获、转换大量流数据,并将其加载到 Amazon S3、Amazon Redshift、Amazon OpenSearch Service、Kinesis Data Analytics、通用 HTTP 终端节点,以及 Datadog、New Relic、MongoDB 和 Splunk 等的服务提供商中,从而获得近乎实时的分析与见解。

2、Kinesis分区需求

测试Kinesis发送数据流时候,经常使用Kinesis控制台上的生成测试数据按钮,这个按钮将生成如下四个字段:

Continue reading “Kinesis Data Firehose 写入S3动态分区并转换为Parquet格式”