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

おわりに ご清聴ありがとうございました