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
しくじり先生 アドネットワーク開発でしくじった話 / yapc8oji
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yuma iwasaki
July 03, 2016
Programming
2.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
しくじり先生 アドネットワーク開発でしくじった話 / yapc8oji
yuma iwasaki
July 03, 2016
More Decks by yuma iwasaki
See All by yuma iwasaki
僕のキャリアとワインと鍋 / daikichijojipm
suthio
11
7.8k
「Laravel Novaの適切な使い方を考えてみる」 / laravel meetup tokyo vol 11
suthio
1
2.1k
バッチをGoにリプレイスして高速化した話 / GoGoGolangEdition!
suthio
2
29k
本当は怖くない AWS Lambda / speee_cafe_meetup06
suthio
2
900
広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05
suthio
3
1.9k
初めての本当の意味でのチーム開発 / pmjp 2016-12-03
suthio
4
1.9k
AWSインフラ構築ツールとしてのTerraform / SpeeeKaigi
suthio
1
2.3k
広告配信サーバーの設計について / Speee Engineer Meeting 2016-06-22
suthio
5
2.8k
Other Decks in Programming
See All in Programming
不幸な GC
chencmd
0
840
源内ハンズオン概要編
hideg
0
230
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
480
業務時間外もAIに働いてもらう話
colorful12
3
9.4k
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
280
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
260
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
410
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
530
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
270
[DroidKaigi 26] How We Moved from Android Studio to Slack
thisaay
0
110
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
590
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
250
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
360
RailsConf 2023
tenderlove
30
1.5k
Prompt Engineering for Job Search
mfonobong
0
430
The Curse of the Amulet
leimatthew05
2
14k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Are puppies a ranking factor?
jonoalderson
2
3.9k
Technical Leadership for Architectural Decision Making
baasie
3
550
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Claude Code のすすめ
schroneko
67
230k
Transcript
͘͠͡Γઌੜ ΞυωοτϫʔΫ։ൃͰͬͨ͘͠͡ 2016-07-03 YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa
ࣗݾհ • GitHub @suthio • Twitter @yuma_iwasaki • Company: Speee
ࣗݾհ
ΞδΣϯμ • Πϯλʔωοτࠂʹ͍ͭͯ • γεςϜ֓ཁ • ৴αʔόʔઃܭ • ͬͨ͘͠͡
Έͳ͞Μʂ Πϯλʔωοτࠂ ͖Ͱ͔͢ʁ
Έͳ͞Μʂ Πϯλʔωοτࠂʹ ׳Εͯ·ͤΜ͔ʁ
None
None
None
ੈքͰҰ൪ࠂ͕ଟ͍αΠτͬ ͯݟͨ͜ͱ͋Γ·͔͢ʁ
http://www.milliondollarhomepage.com/
http://www.milliondollarhomepage.com/
ు͖ͦ͏ɻ
ࠂͷΠϝʔδ • ᓔಃ͍͠ɺअຐ • ΫϦοΫͨ͘͠ͳ͍
Γ߹͍ʹฉ͍ͨ • Youtubeૣ͘ݟ͍ͨ • ؒҧ͑ͯԡ͢ͱΠϥοͱ͢Δ • ͳΜ͔͍ͭͯ͘Δͷා͍ʢϦλʔήςΟϯάʣ
ੲ͔Β͜͏Ͱ͚ͨͬ͠ʁ
None
2010͔Βͷ 4ϲ݄ຖͷΫϦοΫͷਪҠ
ΫϦοΫ ࣮֬ʹԼ͕͍ͬͯΔ
http://www.startrise.jp/columuns/view/4140
http://blog.somewrite.jp/case/native-ads-work/
Ϣʔβʔແҙࣝʹ ࠂΛແࢹ͍ͯ͠Δ
Ϣʔβʔ͕ݡ͘ͳͬͨ
ΫϦοΫ͞Εͳ͘ͳΔͱ Ͳ͏ͳΔͷ͔ʁ
ΫϦοΫ͞Εͳ͘ͳΔͱʁ • ϝσΟΞɿऩӹੑͷԼ • ࠂओɿϢʔβʔʹಧ͚͍ͨϝοηʔδ͕ ಧ͚ΒΕͳ͍
݁ՌతʹϢʔβʔʹ ྑ࣭ͳهࣄΛ ఏڙͰ͖ͳ͘ͳͬͯ͠·͏
Ϣʔβʔ͔ΒݏΘΕͳ͍ܗͰ ࠂΛग़͢ඞཁ͕ग़͖ͯͨ
ͦ͜ͰωΠςΟϒΞυ
ωΠςΟϒΞυʁ • ϢʔβʔʹετϨεΛ༩͑Δ͜ͱͳ͘ɺ ࠂΛग़ߘͰ͖Δ • σΟεϓϨΠࠂͷ3ഒۙ͘ͷΫϦοΫ • ʹରͯ͠ೃછΜͩࠂΛ ఏڙ͢Δ͜ͱ͕Մೳ
http://markezine.jp/article/detail/21916
http://markezine.jp/article/detail/21916
ϨίϝϯυΟδΣοτͱʁ • ϢʔβʔʹαΠτͷϨίϝϯυهࣄͱ ࠂΛಉ࣌ʹ৴ɺදࣔ • ͷܝࡌഔମදࣔϑΥʔϚοτ͔Βɺ ϢʔβʔભҠઌ͕ίϯςϯπͰ͋Δ͜ͱΛ ࣗવͱظ͍ͯ͠Δঢ়ଶͱͳ͍ͬͯΔ
ϨίϝϯυΟδΣοτͱʁ • ͱ͍͏͜ͱ༷ʑͳύλʔϯͷϨίϝϯυ͕ ඞཁɻ • ݱࡏهࣄ͝ͱʹϨίϝϯυΛߦ͍ͬͯΔ
ωΠςΟϒΞυͷ ৴γεςϜ
None
Ϩίϝϯυ݁Ռ৴ϑϩʔ • Ϋϩʔϥʔ͕ຊจΛऔಘ • EMRʹͯຊจղੳ • Ϩίϝϯυ݁ՌΛ৴ใͱ߹Θͤͯ DynamoDBʹWrite • ΞΫηε࣌ʹDynamoDBΛࢀরͯ͠
Ϩίϝϯυ݁ՌΛ৴
৴αʔόʔʹ͍ͭͯ
None
৴αʔόʔඞཁཁ݅ • ResponseΛ100msҎʹฦ͢ඞཁ͕͋Δ • هࣄຖʹग़͢ϨίϝϯυσʔλΛม͑Δ • ߴτϥϑΟοΫʹ͑͏Δ
৴αʔόʔ࡞Δ࣌ʹ ߟ͑ͨ͜ͱ • 1͙Β͍ࠓͷઃܭͷ··͑ΒΕΔΑ͏ʹ ͓͖͍ͯͨ͠ • ։ൃظ͕͍ؒʢ1ϲ݄ʣͷͰෳࡶͳ࣮ ͨ͘͠ͳ͍
࠷ॳͷઃܭ
None
Redisͱʁ • ϝϞϦ্ʹKey-ValueετΞ(KVS)Λߏங͢Δ ͜ͱ͕Ͱ͖ΔιϑτΣΞ • ϝϞϦ্ʹσʔλΛ֨ೲ͢ΔͷͰɼඇৗʹߴ ʹσʔλͷॻ͖ࠐΈɾಡΈࠐΈΛߦ͏͜ͱ ͕Ͱ͖Δ • σʔλͷӬଓԽ͕Մೳ
࠷ॳͷઃܭ • masterRedisΛ༻ҙͯ͠ϨϓϦέʔγϣϯ • slaveRedisϩʔΧϧʹ࣋ͭ
None
͕ൃੜ
σʔλྔΛܭࢉͨ͠Βɺ ϝϞϦʹΓΒͳ͍͜ͱ͕ ໌
RedisͰ࣮͢Δ߹ɺ 1ޙʹ120GBͷϝϞϦ͕ ඞཁͳఆͩͬͨ
ผͷ࣮Λߟ͑ͨ
None
DynamoDBͱʁ • શϚωʔδυܕͷ NoSQLͷσʔλϕʔεαʔϏε • ࠓͷ৴γεςϜͰKVSͱͯ͠༻͍ͯ͠Δ
DynamoDBͷಛ • ཧָ͕ʂ • ༰ྔͷ૿ՃΛؾʹ͠ͳͯ͘ྑ͍ • ݕࡧɺूܭऑ͍ • ͍ϨΠςϯγ
DynamoDBͷϢʔεέʔε • KVSͱͯ͠ • ࠂήʔϜͳͲͷߦಈཤྺDBͱͯ͠ • ϞόΠϧΞϓϦͷόοΫΤϯυͱͯ͠ - ϞόΠϧΞϓϦ͔ΒࢀরͰ͖ΔDBͱͯ͠
http://www.slideshare.net/AmazonWebServicesJapan/ 20150805-aws-blackbeltdynamodb
৴αʔόʔઃܭ ֆΛೖΕΔɻ
৴αʔόʔઃܭ
Ͳ͏ͬͯɺDynamoDBʹ ৴σʔλΛೖΕ͍ͯΔ͔
None
ݩʑͷఆ
DynamoDB ॻ͖ࠐΈΩϟύγςΟෆ
SleepೖΕͳ͕ΒϦτϥΠ
SleepೖΕͳ͕ΒϦτϥΠ
None
Write࣌ͷӡ༻ํ๏ • 1ʹҰLambda͕ىಈ͢ΔΑ͏ʹεέ δϡʔϦϯάͯ͠SQS͕ಈ͘Α͏ʹ͢Δ • ୠ͠ɺLambda5ʹҰͷ εέδϡʔϦϯά͔͠࡞Εͳ͍
ΠϕϯτιʔεΛ 5ͭ࡞ͬͯղܾ
cron(*/5 * * * ? *) cron(1,6,11,16,21,26,31,36,41,46,51,56 * * *
? *) cron(2,7,12,17,22,27,32,37,42,47,52,57 * * * ? *) cron(3,8,13,18,23,28,33,38,43,48,53,58 * * * ? *) cron(4,9,14,19,24,29,34,39,44,49,54,59 * * * ? *)
None
ҋͬΆ͍
ঘɺࠓղܾࡁͰͨ͠
rate(1 minutes)
None
None
DynamoDBΛӡ༻͢Δ্Ͱ ؾΛ͚ͭΔ͜ͱ
ΩϟύγςΟϢχοτ
ΩϟύγςΟϢχοτͱʁ • ͬ͘͟Γݴ͏ͱͲΕ͚ͩॻ͖ࠐΊΔ͔ɺ ͲΕ͚ͩಡΈࠐΊΔ͔ΛܾΊΔͭ
ΩϟύγςΟϢχοτͱʁ • ߴΊʹઃఆ͢Δͱ͓͕͔͔ۚΔɻ • Ίʹઃఆͯ͠ΩϟύγςΟϢχοτҎ্ ༻͢Δͱॲཧʹࣦഊ͢Δ • ಡΈࠐΈɺॻ͖ࠐΈݸผʹઃఆ͢Δ
None
͋Εɺ͑ͯΔͷʹ͑ͯΔʁ
ͳͥ͜Μͳ͜ͱ͕ى͜Δͷ͔ʁ
όʔετΩϟύγςΟ • ར༻͞Εͳ͔ͬͨύʔςΟʔγϣϯͷΩϟύ γςΟΛաڈ300ඵ·ͰϦβʔϒ͞ΕΔ͘͠ Έɻ • όʔεττϥϑΟοΫʹ͑ΒΕΔɻ
None
DynamoDBͷಡΈࠐΈྔ͕ ಡΊͳ͍
ࠓճͷ৴αʔόʔͷઃܭͩ ͱɺϦΫΤετ͕૿͑Ε૿ ͑Δ΄ͲɺDynamoDBͷෛՙ ૿͍͑ͯ͘༧ఆ
ReadରࡦҊ • ༧ΊଟΊʹΩϟύγςΟϢχοτΛઃఆͯ͠ ͓͘ • DynamoDBͷReadʹࣦഊͨ͠Β༧Ί༻ҙͯ͠ ͓͍ͨɺσϑΥϧτࠂΛग़͢ • DynamoDBͷΩϟύγςΟϢχοτΛಈతʹ มߋ
DynamoDBͷ AutoScaleΛ͠Α͏
None
None
LambdaͰղܾ
http://dev.classmethod.jp/etc/auto- scaling-dynamodb-by-lambda/
None
88888888888888888
None
ͬͯ͘͠͡·͢
Ͳ͕͍ͬͯ͘͜͠͡Δ͔ʁ
αϒγεςϜͷҰ෦Λ ϦϦʔεޙ͙͢ʹ ࡞Γ͍ͯ͠Δ
None
͜ͷ։ൃɺϦϦʔε༧ఆ͕ 3िؒ৳ͼ·ͨ͠
None
࠷ݶӡ༻͢Δ্Ͱ ຊඞཁͳ͔ͬͨ ͷୡ
࠷ॳʹ࡞ͬͨγεςϜߏਤ
None
࠷ॳ͔Β͜ΕΛ࡞Ζ͏ͱͨ͠
݁ՌతʹϦϦʔε͕ 3िؒ৳ͼͨ
ϦϦʔε͕৳ͼͨݪҼ • ࠷ॳ͔Β࡞Ζ͏ͱͨ͠γεςϜ͕େ͖͗ͨ͢ • ٻΊ͍ͯͨੑೳ͕ߴ͗ͯ͢ɺ༨ܭʹ ࣌ؒΛͬͯ͠·ͬͨɻ • ςετΛॻ͍ͯͳ͔ͬͨͷͰɺσάϨ͕ සൃͯ͠͠·ͬͨ •
ཧը໘ͷ։ൃʹ༧Ҏ্ͷ͕͔͔࣌ؒͬͨ
ϦϦʔε͕৳ͼͨݪҼ • ࠷ॳ͔Β࡞Ζ͏ͱͨ͠γεςϜ͕େ͖͗ͨ͢ • খ͘͞࡞ΕΑ͔ͬͨ
ϦϦʔε͕৳ͼͨݪҼ • ٻΊ͍ͯͨੑೳ͕ߴ͗ͯ͢ɺ༨ܭʹ ࣌ؒΛͬͯ͠·ͬͨɻ • ͦͷੑೳ͕ࠓຊʹඞཁ͔ ֬ೝ͠Α͏
ϦϦʔε͕৳ͼͨݪҼ • ςετΛॻ͍ͯͳ͔ͬͨͷͰɺσάϨ͕ සൃͯ͠͠·ͬͨ • ࠷ݶͷςετॻ͜͏
ϦϦʔε͕৳ͼͨݪҼ • ཧը໘ͷ։ൃʹ༧Ҏ্ͷ͕͔͔࣌ؒͬͨ • શ෦࡞ΔΜ͡Όͳ͘ɺ ӡ༻ͰΧόʔͰ͖Δͷ ͋ΔఔΧόʔ͠Α͏
ඞཁͳ࣌ʹ ඞཁͳػೳɺੑೳ͕ ͋Ε͍͍
ՁΛૣ͘ಧ͚Α͏
͋ͬͨΒ͍͍ͳػೳ
ͳ͍͍ͯ͘ػೳ
·ͱΊ • ՁΛૣ͘ಧ͚ΔͨΊʹɺ ࠓඞཁͳͷ͚ͩΛ࡞͍ͬͯ͜͏ • ։ൃ͠ͳͯ͘ӡ༻Ͱ͖Δͷʹ͍ͭͯ ࡞Βͣɺӡ༻ͯ͠ΈΑ͏