Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
小規模ワークロードにおけるRedshift Serverlessのログの取り扱い
Search
ikeda-masashi
September 27, 2022
Programming
690
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
小規模ワークロードにおけるRedshift Serverlessのログの取り扱い
JAWS-BigData 勉強会 #21
ikeda-masashi
September 27, 2022
More Decks by ikeda-masashi
See All by ikeda-masashi
コーディングエージェントに 独自Extension書かせてみた
mashiike
0
100
Redshiftを中心としたAWSでのデータ基盤
mashiike
0
370
運用の役立たないダッシュボードの作り方。
mashiike
3
1.3k
Amazon Aurora MySQL と Amazon Redshift の Zero-ETL Integration について使い所を考えてみた!
mashiike
0
1k
Warningアラートを放置しない!アラート駆動でログやメトリックを自動収集する仕組みによる恩恵
mashiike
6
5.6k
Prepalert ~Mackerelアラートにログや集計値を貼り付けてくれるトイル削減ツール~
mashiike
0
2.2k
人狼ゲームで考えるデータ基盤 〜データとはいったい・・・〜
mashiike
0
510
『エンタープライズ』という言葉の重さ 〜Data Vault 2.0をやめた2022年冬〜
mashiike
2
6.3k
Redshift ServerlessとProvisioned Cluster のちょっとした違い
mashiike
0
7.5k
Other Decks in Programming
See All in Programming
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
300
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
440
Security issues being discussed on Web Platforms
petamoriken
0
1.2k
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
190
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
160
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
190
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
Are APIs Still Relevant in the AI Era?
soyuka
0
300
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
160
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
390
wkhtmltopdfの次どうするか問題2026
willnet
2
1.6k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
GraphQLとの向き合い方2022年版
quramy
50
15k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Rails Girls Zürich Keynote
gr2m
96
14k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Curse of the Amulet
leimatthew05
3
15k
Ethics towards AI in product and experience design
skipperchong
2
380
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
680
Transcript
2022/09/26 19:03 - 19:28 BigData-JAWS 勉強会#21 面白法人カヤック 池田将士
@mashiike 小規模ワークロード向けのRedshift Serverlessのログの取り扱い
自己紹介 池田 将士 (@mashiike) 技術部 SREチーム所属 好きなAWSサービス Amazon S3 Amazon
Kinesis Data Firehose Amazon Redshift 2016年末に入社 入社当時はサーバーサイドエンジニア 現在はデータエンジニア活動 趣味 • ネットゲーム • OSSを書くこと
会社紹介 鎌倉の地にて、主にWeb技術を用いて 人の印象に深く残るような面白コンテンツを作る会社 ゲームからWebサービス、ミュージアムetc… 様々なことに挑戦
会社紹介 鎌倉の地にて、主にWeb技術を用いて 人の印象に深く残るような面白コンテンツを作る会社 ゲームからWebサービス、ミュージアムetc… 様々なことに挑戦 https://www.kayac.com/ より引用 本当に多種多様です。
こんな弊社では、 基本的には小規模ワークロード(ra3.4xlarge以上が必要にならない程度)
えっ!? ra3.xlplusより小さいサイズないの!!? むしろ・・・
そんな にとって嬉しい Redshift Serveless GA!
何が嬉しいのか? • 使ったコンピューティング性能に対する課金 Redshift Processing Unit (RPU) で測定 •
素早いスケーリング • 安心な可用性 (ra3.xlplus 1ノードで運用することもあったので・・・)
何が嬉しいのか? • 使ったコンピューティング性能に対する課金 Redshift Processing Unit (RPU) で測定 •
素早いスケーリング • 安心な可用性 (ra3.xlplus 1ノードで運用することもあったので・・・)
先日、9/22にてこういう内容で話したりも
第3回 AWSで実践!Analytics Modernization ~事例祭り編~ の資料より その内容を要約すると・・・ 安く使うためには!!! データ取り込み(LOAD)にRPUを使わない!!!
今回の内容は・・・ 小規模ワークロード向けに Redshift Serverlessで (料金がお安く) どうやってログデータを取り扱えば良いのか? ※仮に Kinesis Data Firehose経由で
1分に1回、取り込みに1秒かかるCopyコマンドを発行したとすると... 24 [分/day] ✕ 0.494 [USD/ RPU hour] ✕ 32 [RPU] = 379.392 [USD/day] ??? 真面目にやると多分お高くなる。
今回の内容は・・・ 小規模ワークロード向けに Redshift Serverlessで (料金がお安く) どうやってログデータを取り扱えば良いのか? ※仮に Kinesis Data Firehose経由で
1分に1回、取り込みに1秒かかるCopyコマンドを発行したとすると... 24 [分/day] ✕ 0.494 [USD/ RPU hour] ✕ 32 [RPU] = 379.392 [USD/day] ??? 真面目にやると多分お高くなる。 0.4 [hour/day] ✕ 0.494 [USD/ RPU hour] ✕ 32 [RPU] = 6.3232 [USD/day] 配信中は計算ミスしてましたすみません!
どうしたら、いいのでしょう! 方針は2つ!
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度
Redshift Spectrum Amazon S3上に存在するデータを直接参照する機能 before: after: https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-getting-started-usi ng-spectrum-create-external-table.html より引用 外部スキーマを定義して
外部テーブルを定義する (データの取り込みなし)
Redshift Spectrum Amazon S3上に存在するデータを直接参照する機能 before: after: https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-getting-started-usi ng-spectrum-create-external-table.html より引用 外部スキーマを定義して
外部テーブルを定義する (データの取り込みなし) 外部スキーマの外部テーブルに対してクエリが可能
ところで、Redshift Spectrumを使うとき、 ログだったら、使いますよね?パーティション https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-spectrum-external-tables.html より引用 1時間に1回起動したとして 6 USD/day =
180 USD/month
実は、このパーティション・・・
実は、このパーティション・・・ 実際にS3のオブジェクトがなくても登録できます。 つまり、1日に一回先読みで1日分入れてしまうと良い。何だったら、1年分でも・・・
実は、このパーティション・・・
実は、このパーティション・・・ AWS Glue経由でも追加できる。 AWS GlueのAPI経由で追加してしまえば、Redshift Serverlessのワークグループは起きないっぽい
Redshift Serverlessで Redshift Spectrumを使うときの節約ポイント 未来のパーティションを予め AWS Glue経由で たくさん登録しておく
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度 https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/materialized-view-create-sql-co mmand.html Redshift Spectrumのデメリット例: マテリアライズドビューのAUTO REFRESH が使えなくなる
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度
毎分 COPYコマンドで取り込むから、RPUをたくさん使うんだ! 1時間に1回とか低頻度でまとめて取り込めば良いのでは? そう思って、Kinesis Data Firehoseの設定を開くと。。。
• Kinesis Data Firehoseは止められない • 最大でも900秒ごと • 流量が多くなるともっと分割されて、COPY回数が増える
• Kinesis Data Firehoseは止められない • 最大でも900秒ごと • 流量が多くなるともっと分割されて、COPY回数が増える 一体どうしたら良いのか・・・
ところで、昔はどうやってKinesisに流れるログを取り込んでいたのか? 実は、Kinesis Firehoseが発表されたのは 2015.10 、 東京に来たのは2017年 https://aws.amazon.com/jp/blogs/aws/amazon-kinesis-firehose-simple-highly-scalable-data-ingestion/
ところで、昔はどうやってKinesisに流れるログを取り込んでいたのか? 実は、Kinesis Firehoseが発表されたのは 2015.10 、 東京に来たのは2017年 https://aws.amazon.com/jp/blogs/aws/amazon-kinesis-firehose-simple-highly-scalable-data-ingestion/ https://speakerdeck.com/fujiwara3/aws-devday-tokyo-2019?slide=14 弊社は、隙間家具OSS
『Rin』を使っていた(いる) 実は、 • Kinesis firehoseの取り込み再試行は最大2時間 • メンテナンス時に取り込みを止められない • 昔から使い続けてるから変えられない • etc… で、まだまだ現役だったりする。
そうだ・・・Rinならば S3 NotificationをSQSにずっと溜めておいて、 数時間に一回起動して『一瞬に並列で取り込めば良い!』
そうだ!!? 時間が来るまで、元のQueueに戻すLambda関数があればいい https://github.com/mashiike/sqpulser RinもLambdaで起動するようにすれば、並列 度とスケーリングも良い!
github.com/fujiwara/Rin とても便利です!おすすめです。
Redshift Serverlessで Copyを使って取り込むときは Kinesis Data Firehoseの送信先Redshiftの設定に頼らない 何か、取り込み間隔を制御できる仕組みを考えよう Rinを使うかは置いといて・・・
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度
方針1: Redshift Spectrum メリット: ほぼリアルタイムデータ デメリット: SUPER型やマテリアライズドビュー といった機能が活用しづらい 方針2: 低頻度にCopy
メリット: Redshiftの機能をフル活用できる デメリット: データの鮮度 https://aws.amazon.com/jp/about-aws/whats-new/2022/02/amazon-redshift-public-preview-streaming -ingestion-kinesis-data-streams/ 覚えていますか?このPreview どうやら外部スキーマに対する マテリアライズドビューのようです。 Previewでは手動更新のみですが、 GAではどうなるのでしょうか? もしかしたら、Redshift Serverlessの ワークグループが起動したタイミングで 24時間分しゅっと取り込んでくれるかもしれないで す? (願望)
• Redshift Serverlessでログを取り扱うときは要注意 • Kinesis Data Firehoseを使ってCopyすると高くなるかも? • 方針は2つ!節約のポイントはそれぞれあるよ! ◦
方針1: Redshift Spectrumを使う 節約ポイントはAWS Glue経由で未来のパーティションを! ◦ 方針2: 低頻度Copy 節約ポイントはKinesis Data Firehoseに頼らない取り込み方法を考え よう! (弊社は github.com/fujiwara/Rin の再登場!) • プレビュー中のKinesis Data Streamのストリーミング取り込みは ちょっぴり期待が高い! まとめ
えっ!?大規模ワークロードは? 小さいサイズのProvisiond Clusterを用意し、取り込みを続けるのが多分一番楽。 このときの注意点は、Proisiond ClusterとServerlessの暗号化を揃えるところ。