こんにちは。天下一品大好きな上平です。楽天ラクマ開発グループ所属ではインフラを担当しています。
昔はよく、障害対応をした後は天下一品に行って"こってり"をズルズルいってましたw 天下一品はこの世の食べ物ではなく天界の食べ物です!ラーメンではありませんw
...という話はさておき、今日はラクマのインフラエンジニアとして楽しみを感じることを紹介したいと思います。
インフラエンジニアって「地味で表に立てない裏方仕事」ってイメージの方が多いかと思います。 私自身もそう思ってます(笑)
でもそんな裏方でしか感じられない醍醐味をご紹介したいと思います。
テレビ放送による高負荷への対応
先日、日本テレビさんの「ヒルナンデス」という番組で、ラクマを紹介していただきました。
自社サービスがテレビで紹介される!となれば、当然番組内でどう紹介されるかが気になるところです。 しかし、インフラエンジニアが注目するのはテレビではなく、そう「グラフ」です! インフラチームはお昼の1時間を犠牲にして、グラフを注視していました。
平日お昼の1時間でそれほどアクセスはないかと思っていましたが、実際に見てみると 通常時のピークタイム以上にアクセスがありました!
突発的な負荷に対してAPIサーバーは悲鳴をあげ、Load Averageが15。 アプリケーションエンジニアでは感じられないインフラエンジニア特有の冷や汗感(><)
このまま、高負荷でサービスは止まってしまうのか... 慌てるなかれ!ラクマではサーバを作成用のJenkinsを用意しているのです!
ラクマのサーバ準備では以下の工程を実施する必要があり、 以前はこれらを手作業で行っていました。そのためサーバ1台を用意するのに30分ほど時間を要していました。
- Cloud上にサーバーを作成
- サーバー内部の設定Chefを実行
- アプリケーションのDeployを実行
- DNS登録
- 監視登録
これJenkinsのジョブとして自動で行えるようにすることで、何台作成しても10分程度で作成可能となったのです!!
ってなわけでヒルナンデスが始まる前に追加のサーバを10台ほど作成していたため、 ロードバランサーにサービスインするだけで突発的な高負荷に耐えることができました! その後13時過ぎには増やした10台を停止&削除してコストもお手軽に☆
今後はもっと費用と負荷を細分化(マイクロサービス化)して さらにはコンテナ化でリソースを無駄なくサービスに充てていきたいと考えています。
コスト最適化への挑戦
日々のインフラ運用の中では、コストが重要視されます。ラクマでは時間帯に合わせてサーバー台数を自動で増減させることでコストコントロールができるようになりました。
今どきサーバの自動スケールは当然という意見もあるかもしれませんが、 一昔前のラクマでは負荷も決して高くなく、 負荷に応じてスケールさせるメリットは大きくありませんでした。 また、デプロイ周りにも問題を抱えていました。
しかし、デプロイの問題を修正し終えた頃にはサーバー台数は入社当初の倍になっており、 スケールアウト/インによるコスト削減効果は大きくなっていました。そこで、ラクマの負荷状況を考慮し、アクセスの多い時間にはサーバを自動で増やし、少ない時間には自動で減らすような仕組みを導入しました。
これにより、アクセスに応じたサーバを過不足なく運用できるようになり、その結果、毎月のインフラコストを大幅に削減することができました!
裏方仕事であるインフラエンジニアですが、 インフラコストという点で誰もが納得する成果をあげることができました!
最後に
というわけで、ラクマにおけるインフラエンジニアの醍醐味をご紹介しました。 以上、上平でした!
最後に、突発的な高負荷グラフやトラフィックグラフを見てニヤッとしながらも鳥肌が立つような ガチなインフラエンジニアさん!一緒に働きませんか?
興味のある方は、ぜひ以下のリンクよりご応募ください!
インフラエンジニア/サイトリライアビリティエンジニア - CtoC事業
シニアWebアプリケーションエンジニア - CtoC事業
iOSモバイルエンジニア - CtoC事業
Androidモバイルエンジニア - CtoC事業
プロダクトデザイナー - CtoC事業