仮想サーバ17万台、物理サーバ9万台 「ヤフオク!」「Yahoo! JAPAN」を支えるヤフーのITインフラ運用術

6

2020年08月13日 07:22  ITmedia NEWS

  • チェックする
  • つぶやく
  • 日記を書く

ITmedia NEWS

写真国内最大級のポータルサイト「Yahoo! JAPAN」(画像の一部を編集し、広告をカットしています)
国内最大級のポータルサイト「Yahoo! JAPAN」(画像の一部を編集し、広告をカットしています)

 国内最大級のポータルサイト「Yahoo! JAPAN」をはじめ、ECサイト「Yahoo!ショッピング」やオークションサイト「ヤフオク!」など、コンシューマー向けWebサービスを数多く運営するヤフー。同社はこれらのサービスを裏で支えるシステム基盤として、大規模なプライベートクラウド環境を自社で構築・運用している。



【その他の画像】



 ヤフーの奥村司さん(クラウドプラットフォーム本部 プライベートクラウドチーム リーダー)が、クラウドインフラの運用管理者向けイベント「Cloud Operator Days Tokyo 2020」で明かしたところによると、その規模は、仮想サーバが約17万台、物理サーバが約9万台。物理サーバのうち2万台がIaaSの仮想化ハイパーバイザーとして使用されており、IaaSだけで1000台以上のラックが使われているという。



 ヤフーはこの構成のインフラを、約20人のチームで効率的に構築・運用し、社内に提供しているというが、どのような工夫をしているのか。



 工夫の1つに、奥村さんは「OpenStackクラスタの数の多さ」を挙げる。ヤフーはインフラの基盤ソフトウェアにオープンソースの「OpenStack」を採用し、「全社共通で利用するIaaS基盤以外にも、特定の環境やユーザーの利用に特化したIaaSクラスタを数多く用意している」という。



 「例えば、本番用と開発用でクラスタを分けたり、広告システムやメールシステムといった大規模サービス用に専用のクラスタを作って社内に提供したりしている」



 Openstackの他、仮想化ハイパーバイザーには「Kernel-based Virtual Machine」(KVM)を採用。一部では「VMware」も利用している。



●サーバ選定、データ保管の工夫とは



 このクラスタを構築する際の手順は「システム設計」「サーバの見積もり・購入」「設置」「セットアップ」「デプロイ」「テスト」――と一般的なものだが、個々のプロセスを簡略化し、人手による作業を軽減している。



 まずサーバの選定・調達に際しては、運用管理を容易にするため、サーバごとの性能の平準化を図れるよう、取り扱うサーバの機種をなるべく増やさないよう心掛けている。具体的には、CPUの世代に合わせてサーバのスペックを統一し、それに合致しないサーバは調達しないようにしている。



 このサーバ(または仮想化ハイパーバイザー)の上で動作する仮想マシンに割り当てるCPUリソースは、物理CPUのスレッド数の3倍まで許可している。やや多い印象だが、実際には問題はほぼ発生しないという。ただし、一部のCPU占有率の高いアプリケーションに関しては、専用サーバを用意するなどの対策を講じている。



 データを保管するディスクは、ごく一部の例外を除き、共有ストレージではなくサーバの内蔵SSDを利用している。その理由について奥村さんは「内蔵SSDは処理スピードが速く、最近は導入コストも落ち着いてきている。また、サーバと共有ストレージ間のネットワークについて考慮せずに済むためだ」と話す。



 ただ、この内蔵SSDはRAID構成(複数の外部記憶装置を組み合わせ、1つの外部記憶装置として冗長運用する構成)を組んでいない。そのため、ディスクトラブルに起因するデータ消失のリスクが常につきまとう。これに備え、ヤフーではサーバ側ではなくアプリケーション側でデータを分散配置して冗長性を担保する仕組みを採用し、データ消失を防いでいる。



●全てがうまく進むわけではない



 ただし、構築作業は全てがスムーズに進むわけではない。「サーバ調達の際に予定通りに納品されない」「BIOS設定が間違っていた」「内蔵SSDが品薄で調達できなかった」といった思わぬミスや手違いが起き、構築作業に遅れが生じるケースもあるという。



 ヤフーは構築だけではなく、テストの自動化にも取り組んでいるが、そのプロセスにも改善の余地がある。例えば、同社では現在、タスク実行ツール「Fabric」を用いてテストコードを各サーバに送り込み、100項目以上のテストを自動で実行している。だが、その一方で、どうしても手動で行わざるを得ないテスト項目もいまだに多く残されており、「自動化するテストと、人が確認すべきテストのすみ分けの判断」が今後の課題になっているという。



●「守りの運用」と「攻めの運用」の両面で工夫を凝らす 



 このような手順で構築したクラスタを、より効果的に運用できるよう、ヤフーは「守りの運用」と「攻めの運用」を並行して進めている。



 「守りの運用では、少ない人数で効率よく大規模プライベートクラウドを運用するために、監視アラートの扱いに工夫を凝らしている。攻めの運用では、新たな技術を積極的に導入しながら、仮想化基盤のより高度な活用に日々取り組んでいる」と、ヤフーの奥野修平さん(クラウドプラットフォーム本部 プライベートクラウドチーム)は話す。



 「守りの運用」の監視アラートに関しては、運用担当者が対応に忙殺されないよう、インフラの耐障害性を高めてアラートの発生回数を抑えている。具体的には、OpenStackのコントローラーノードをコンテナ化して「Kubernetes」に展開。オーケストレーション機能を利用して複数のノードを1台のサーバのように管理し、どこかに不具合が出た場合でも安定して稼働できる、堅牢な仮想化基盤を目指している。



 無駄なアラート対応作業を行わずに済むよう、アラート発生時の業務フローも定期的に見直している。例えば、以前はシステムの監視担当者がアラートを検知した際、クラウドを担当するチームにその旨を報告。チームから調査指示が返ってきた時点で、初めて実際の調査作業に着手していた。このフローを、クラウドチームへの報告なしに現場の判断だけで調査・対応が行えるよう変更し、アラート対応に必要な工数を大幅に削減した。



 「攻めの運用」としては、幅広いスペックのサーバの運用に対応できるよう、仮想GPUやVPP(FD.ioのネットワーキングデータプレーン。分散ロードバランサとして利用中)などの技術を導入している。



 「仮想サーバのCPUやメモリのリソース、ネットワーク帯域、セキュリティ対策などの面から、開発チームの個別の要望にきめ細かく応えるために、新技術を積極的に活用している。テクノロジー面でのこうしたチャレンジが、使い手に寄り添った柔軟なクラウド環境の提供につながる」と奥野さんは話している。


このニュースに関するつぶやき

  • 砂漠に建ってる広大な倉庫みたいなとこで端っこが見えないほどサーバが並んでるんじゃないのか?
    • イイネ!0
    • コメント 0件
  • まだまだだね。どこかの党の方によるとサーバーなんか使う時代ではなくクラウドの時代だったっけな。 https://mixi.at/ad7exGs
    • イイネ!2
    • コメント 0件

つぶやき一覧へ(4件)

あなたにおすすめ

ランキングIT・インターネット

前日のランキングへ

ニュース設定