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
Yahoo砲に耐えられるインフラの話
Search
tusui
November 03, 2016
Programming
0
2.9k
Yahoo砲に耐えられるインフラの話
tusui
November 03, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
CSC305 Lecture 11
javiergs
PRO
0
270
CSC305 Lecture 08
javiergs
PRO
0
280
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.1k
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
46k
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
920
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
120
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
190
EMこそClaude Codeでコード調査しよう
shibayu36
0
430
What's new in Spring Modulith?
olivergierke
1
170
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
260
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
250
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
890
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Designing for humans not robots
tammielis
254
26k
The Cult of Friendly URLs
andyhume
79
6.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
Why Our Code Smells
bkeepers
PRO
340
57k
Transcript
Yahoo砲に耐えられる インフラの話 2016/11/02
アジェンダ • 自己紹介 • Yahoo砲に耐えられていなかった歴史 • Yahoo砲に耐えられるインフラへ • おわりに
自己紹介 2014年10月入社 技術部SREチーム 2008年ぐらいからインフラ周り サッカーや登山してます twitter : @_tusui
Yahoo砲に耐えられていなかった歴史 2012年6月 弁護士ドットコムニュース Yahoo配信開始
Yahoo砲に耐えられていなかった歴史 最初期のサーバ構成 (多分) 前提:環境はAWSです
Yahoo砲に耐えられていなかった歴史 初めてのYahooトピックス掲載 コンプガチャ返金請求は可能?
Yahoo砲に耐えられていなかった歴史 結果: サービスダウン
Yahoo砲に耐えられていなかった歴史 このときの限界: 500 セッション(GoogleAnalytics) 50 Mbps これぐらいで落ちてしまっていた……
Yahoo砲に耐えられていなかった歴史 対策1: スケールアウト
Yahoo砲に耐えられていなかった歴史 AWS Auto Scaling • WebAppサーバのスケールアウト • CloudWatchと組合せ • Latencyに閾値設定して発動
• 通常時WebAppサーバ2〜6台
Yahoo砲に耐えられていなかった歴史 対策2: CDN + htmlキャッシュ
Yahoo砲に耐えられていなかった歴史 AWS CloudFront • 静的ファイルの配信 htmlキャッシュ • ニュース記事のhtmlを作成し、 それを返す •
Apacheと少しのPHP処理 だけで返す
Yahoo砲に耐えられていなかった歴史 どうなったか
Yahoo砲に耐えられていなかった歴史 結果: サービスダウン
Yahoo砲に耐えられていなかった歴史 このときの限界: 3000 セッション(GoogleAnalytics) 300 Mbps
Yahoo砲に耐えられていなかった歴史 原因 AutoScaleよりアクセス増の方が早い
Yahoo砲に耐えられていなかった歴史 • 全然間に合わない ◦ サーバ起動にも時間がかかる ◦ swap作成など • ELBのスケールアップも間に合わないときがある (と思っている)
• WebAppサーバの数さえ増やせればさばける ◦ DBがボトルネックになるサービス規模ではない
Yahoo砲に耐えられていなかった歴史 結局どう対応していたか?
Yahoo砲に耐えられていなかった歴史 • YahooのページとGoogle Analyticsを監視 ◦ Yahoo掲載情報をチャットに通知 ◦ 同時セッション数をチャットに通知 ▪ 流入が増えそうならば、手動で
AutoScaleの設定変更 ▪ 大丈夫そうならそのまま
Yahoo砲に耐えられていなかった歴史 Autoとは?
Yahoo砲に耐えられるインフラへ 2015年 Yahoo砲に耐えられるインフラへ 改善着手 今までインフラ専任の人はいなかった
Yahoo砲に耐えられるインフラへ 何をしたか?
Yahoo砲に耐えられるインフラへ • カーネルパラメータのチューニング ◦ somaxconn ◦ tcp_tw_reuse など • Varnishを前方に配置
◦ ニュース記事ページをキャッシュ ▪ WebAppサーバまでいかせない ◦ CloudFrontが返していたファイルもキャッシュ ◦ 動的生成するものも短時間キャッシュ
Yahoo砲に耐えられるインフラへ • Varnishサーバ ◦ 2台 ◦ 中にnginxも • WebAppサーバ ◦
5〜6台
Yahoo砲に耐えられるインフラへ どうなったか
Yahoo砲に耐えられるインフラへ 結果: 耐えられるように なった
Yahoo砲に耐えられるインフラへ • 雑談しながら見てる • サーバ台数もそのまま
Yahoo砲に耐えられるインフラへ 今のところの実績: 27000 セッション(GoogleAnalytics) 1.5 Gbpsくらい
おわりに 今後の展望 • Infrastructure as Code ◦ サーバテストのCI • 適材適所なアーキテクチャ
◦ microservice ◦ Dockerなど • セキュリティ対策の自動化
おわりに ご清聴ありがとうございました