1
/
5

Yahoo砲に耐えられるようになるまで…インフラ設計の軌跡

弁護士ドットコムでは、話題の出来事を弁護士が法的観点からわかりやすく・やわらかく解説するニュースコンテンツ「弁護士ドットコムニュース」を2012年から運営しています。法律をもっと身近に感じてもらうために、このニュースメディアを立ち上げました。現在は月間サイト訪問者数が731万人、月間ニュース本数は130本のメディアへと成長しましたが、その成長を支えてきたのがインフラエンジニアの薄井敏臣です。

2012年6月から、「弁護士ドットコムニュース」はYahoo!へ配信を開始しました。Yahoo!のトップページには、そのときトピックスとなるニュースが掲載されています。いわゆる「ヤフトピ」と呼ばれるその場所に記事が掲載されると、短時間にものすごい流入があります。まさに「Yahoo砲」です。以前のインフラ設計では、せっかくたくさんの人の目に触れる機会であるヤフトピ掲載時に、弁護士ドットコムのサーバがダウンするという事態が起こっていました。

今回は、そうした課題を解消すべく、インフラ強化を進めてきた薄井がエンジニア勉強会で語った内容を、ご紹介したいと思います。

Yahoo砲に負けていた過去

弁護士ドットコムではAWSを利用しています。「当初は、ApacheとPHPからなるEC2インスタンス2台で処理していた(らしい)」と薄井は振り返ります。しかし、これだとニュースがヒットするとサーバが落ち、全サービスがダウンするといった状況に…

このときは約500セッション・50Mbps程度のアクセスでサーバがダウンしていました。

「それではと、当時のエンジニアによって、AWSのAuto Scalingの機能を利用しLatencyがある閾値を超えたときに自動的にサーバの台数を増やすといった対策が行われたようです」(薄井)

また、CDNとhtmlキャッシュという対策も行われていました。

「具体的には、Amazon CloudFrontによって静的ファイルを配信していたのと、ニュース記事のhtmlファイルを定期的に作成し、Apacheと少しのPHPの処理だけでそのファイルを返すといったものです」(薄井)

そうして改めて、Yahoo砲に臨んだ結果…

サービスダウン…

このときの限界は約3000セッション・300Mbpsでした。

「原因は、LatencyをトリガーにしてAuto Scalingで増やされたサーバがサービスインするよりもアクセス流入増のスピードが速いことにありました。結局、当時どのような運用をしていたかというと、ヤフトピに掲載されるとチャットに通知されるようにし、同時にGoogle Analyticsのセッション数も監視していて、流入が増えそうであればLatencyの閾値を超えるよりも前に手動でAuto Scalingの設定を変更してサーバを増やす、大丈夫そうならそのままにする、そんな温かみあふれる対応をしていました。そのような状態のときに私が入社したので、『もうちょっとなんとかならないものか』とようやくYahoo砲に耐えられるインフラにすべく、抜本的な改善へと着手することになりました」(薄井)

Yahoo砲に耐える今

その後実施したことについて、1つ目はカーネルパラメータやミドルウェアのチューニングです。今まではインフラ専任のエンジニアがいなかったこともあり、設定値がデフォルトのままでサーバの性能を使い切れていない部分があったため改善を行いました。2つ目はVarnishの利用です。WebAppサーバの手前に配置することで、ニュース記事ページもCloudFrontが返していた静的ファイルも全てVarnishで返すようにしました。また、動的に生成されるデータについても部分的に短時間でキャッシュするなどしています。

その結果…

ついにYahoo砲に耐えることができるようになりました…!

現在では、約27000セッション・1.5Gbpsまで耐えられるようになっています。

今後の展望として薄井は「Infrastructure as Codeを進めていきたいです。ほかにも、microservice化の促進やセキュリティ担保の仕組みの自動化などもまだ足りていないので、どんどんやっていきたいです」と語ります。

「AnsibleによるプロビジョニングやServerspecを用いたインフラのテストなどは整備されてきていますが、まだまだCI化や自動化といった部分は満足できる状態ではありません。また、弁護士ドットコムはサービス開始から時間が経過していることもあり、内部ロジックが複雑に絡み合い新機能の追加やデバッグも難しくなってしまっているので、機能単位に切り出しmicroservice化することで改善していければとも考えています」(薄井)

弁護士ドットコムでは、現在インフラ、開発環境・開発プロセスの改善などを担当するSREチームに5名のエンジニアが在籍しています。いよいよ、サービス基盤をより強固なものへと改善していける体制が整ってきました!また、インフラエンジニア以外にも、プロダクト開発を担当するエンジニアも在籍しています。インフラでも、プロダクト開発でも、ご興味をお持ちいただけましたら、ぜひ話を聞きにきてください!

薄井がプレゼンした際の資料は、こちらからご覧いただけます!
https://speakerdeck.com/tusui/yahoopao-ninai-erareruinhurafalsehua

弁護士ドットコム株式会社では一緒に働く仲間を募集しています
17 いいね!
17 いいね!
今週のランキング