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
エンジニア3人で支える月間10億PV
Search
yujiosaka
July 27, 2014
Technology
38
17k
エンジニア3人で支える月間10億PV
・2年で月間10億PVを支えるまで成長した ZenClerkの運用上の工夫を紹介
・AWSのTipsとあるある話の共有
yujiosaka
July 27, 2014
Tweet
Share
More Decks by yujiosaka
See All by yujiosaka
I was understanding WASM all wrong! 🤯
yujiosaka
2
270
Machine Learning with JavaScript
yujiosaka
0
180
JavaScriptでも機械学習がやりたかった話
yujiosaka
2
450
ヘッドレスChromeでクローラを作った後の話
yujiosaka
3
690
俺が最初にヘッドレスChromeでクローラ作った 事になんねーかな
yujiosaka
4
1.3k
『XXX』のための管理画面
yujiosaka
1
1.3k
Enjoy Deep Learning by JavaScript
yujiosaka
1
350
ひたすら楽してディープラーニング
yujiosaka
20
13k
technology x business
yujiosaka
3
580
Other Decks in Technology
See All in Technology
Automating Web Accessibility Testing with AI Agents
maminami373
0
1k
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.1k
エニグモ_会社紹介資料(エンジニア職種向け).pdf
enigmo_hr
0
2.2k
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
180
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
810
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
190
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
290
ガチな登山用デバイスからこんにちは
halka
1
210
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
280
テストを軸にした生き残り術
kworkdev
PRO
0
170
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
260
進捗
ydah
2
240
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
How to Ace a Technical Interview
jacobian
279
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
A designer walks into a library…
pauljervisheath
207
24k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Typedesign – Prime Four
hannesfritz
42
2.8k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Transcript
ΤϯδχΞ3ਓͰࢧ͑Δ ݄ؒ10ԯPV JAWS-UG ઍ༿ࢧ෦ Vol.4
--attributes “violinist” “engineer” “consultant” “security specialist” “startup member of ”
--favorite-service “CloudWatch” introduce “Yuji Isobe”
LT
օ͞ΜɺࣗಈԽͯ͠·͔͢ʁ
None
ͪΖΜαʔόʔ શͯࣗಈԽ͍ͯ͠·͢ΑͶ
ͩͬͨΒ
Ͳ͏ͯ͠ਓؒؔ ࣗಈԽ͠ͳ͍ΜͰ͔͢ʁ
·্ͩ࢘ͷߘʹ खಈͰLikeΛԡ͠ଓ͚·͔͢ʁ
ਓؒؔࣗಈԽ ͦ͏ɺCloudWatchͳΒͶ
CloudWatchͰײΛࢹ
ΞϥʔϜΛηοτ
SNSͰϝʔϧΛૹ৴
ػೳ ✓ Graph APIΛͬͯFaceBookͷϝοηʔδΛੳ ✓ ΧελϜϝτϦΫεΛͬͯCloudWatchͰࢹ ✓ ײ͕Լ͕͖ͬͯͨΒ૬खʹ࿈བྷ ✓ ײ্͕͕Γա͗ͨΒࣗʹܯࠂ
✓ ؔͷम෮͕ෆՄೳʹͳͬͨΒڞ௨ͷ༑ਓʹ࿈བྷ
αʔόʔΛࢹ͠ͳ͕Β ਓؒؔࢹͰ͖Δʂ
ࠓޙͷ՝ ✓ FaceBookΞϓϦͷঝೝΛಘΔ͜ͱʢ٧Μͩʣ !
killall “LT”
describe-goals > 2Ͱ݄ؒ10ԯPVΛࢧ͑Δ·Ͱͨ͠ ɹ ͷӡ༻্ͷΛհ > AWSͷTipsͱ͋Δ͋Δͷڞ༗ ! ※ Chefͷͱ͔Γ·ͤΜ
None
ϦΞϧλΠϜੳ
ϦΞϧλΠϜੳ େྔσʔλ
describe-stats > ݄ؒ10ԯPV > ඵؒฏۉ400PV > ฏۉಉ࣌ଓ5ສ > ݄ؒอଘσʔλྔ10TB
describe-architecture front-end > Nginx > AngularJS > Ruby on Rails
> MySQL > memcached back-end > Nginx > Node.js > socket.io > MongoDB > Redis
ec2-describe-instances > 5 x m1.small > 40 x m3.medium >
7 x m3.large > 1 x m3.xlarge > 10 x c3.large > 2 x r3.2xlarge > 6 x i2.2xlarge --date “2014/07/26”
ec2-describe-reasons > αʔϏε͕๛ > API͕͍͍͢ > ใ͕खʹೖΓ͍͢ > εϙοτΠϯελϯε͕ ɹ৴͡ΒΕͳ͍΄Ͳ͍҆ʂ
> ਖ਼໊ࣜশSpot Request Instance > धཁͱڙڅͰՁ͕ܾ֨·Δ > ೖࡳՁ֨Λ͑Δͱ༰ࣻͳ͘Terminate εϙοτΠϯελϯε
େن͋Δ͋Δʢʁʣ εϙοτΠϯελϯεΛ100->200ʹ Ұؾʹ૿͢ͱɺશମͷ૬্͕͕ͬͯ Πϯελϯε͕ಉ࣌ʹTerminate͞ΕΔ
describe-team 1 designer 2 sales 3 data scientists 3 engineers
describe-engineers describe “Najima” ! ! ! ! ! > େྔσʔλͷ
ɹड͚ೖΕ͕ಘҙ describe “Jouko” ! ! ! ! ! > ϦονͳUI/UX ɹ࡞Γ͕ಘҙ
ͷӡ༻
deliver communication + management develop test monitor ࠓ͢ͷɾɾɾ
deliver communication + management develop test monitor ͜͜ʂ
Ͱͦͷલʹɾɾɾ
։ൃݱΛνϥݟͤ—
εέʔϥϒϧɾΞʔΩςΫνϟ
git-flowϞσϧ։ൃ feature/myfeature develop develop master master hotfix/myhotfix
Pull Requestۦಈ։ൃ
CircleCI
Slack
Sqwiggle
Trello
҆৺ͱ৴པͷWiki
ٯʹ͍ͬͯͳ͍ͷ > όάτϥοΩϯάγεςϜʢRedmineͱ͔ʣ > ࣾϝʔϧ
monitor
ϞχλϦϯά࢛ݪଇ > େͳใΛݟۃΊΔ > ਓʹؾ͍ͯΒ͏ > αʔϏεΛΈ߹ΘͤΔ > ΦΦΧϛগʹͳΒͳ͍
େͳใΛݟۃΊΔ
ɹɹɹɹɹɹɹʹͱͬͯେͳใ > MongoDBͷ݈߁ঢ়ଶ > ΫϥΠΞϯταΠτ্ͷJavaScriptΤϥʔ
MongoDBࢹʢMongoHQʣ
JavaScriptΤϥʔࢹʢerrbitʣ
ਓʹؾ͍ͯΒ͏
ϞχλϦϯά༻σΟεϓϨΠ
ࢹϨϕϧ > αʔόʔμϯɺΫϥΠΞϯταΠτ্ͷ ɹ500ΤϥʔΤϯδχΞʹి > ߴෛՙɺΫϥΠΞϯταΠτ্ͷ ɹJavaScriptΤϥʔSlackʹ௨ > ʮ͍͋͠ʯใϚελʔ͚ ɹཧը໘ͰࣈͰදࣔʢp-valueΛܭࢉʣ
αʔϏεΛΈ߹ΘͤΔ
Integrate + Notify Monitor Integrate Notify Integrate + Notify ৴པͰ͖ΔαʔϏεΛ͏
CloudWatch -> Slack
errbit (AirBrake) -> Slack
ूܭϓϩάϥϜ -> Slack
> CloudWatchINSUFFICIENT DATA ɹʹΞϥʔϜΛηοτ͢Δ͜ͱ͕Ͱ͖Δ > INSUFFICIENT DATAʹঢ়ଶ͕ ɹมԽ͢Δ·ͰʹλΠϜϥά͕͋Δ > ELBͷUnhealhyHostCount͕Φεεϝ
CloudWatch Tips
ΦΦΧϛগʹͳΒͳ͍͜ͱ
ؾΛ͚͍ͭͯΔ͜ͱ > ࢹϨϕϧʢᮢʣΛௐ > ϘτϧωοΫಓʹ௵͢ > ΤϥʔΛ·ͱΊΔ > ΤϥʔݕΑΓࣗಈԽ
͍͠ϙΠϯτ
> େྔʹσʔλ͕ੵ͞Ε͔ͯΒʹؾ͘ > Λݕূ͢ΔͨΊʹ౷ܭ͕ޮՌత > ਓͷͰݟͳ͍ͱؾ͔ͳ͍͜ͱ͋Δ ɹͰ͖Δ͚ͩਓʹؾֻ͖͍͚͢Λ࡞Δ ɹɹɹɹɹɹͷ͍͠ϙΠϯτ
·ͱΊ > ݟམͱ͍͚ͯ͠ͳ͍ใ͕͋Δ > ୭ؾ͔ͳ͍ࢹʹҙຯ͕ͳ͍ > ͋ͷख͜ͷखΛָͬͯΛ͢Δ > গͳ͍࿑ྗͰѲͰ͖ΔΤϥʔʹ͑Δ
ΤϯδχΞ3ਓͰ 10ԯPVࢧ͑ΒΕΔ
͚ͩͲͬͺΓ
ͬͱͨ͘͞Μͷ ͍͢͝ΤϯδχΞͱಇ͖͍ͨʂ
࠾༻ϖʔδ࡞த ڵຯ͋ΔํFBͰ͝࿈བྷ͍ͩ͘͞ʂ https://www.facebook.com/yujiosaka ΤϯδχΞืूதʂ
terminate-presentation --my-words “thank you ;)”