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
サーバーレスで始める ゆるふわデータ基盤 - noteの事例 -
Search
Retu Fukui
September 12, 2020
Technology
8.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバーレスで始める ゆるふわデータ基盤 - noteの事例 -
2020/09/12 JAWS SONIC 2020 & MIDNIGHT JAWS 2020にてnoteにおけるデータ基盤の事例をお話しました。
Retu Fukui
September 12, 2020
More Decks by Retu Fukui
See All by Retu Fukui
Amplifyを使ったWebサイト構築 〜 Nstockの事例を添えて 〜
fukuiretu
0
310
開発生産性と品質の横断的な課題を解決する!エンジニアリング支援室の挑戦 -1Qで取り組んだことを添えて-
fukuiretu
2
7.6k
EMになって最初の失敗談 - コミュニケーション編 -
fukuiretu
2
6.8k
問い合わせ対応当番を自動化で業務効率化している話
fukuiretu
0
980
191109_sacss.pdf
fukuiretu
1
2.6k
noteをNuxt.jsで再構築した話 -2nd-
fukuiretu
6
13k
CloudFront use cases - noteの事例 -
fukuiretu
0
8.9k
181117_wannatech.pdf
fukuiretu
1
590
noteをNuxt.jsで再構築した話
fukuiretu
22
58k
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
1.3k
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
420
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
470
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.3k
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
140
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
240
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
280
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
190
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.6k
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
【NRUG vol.18】KubernetesにおけるNew Relicデータ取得量削減の考え方
nrug_member
0
170
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.3k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
It's Worth the Effort
3n
188
29k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
The untapped power of vector embeddings
frankvandijk
2
1.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Deep Space Network (abreviated)
tonyrice
0
210
WENDY [Excerpt]
tessaabrams
11
38k
Making Projects Easy
brettharned
120
6.7k
From π to Pie charts
rasagy
0
210
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Transcript
αʔόʔϨεͰ࢝ΊΔ ΏΔ;Θσʔλج൫ OPUFͷࣄྫ +"8440/*$&.*%/*()5+"84 Ҫ
Ҫ | @fukuiretu • noteגࣜձࣾ • ΤϯδχΞ • ϑϩϯτΤϯυ
/ όοΫΤϯυ / ΠϯϑϥͱͳΜͰΔϚϯ • ੨ࡏॅ • ϦϞʔτϫʔΧʔ ɾJAWS-UG ੨ࢧ෦ॴଐ @fukuiretu @fukuiretu fukuiretu
アジェンダ 1. ܦҢ 2. ߏங 3. ӡ༻ 4. ࠓޙͷ՝ɾల 5.
·ͱΊ ※AWSʹؔ͢Δొਓͷࡉ͔͍આ໌ંΓ·͢
50%0ޙೖΕ ΫϦΤΠλʔ͕จষϚϯΨɺࣸਅɺԻΛߘ͢Δ ͜ͱ͕Ͱ͖ɺϢʔβʔͦͷίϯςϯπΛָ͠ΜͰԠ ԉͰ͖ΔϝσΟΞϓϥοτϑΥʔϜ
noteͰΛΑͼ cakesʹ࿈ࡌ͞Εͨޙɺ ॻ੶ԽɺυϥϚԽɻ ిࢠࡶࢽʮจܳΧυΧϫʯͱ noteͰಉ࣌࿈ࡌΛͨ͠ޙɺॻ ੶ԽɺυϥϚԽ note༗ྉߪಡऀݶఆͷ ࿈ࡌΛॻ੶Խ ຖ৽ฉͷ࿈ࡌখઆΛ 10ޙʹnoteͰ࿈ࡌ
ͦͷޙɺॻ੶ԽɺөըԽ noteͷਓؾ࿈ࡌΛ ॻ੶Խ noteͰΛΑΜͩ هࣄΛॻ੶Խ ΫϦΤΠλʔͷ֗ɺnote͔Βੜ·Εͨ࡞
アジェンダ 1. ܦҢ 2. ߏங 3. ӡ༻ 4. ࠓޙͷ՝ɾల 5.
·ͱΊ
2018ࠒ͔Βσʔλੳʹ ຊࠊΛೖΕ࢝ΊΔ
データ基盤構築前のトラッキング⽅法 • ΞϓϦέʔγϣϯ্ʹτϥοΩϯά༻ͷAPI • ΞΫςΟϏςΟܥͷϩάͯ͢RDBʹอଘ
noteの急激な成⻑
成⻑とともに出てきた課題 • ΞϓϦέʔγϣϯٴͼDBͷෛՙ͕େʹ • ΫΤϦ݁Ռ͕ฦͬͯͣ͜σʔλநग़͕ࠔ
対処療法 • ύʔςΟγϣχϯά͕͞Ε͓ͯΒͣίετ͕େʹ ‣ ύϑΥʔϚϯε͍·͍ͪ… • ϧʔϧཱ͕֬͞Ε͓ͯΒͣσʔλ͕ࢄࡏ ՝ ඞཁʹԠͯ͡S3ʹDBͷσʔλΛΤΫεϙʔτ͠ɺ AthenaͰநग़
解決すべき課題 • ΞϓϦέʔγϣϯٴͼDBͷෛՙ͕େʹ • ύʔςΟγϣχϯά͕͞Ε͓ͯΒͣίετ͕େʹ • ϧʔϧཱ͕֬͞Ε͓ͯΒͣσʔλ͕ࢄࡏ σʔλج൫ͷधཁ͕ߴ·Δ
アジェンダ 1. ܦҢ 2. ߏங 3. ӡ༻ 4. ࠓޙͷ՝ɾల 5.
·ͱΊ
開発体制
⽅針 ӡ༻ϦιʔεΛ࠷খʹ = ։ൃʹઐ೦
どうしたら運⽤リソースを最⼩にできるか • ӡ༻ͷ؆ૉԽ • Φʔτεέʔϧ • Մ༻ੑ ӡ༻ϦιʔεΛ࠷খʹ = ։ൃʹઐ೦
αʔόʔϨεͷػӡͰ??
どうしたら運⽤リソースを最⼩にできるか • ӡ༻ͷ؆ૉԽ • Φʔτεέʔϧ • Մ༻ੑ ӡ༻ϦιʔεΛ࠷খʹ = ։ൃʹઐ೦
αʔόʔϨεͷػӡͰ?? αʔόʔϨεΞʔΩςΫνϟͰɺ ϛχϚϜʢΏΔ;Θʣʹελʔτ
アーキテクチャの全体像 ։ൃظؒ: 3ϲ݄ʢௐࠪɾݕূؚΉʣ
データ集約 ᶃ ᶄ ᶃ AWS Service ProxyΛར༻ͯ͠FirehoseʹPut ϝϦοτ: Lambdaෆཁ σϝϦοτ:
σʔλߏ͕ෳࡶʹͳΔͱVTLͰͷϚοϐϯά͕େม ᶄ Firehoseͷड৴σʔλมΦϓγϣϯΛར༻͠ɺ 1ϨίʔυຖʹվߦίʔυΛೖΕΔ ※Firehoseͷ্ݶʹҙʢ౦ژϦʔδϣϯ: 1000Ϩίʔυ/s, 1000τϥϯβΫγϣϯ/s, 1MiB/sʣ
データ整形 ᶃ ᶄ ᶃ S3ͷPut EventͰσʔλܗ༻ͷLambdaΛൃՐ ᶄ ओʹҎԼͷॲཧΛߦ͏ • AthenaͷύʔςΟγϣχϯάͷͨΊʹHiveܗࣜͷS3
Keyੜ ‣ e.g. content_type=action_logs/year=YYYY/month=MM/day=DD/hour=HH • Referrerͷղ • UserAgentͷղ • σʔλܕͷௐ
アジェンダ 1. ܦҢ 2. ߏங 3. ӡ༻ 4. ࠓޙͷ՝ɾల 5.
·ͱΊ
利⽤しているツール ߏཧ / σϓϩΠ AWS CDK • CloudWatch Logs •
CloudWatch Alarm • AWS Chatbot ࢹ
良かった / ⾟かった話 ! ྑ͔ͬͨ " ਏ͔ͬͨ αʔόʔͷ͓कΓ΄΅Կͯ͠ͳ͍ ϝτϦΫεΛΈ֤ͯछαʔϏεͷ্ݶʹ͔͔Βͳ͍͔͚ͩࢹ AWSͰো͕ى͖Δͱ͢ज़͕ͳ͍
e.g. 2020/04/20ʹൃੜͨ͠SQSͷେنো
当初の課題は解決できたのか ՝: ΞϓϦέʔγϣϯٴͼDBͷෛՙ͕େʹ ΞϓϦέʔγϣϯٴͼDBͱͨ͠ͷͰ΄΅ղܾʢҰ෦ҠߦͰ͖͍ͯͳ͍ʣ
当初の課題は解決できたのか ՝: ύʔςΟγϣχϯά͕͞Ε͓ͯΒͣίετ͕େʹ ύʔςΟγϣχϯάͨ͠ͷͰղܾ ΫΤϦ݁ՌετϨεແ͘ฦͬͯ͘ΔΑ͏ʹ
当初の課題は解決できたのか ՝: ϧʔϧཱ͕֬͞Ε͓ͯΒͣσʔλ͕ࢄࡏ σʔλύΠϓϥΠϯཱ͕֬͞ΕͨͷͰղܾ
アジェンダ 1. ܦҢ 2. ߏங 3. ӡ༻ 4. ࠓޙͷ՝ɾల 5.
·ͱΊ
ॳͷ՝΄΅ղফ͕ͨ͠ɺ ৽ͨͳ՝…
課題1 • ύʔςΟγϣϯͷ૿ͰΫΤϦͷύϑΥʔϚϯεʹӨڹ • ίετ͔͔Δʢैྔ՝ۚʣ AthenaͷύʔςΟγϣχϯάΛ GlueͷΫϩʔϥʔͰੜ͢ΔͷΛΊ͍ͨ
課題1の展望 • DDLͰprojection.xxxͱ͍͏ଐੑΛఆٛ͢Δ͚ͩ • ผ్ྉ͔͔ۚΒͳ͍ Partition ProjectionΛར༻͢Δ
課題2 • όονΠϯϙʔτ͕Ͱ͖ͳ͍ίετ૿ • Kinesis Firehoseͷ্ݶʢͲ͜·Ͱ؇ͯ͠Β͑Δ͔ෆಁ໌ʣ • Τϥʔ͕ى͖ͨࡍͷϋϯυϦϯάɾϦΧόϦʔ͕͍͠ API Gateway
ͱ Kinesis Firehoseؒʹ Ϋογϣϯ͕ͳ͍
課題2の展望 APIࣗલͰཱͯͯkinesis-agent(or Fluentd)Ͱ όονΠϯϙʔτ͢Δ
課題3 • ݱঢ়ఆظతʹόονͰS3Πϯϙʔτ͍ͯ͠Δ ‣ ࣌ؒͱख͕͔͔ؒΔ RDB্ͷσʔλΛAthenaͰΧδϡΞϧʹ ݁߹͍ͨ͠
課題3の展望 ϑΣσϨʔςουɾΫΤϦΛར༻͢Δ ※·ͩpreviewͳͷͰਖ਼࠲ػத
課題3の展望 https://aws.amazon.com/jp/blogs/news/query-any-data-source- with-amazon-athenas-new-federated-query/
課題4 σʔλΣΞϋεϚʔτʹ૬͢ΔσʔλΛ ༻ҙ͠རศੑΛ্͍ͨ͠
課題4の展望 • CTASΛར༻ͨ͠Parquet(ྻࢦϑΥʔϚοτ)ͷม • BigQuery Omniͷར༻
アジェンダ 1. ܦҢ 2. ߏங 3. ӡ༻ 4. ࠓޙͷ՝ɾల 5.
·ͱΊ
まとめ ॳͷ՝΄΅ղফͰ͖ɺ ӡ༻ίεταʔόʔϨεʹΑͬͯ ظ௨Γେ෯ʹܰݮͰ͖ͨ
• αʔϏεنʹΑͬͯྉۚίετ͕ͶΔՄೳੑ͋Γ • ো࣌جຊతʹ͓فΓ͢Δ͔͠ͳ͍ まとめ ͳʹΛ༏ઌ͖͔͢Λख़ߟ͢Δ αʔόʔϨεͷτϨʔυΦϑ ʢஅࡐྉ: αʔϏεಛੑɺαʔϏεنɺνʔϜͷφϨοδetc..ʣ
͋Γ͕ͱ͏͍͟͝·ͨ͠