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
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
870
個人軟體時代
ethanhuang13
0
330
Testing Trophyは叫ばない
toms74209200
0
890
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
チームのテスト力を鍛える
goyoki
3
910
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
220
楽して成果を出すためのセルフリソース管理
clipnote
0
190
Reading Rails 1.0 Source Code
okuramasafumi
0
250
Kiroで始めるAI-DLC
kaonash
2
620
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
770
はじめてのMaterial3 Expressive
ym223
2
900
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Code Reviewing Like a Champion
maltzj
525
40k
Site-Speed That Sticks
csswizardry
10
820
Rails Girls Zürich Keynote
gr2m
95
14k
Become a Pro
speakerdeck
PRO
29
5.5k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
BBQ
matthewcrist
89
9.8k
Balancing Empowerment & Direction
lara
3
620
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など • セキュリティ対策の自動化
おわりに ご清聴ありがとうございました