Yahoo砲に耐えられるインフラの話
by
tusui
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Yahoo砲に耐えられる インフラの話 2016/11/02
Slide 2
Slide 2 text
アジェンダ ● 自己紹介 ● Yahoo砲に耐えられていなかった歴史 ● Yahoo砲に耐えられるインフラへ ● おわりに
Slide 3
Slide 3 text
自己紹介 2014年10月入社 技術部SREチーム 2008年ぐらいからインフラ周り サッカーや登山してます twitter : @_tusui
Slide 4
Slide 4 text
Yahoo砲に耐えられていなかった歴史 2012年6月 弁護士ドットコムニュース Yahoo配信開始
Slide 5
Slide 5 text
Yahoo砲に耐えられていなかった歴史 最初期のサーバ構成 (多分) 前提:環境はAWSです
Slide 6
Slide 6 text
Yahoo砲に耐えられていなかった歴史 初めてのYahooトピックス掲載 コンプガチャ返金請求は可能?
Slide 7
Slide 7 text
Yahoo砲に耐えられていなかった歴史 結果: サービスダウン
Slide 8
Slide 8 text
Yahoo砲に耐えられていなかった歴史 このときの限界: 500 セッション(GoogleAnalytics) 50 Mbps これぐらいで落ちてしまっていた……
Slide 9
Slide 9 text
Yahoo砲に耐えられていなかった歴史 対策1: スケールアウト
Slide 10
Slide 10 text
Yahoo砲に耐えられていなかった歴史 AWS Auto Scaling ● WebAppサーバのスケールアウト ● CloudWatchと組合せ ● Latencyに閾値設定して発動 ● 通常時WebAppサーバ2〜6台
Slide 11
Slide 11 text
Yahoo砲に耐えられていなかった歴史 対策2: CDN + htmlキャッシュ
Slide 12
Slide 12 text
Yahoo砲に耐えられていなかった歴史 AWS CloudFront ● 静的ファイルの配信 htmlキャッシュ ● ニュース記事のhtmlを作成し、 それを返す ● Apacheと少しのPHP処理 だけで返す
Slide 13
Slide 13 text
Yahoo砲に耐えられていなかった歴史 どうなったか
Slide 14
Slide 14 text
Yahoo砲に耐えられていなかった歴史 結果: サービスダウン
Slide 15
Slide 15 text
Yahoo砲に耐えられていなかった歴史 このときの限界: 3000 セッション(GoogleAnalytics) 300 Mbps
Slide 16
Slide 16 text
Yahoo砲に耐えられていなかった歴史 原因 AutoScaleよりアクセス増の方が早い
Slide 17
Slide 17 text
Yahoo砲に耐えられていなかった歴史 ● 全然間に合わない ○ サーバ起動にも時間がかかる ○ swap作成など ● ELBのスケールアップも間に合わないときがある (と思っている) ● WebAppサーバの数さえ増やせればさばける ○ DBがボトルネックになるサービス規模ではない
Slide 18
Slide 18 text
Yahoo砲に耐えられていなかった歴史 結局どう対応していたか?
Slide 19
Slide 19 text
Yahoo砲に耐えられていなかった歴史 ● YahooのページとGoogle Analyticsを監視 ○ Yahoo掲載情報をチャットに通知 ○ 同時セッション数をチャットに通知 ■ 流入が増えそうならば、手動で AutoScaleの設定変更 ■ 大丈夫そうならそのまま
Slide 20
Slide 20 text
Yahoo砲に耐えられていなかった歴史 Autoとは?
Slide 21
Slide 21 text
Yahoo砲に耐えられるインフラへ 2015年 Yahoo砲に耐えられるインフラへ 改善着手 今までインフラ専任の人はいなかった
Slide 22
Slide 22 text
Yahoo砲に耐えられるインフラへ 何をしたか?
Slide 23
Slide 23 text
Yahoo砲に耐えられるインフラへ ● カーネルパラメータのチューニング ○ somaxconn ○ tcp_tw_reuse など ● Varnishを前方に配置 ○ ニュース記事ページをキャッシュ ■ WebAppサーバまでいかせない ○ CloudFrontが返していたファイルもキャッシュ ○ 動的生成するものも短時間キャッシュ
Slide 24
Slide 24 text
Yahoo砲に耐えられるインフラへ ● Varnishサーバ ○ 2台 ○ 中にnginxも ● WebAppサーバ ○ 5〜6台
Slide 25
Slide 25 text
Yahoo砲に耐えられるインフラへ どうなったか
Slide 26
Slide 26 text
Yahoo砲に耐えられるインフラへ 結果: 耐えられるように なった
Slide 27
Slide 27 text
Yahoo砲に耐えられるインフラへ ● 雑談しながら見てる ● サーバ台数もそのまま
Slide 28
Slide 28 text
Yahoo砲に耐えられるインフラへ 今のところの実績: 27000 セッション(GoogleAnalytics) 1.5 Gbpsくらい
Slide 29
Slide 29 text
おわりに 今後の展望 ● Infrastructure as Code ○ サーバテストのCI ● 適材適所なアーキテクチャ ○ microservice ○ Dockerなど ● セキュリティ対策の自動化
Slide 30
Slide 30 text
おわりに ご清聴ありがとうございました