5万台以上の物理サーバーを効率的に構築・運用。LINEのインフラ環境改善の取り組み

LINEの技術組織が取り組んでいる・今後取り組む未解決課題を深堀りするインタビューシリーズ「Unresolved Tech Issue」です。今回のテーマは「5万台以上の物理サーバーの効率的構築と運営及びインフラリソース使用率の向上」です。 

LINEではオンプレミスのインフラ拠点を複数持っており、その規模は物理サーバー数5万6,000台以上です。さらに、今後も前年比15%のペースで増え続けていくと予測されています。運用体制を改善するため、サーバーの構築・管理の効率化と並行して、インフラリソース使用率の向上やコストの最適化を進めています。 

インフラの構築・運用に関する取り組みの詳細を、ITサービスセンター システム室 システムエンジニアリングチーム マネージャーの木村に聞きました。 

膨大な数のサーバーを管理・運用し続けるために  

──まず、LINEが管理・運用するインフラ拠点やサーバーの規模について教えてください。 

LINEのインフラ拠点は海外と日本国内に複数あり、メインで使っているのは4か所です。物理サーバー(Hypervisorを含む)が5万6,000台で、仮想マシンが8万5,000台。合計で14万ノードほどを管理・運用している状況です。年間あたり5,000〜10,000台のペースでサーバー台数が増えています。

これらのインフラを属人性の高い方法で管理・運用してしまうと、工数が膨大になり、オペレーションミスに起因した障害も起こりえます。そのためITサービスセンター システム室では、作業の自動化・効率化を推進し、体制を改善し続けてきました。 

──いくつか取り組みの例を教えてください。 

5年ほど前までは故障・修理した物理サーバーの情報をExcelで管理していましたが、それをチケットによる管理に変えました。物理サーバーの異常を検知して、チケットを自動起票する仕組みを構築しました。 

また、サーバー・サービスの死活監視の実施において、かつては異常を検知した場合の対応方法がエンジニア任せで統一されていませんでした。そこで、対応ポリシーを明文化して誰でも同じような対応を取れるようにルールを整備しました。 

また、この後に詳細をお話ししますが、サーバーのデプロイや設定変更の自動化などにも取り組んでいます。大きく分けて施策は3種類あり「LINEで開発されているサービスのためのOS管理・標準化」「OS・サーバーのパフォーマンスや信頼性向上のためのチューニング、トラブルシューティング」「プライベートクラウドのサーバー調達・管理・調整」です。 

 

OSインストーラーを自作してサーバーセットアップを効率化 

──まず「LINEで開発されているサービスのためのOS管理・標準化」について聞かせていただけますか? 

システム室では自分たちでOSのインストーラーを自作して、物理サーバーをセットアップする作業に用いています。かつてはOSSのツールなどを使っていたのですが、インストール中に意図せぬ動作をしたり、処理が失敗した場合に詳細情報を調査できなかったり、インストールに時間がかかったりと、いくつもの課題がありました。 

その状況を改善するため、自分たちでインストーラーを作成しました。現在はゴールデンイメージ方式のOS自動インストールを採用しています。PXEブートをするだけでインストールを開始するため、作業効率が上がっています。 

また、この方式に変えたことでインフラ担当者だけではなく、サーバーを利用するサービス開発者にも利点が生じました。同じ状態のOSがインストールされたサーバーが常に提供されるため、サービス開発者は必ず既存サーバーと同じ方法でアプリケーションをデプロイできます。また、各サーバーの設定が統一されていることでセキュリティも向上します。 

──今後さらに改善したいことはありますか? 

現在は、既存の全サーバーに対して設定変更を実施する際に、スクリプトを組んで処理しているのですが、実行そのものはエンジニアの手作業です。今後は完全な自動化を目指したいと考えています。例えば、設定情報を管理するためのデータベースもしくはリポジトリなどに設定情報を格納すると、その情報が自動的に全サーバーに反映されるような仕組みを構築していきたいです。 

また、現在はサービス開発者がサーバーの/etcディレクトリ配下にあるファイルなどを自由に修正できるようになっているため、セキュリティの課題があります。将来的には、仮にファイルを書き換えられたとしても自動的にもとの状態に戻すなど、セキュリティ向上のための仕組みを構築したいと考えています。 

システム要件に合わせサーバーのパラメーターをチューニング 

──次のテーマは「OS・サーバーのパフォーマンスや信頼性向上のためのチューニング、トラブルシューティング」について。 

LINEで求められているシステム要件に合わせて、システム室では全サーバーに対してチューニングを施しています。例えば、BIOSの設定変更や、パフォーマンス最適化のためにsysctlでプロセス数制限を変える、用途に合わせてカーネルのパラメーターを変更するといった作業を実施しています。 

チューニングする内容を私たちが一元管理することで、サーバーの設定値やパフォーマンスなどが統一されます。そのため、均質的なサーバーを各サービスチームに提供することが可能になり、社内全体の開発・運用効率も向上します。 

また、サーバーマシンは1〜2年おきに新しいCPUやGPU、SSDを搭載したモデルが登場しますが、ITサービスセンター システム室ではそうした新モデルのベンチマーク試験も定期的に実施しています。性能評価を行ったうえで、新しいモデルのサーバーの設定値の指標を決めるのも私たちの役割です。 

 

「いつでも誰でもサーバーを使える状態」を実現するために 

 ──「プライベートクラウドのサーバー調達・管理・調整」についてもお聞かせください。 

私たちはプライベートクラウドの「Verda(ベルダ)」で使用される物理サーバーの在庫管理をしています。「Verda」は各サービスチームの開発者が、物理サーバー・仮想サーバーのどちらでも、必要な台数をいつでも使えるようになっています。 

仮にサーバーの在庫が枯渇すれば、開発やサービスの提供の進捗が止まってしまいプロジェクトに悪影響が出ます。また、サーバーをメーカーに注文してもすぐ届くわけではなく、配送完了まで時間がかかるケースも多いです。そこで、社内のサーバー需要を鑑みつつ、常に在庫を切らさないようにサーバーを購入し続けています。 

過去と比較すると、購入する台数は増加し続けています。以前は、一回あたり購入するサーバー台数は数十ほどでしたが、現在では数百台を購入するようなケースもあります。それらのサーバーをなるべく早期にセットアップをして使用できる状態にすることが重要です。 

納品されたにもかかわらず、サーバーをセットアップせずに数週間や数か月も放置すれば、明らかにリソースの無駄になってしまいます。とはいえ、サーバーセットアップのために人を増やすのもあまり賢い選択ではありません。そこで、可能な限り人間の手を介さず迅速にサーバーの管理やセットアップができるような体制を構築することに取り組んでいます。 

ひとつの対策として、納品後にサーバーが自動的に管理ツールに登録されるツールを開発しました。このツールでは、各種ケーブル類を接続するだけで自動的にサーバーの情報を収集し、半自動的にではあるものの管理ツールへの情報登録まで可能になっています。今後はさらに完全な自動化を目指して体制構築を行い、サーバーの購入・管理台数がさらに増加したとしても少人数でまかなえるようにしていきたいです。 

 

大規模インフラを管理・運用するからこそ得られる経験がある 

──インフラエンジニアがLINEのLINEで経験を積むことにより得られる知見やノウハウはあるでしょうか? 

他社の場合は、インフラ環境としてパブリッククラウドを使ったり、インフラの構築・管理をアウトソーシングしたりするケースが多いです。しかしLINEでは、サーバーの調達から各種セットアップ・設定変更、サービス開発者への連携やサーバー運用・死活監視まで多種多様な領域をインフラエンジニアが担当します。また、扱うインフラの種類も物理サーバーから仮想サーバー、プライベートクラウドの構築までさまざまです。これはLINEだからこそ経験できる業務だと思います。 

また、インフラの規模が桁違いですし、サービスのトラフィックやデータ量が多いからこそ、小規模なインフラ・サービス環境では発生しえないような問題も数多く起こります。そうしたトラブルを調査・解決することでインフラエンジニアは確実に成長できますし、今後のキャリアも豊かなものになるはずです。積むことのできる経験の質は、間違いなく高いと思います。

 

採用情報 

LINE株式会社では一緒に働くエンジニアを募集しています! 

今回のインタビューと関連する募集ポジションはこちらです、ご応募お待ちしております。