Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DuckDBを用いたS3上のALBアクセスログの探索
Search
ryu-ki
April 15, 2025
0
55
DuckDBを用いたS3上のALBアクセスログの探索
ryu-ki
April 15, 2025
Tweet
Share
More Decks by ryu-ki
See All by ryu-ki
令和のミニ四駆!? AWS DeepRacer で強化学習に入門してみた
ryuki0947
1
220
新着ニュースを毎朝メール通知する仕組みを作ってみた
ryuki0947
2
310
Amazon Bedrock Flowsで ニュース記事のおすすめ度を測ってみた
ryuki0947
0
110
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
How to train your dragon (web standard)
notwaldorf
92
6.1k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Documentation Writing (for coders)
carmenintech
71
4.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Building Adaptive Systems
keathley
43
2.6k
Site-Speed That Sticks
csswizardry
10
630
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
YesSQL, Process and Tooling at Scale
rocio
172
14k
What's in a price? How to price your products and services
michaelherold
245
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Transcript
DuckDBを用いた S3上のALBアクセスログの探索🦆 2025/04/16(水) 豊洲会
自己紹介 ┃所属:TIS株式会社 ‐ 年次:2年目(24卒) ‐ 担当業務:社内サービス(AWS/Terraform/React) ┃趣味:国内旅行・競馬 ┃片思いのAWSサービス:Amazon Bedrock 2
井町 瑠貴 (いまち りゅうき) 昨年末からQiitaへの記事投稿を 始めました!(AWS・生成AIなど) クォータ制限を引き上げてもらえません!
はじめに ┃本日お話しすること ‐ DuckDBについて ‐ DuckDBでALBアクセスログを確認する流れ ┃お話ししないこと ‐ DuckDBの詳細な仕組み ‐
作成したスクリプトの詳細 3
担当業務 ┃AWSで構築された社内サービスの保守運用業務 ‐ 月次作業 ‐ アラート対応 ┃アラート発生時、以下の手順で該当ALBアクセス ログを確認 ‐ マネコンからS3バケットを開く
‐ オブジェクト更新時間から、該当ALBアクセスログが 含まれていそうなオブジェクトをダウンロード 4
アラート対応 ┃アラート発生時、ALBアクセスログを確認 ①マネコンからS3バケットを開く 5
アラート対応 ┃アラート発生時、ALBアクセスログを確認 ②更新時間から、該当ログが含まれていそうな オブジェクトをダウンロード 6
アラート対応 ┃アラート発生時、ALBアクセスログを確認 ③ローカルで解凍・確認 ※なければ②に戻る 7
アラート対応 ┃アラート発生時、ALBアクセスログを確認 ③ローカルで解凍・確認 ※なければ②に戻る 8 手間すぎる! 何とかならないか?
あるブログとの出会い ┃S3にあるALBログの調査はAthenaより DuckDBのほうが簡単 ‐ https://road288.hatenablog.com/entry/2024/11/06/1 13954 9 DuckDBってなに?
DuckDB ┃組み込み型OLAPデータベース管理システム(OSS) ‐ https://duckdb.org/ ┃CSV・JSON・Parquet・Excelなど、様々なファイル 形式のインポート・エクスポートに対応 ‐ pythonをはじめとした多様な言語でAPIが利用可能 10
なぜDuckDB? ┃クエリ実行にコストがかからない ‐ Athenaだとコストを気にしながらクエリ実行 ‐ 柔軟な検証を身軽に行える ┃学習コストが少ない ‐ Python(Pandas)の事前知識あり ┃大規模なデータは扱わない
‐ ターゲットとなるデータはすでにある程度絞れている 11
DuckDB操作|データインポート ┃左図のようなコマンドで テーブル作成が可能 ‐ 「パーティション射影」で検索 ┃ログファイルパスはワイルド カードで複数選択可能 12
DuckDB操作|テーブル出力 13 ┃以下コマンドでインポートしたデータを取得 できていることを確認
Pythonによる操作|データインポート ┃左図のような記述でテーブル 作成が可能 ‐ 本例ではCloud9で実施 14
Pythonによる操作|テーブル出力 15 ┃インポートしたデータを csvで取得できている
スクリプト化 16 ┃左図のようなシェルスクリプトで 簡単実行できるように ┃指定期間内の、条件に合致する ALBログを自動抽出
今後の展望 ┃ 今回はCloud9上で実装したが、Lambdaで実装したい ‐ Lambdaレイヤーで簡単に導入可能と思われる ‐ 昨晩試してみた • 「【Lambda】Lambda LayerへのDuckDBライブラリの追加方法」を
編集 - Qiita • 「【DuckDB】DuckDBを用いてS3のデータを操作するLambdaを 作ってみた」を編集 – Qiita ┃S3 Tables(Iceberg)にアクセスできる(らしい) ‐ どのような使い勝手か知らないので試してみたい • 【Iceberg】Apache Icebergとは?~S3 Tablesから触ってみた~ #AWS - Qiita 17
まとめ ┃DuckDBは、軽量で様々なデータ形式に対応しており、 データリーダーとして優秀 ┃DuckDBを使うと、簡単にS3バケットのデータを 取得・処理することができる ┃ユースケースに応じて適切にツール(Athenaなど)を 使い分けることが重要 18