Save 37% off PRO during our Black Friday Sale! »

Yahoo砲に耐えられるインフラの話

62161b96bcaabca2ea9e3040124b40b3?s=47 tusui
November 03, 2016

 Yahoo砲に耐えられるインフラの話

62161b96bcaabca2ea9e3040124b40b3?s=128

tusui

November 03, 2016
Tweet

Transcript

  1. Yahoo砲に耐えられる インフラの話 2016/11/02

  2. アジェンダ • 自己紹介 • Yahoo砲に耐えられていなかった歴史 • Yahoo砲に耐えられるインフラへ • おわりに

  3. 自己紹介 2014年10月入社 技術部SREチーム 2008年ぐらいからインフラ周り サッカーや登山してます twitter : @_tusui

  4. Yahoo砲に耐えられていなかった歴史    2012年6月 弁護士ドットコムニュース          Yahoo配信開始

  5. Yahoo砲に耐えられていなかった歴史 最初期のサーバ構成 (多分) 前提:環境はAWSです

  6. Yahoo砲に耐えられていなかった歴史 初めてのYahooトピックス掲載 コンプガチャ返金請求は可能?

  7. Yahoo砲に耐えられていなかった歴史 結果:  サービスダウン

  8. Yahoo砲に耐えられていなかった歴史 このときの限界:     500 セッション(GoogleAnalytics)     50 Mbps これぐらいで落ちてしまっていた……

  9. Yahoo砲に耐えられていなかった歴史 対策1: スケールアウト

  10. Yahoo砲に耐えられていなかった歴史 AWS Auto Scaling • WebAppサーバのスケールアウト • CloudWatchと組合せ • Latencyに閾値設定して発動

    • 通常時WebAppサーバ2〜6台
  11. Yahoo砲に耐えられていなかった歴史 対策2: CDN + htmlキャッシュ

  12. Yahoo砲に耐えられていなかった歴史 AWS CloudFront • 静的ファイルの配信 htmlキャッシュ • ニュース記事のhtmlを作成し、 それを返す •

    Apacheと少しのPHP処理 だけで返す
  13. Yahoo砲に耐えられていなかった歴史 どうなったか

  14. Yahoo砲に耐えられていなかった歴史 結果:  サービスダウン

  15. Yahoo砲に耐えられていなかった歴史 このときの限界:    3000 セッション(GoogleAnalytics)     300 Mbps

  16. Yahoo砲に耐えられていなかった歴史 原因 AutoScaleよりアクセス増の方が早い

  17. Yahoo砲に耐えられていなかった歴史 • 全然間に合わない ◦ サーバ起動にも時間がかかる ◦ swap作成など • ELBのスケールアップも間に合わないときがある (と思っている)

    • WebAppサーバの数さえ増やせればさばける ◦ DBがボトルネックになるサービス規模ではない
  18. Yahoo砲に耐えられていなかった歴史 結局どう対応していたか?

  19. Yahoo砲に耐えられていなかった歴史 • YahooのページとGoogle Analyticsを監視 ◦ Yahoo掲載情報をチャットに通知 ◦ 同時セッション数をチャットに通知 ▪ 流入が増えそうならば、手動で

    AutoScaleの設定変更 ▪ 大丈夫そうならそのまま
  20. Yahoo砲に耐えられていなかった歴史 Autoとは?

  21. Yahoo砲に耐えられるインフラへ 2015年  Yahoo砲に耐えられるインフラへ       改善着手 今までインフラ専任の人はいなかった

  22. Yahoo砲に耐えられるインフラへ 何をしたか?

  23. Yahoo砲に耐えられるインフラへ • カーネルパラメータのチューニング ◦ somaxconn ◦ tcp_tw_reuse など • Varnishを前方に配置

    ◦ ニュース記事ページをキャッシュ ▪ WebAppサーバまでいかせない ◦ CloudFrontが返していたファイルもキャッシュ ◦ 動的生成するものも短時間キャッシュ
  24. Yahoo砲に耐えられるインフラへ • Varnishサーバ ◦ 2台 ◦ 中にnginxも • WebAppサーバ ◦

    5〜6台
  25. Yahoo砲に耐えられるインフラへ どうなったか

  26. Yahoo砲に耐えられるインフラへ 結果:  耐えられるように  なった

  27. Yahoo砲に耐えられるインフラへ • 雑談しながら見てる • サーバ台数もそのまま

  28. Yahoo砲に耐えられるインフラへ 今のところの実績:    27000 セッション(GoogleAnalytics)      1.5 Gbpsくらい

  29. おわりに 今後の展望 • Infrastructure as Code ◦ サーバテストのCI • 適材適所なアーキテクチャ

    ◦ microservice ◦ Dockerなど • セキュリティ対策の自動化
  30. おわりに ご清聴ありがとうございました