Mackerel導入事例 サイバーエージェント様
株式会社サイバーエージェント https://www.cyberagent.co.jp/
はてな
サービス・システム開発本部 Mackerelチーム SRE
今井 隼人
サイバーエージェント
技術本部 Private Cloud Group
後藤 秀信氏
サイバーエージェント
技術本部 Private Cloud Group
久野 陽介氏
サイバーエージェント
技術本部
田中 淳氏
はてな
サービス・システム開発本部 Mackerelチーム CRE
井上 大輔
構成:星 暁雄
記事公開日: 2019年12月12日 · 所属はインタビュー当時のものです
サイバーエージェントは、社内向けにOpenStackとKubernetesを活用したプライベートクラウド基盤を構築して提供開始しました。コンテナ環境のための監視ツールとして、リリースされたばかりのMackerelコンテナエージェントを活用しています。コンテナ技術を活用してプライベートクラウドの構築と運用を最大限に効率化しようと取り組む同社で、Mackerelはどのように使われているのか。はてなチームが話を聞きました。
まず皆さんの立ち位置と、「Mackerelとの出会い」を教えて下さい。
サイバーエージェント 田中氏(以下、CA田中) 私はサイバーエージェントで全社横断的な取り組みであるプライベートクラウドチームのマネージャーをやっています。Mackerelとの出会いについては、いくつかの部署で「使いたい」という要望が来たのが最初の出会いですね。
サイバーエージェント 久野氏(以下、CA久野) 私はサーバーサイドのアプリケーションエンジニアから出発したのですが、異動でサーバー監視もするようになりました。そこで使っていた監視ツールZabbixの運用負荷が高いことが問題になっており、他の監視ツールを探している際に「Mackerelが導入しやすい」と言ってきたスタッフがいて、それが最初の出会いです。従来の監視ツールとは違いWebで見える、スマホからも障害対応の通知を見られるところが気に入りました。
サイバーエージェント 後藤氏(以下、CA後藤) プライベートクラウドのチームで、基盤の開発などをやっています。私たちの狙いはKubernetesに基づくコンテナを使ってサービスリリースを早めることですが、そこで監視をどうするかが課題になります。Prometheusは敷居が高かった。一方で、Mackerelのコンテナエージェントはサイドカー(詳しくは後述)の形態で手間が少なく導入でき、使い勝手がよく、相性がいい。これは魅力的だなと思い、導入していきたいと思いました。
はてな井上 はてなのMackerelチーム所属でCRE(Customer Reliability Engineer)をしています。Mackerelの開発チームは京都の拠点にも多くのメンバーが在籍しているのですが、Mackerelのお客様は現状は関東の方が多い状況です。そういった、開発チームが直接吸い上げることが難しいような、お客様からの技術的な要望、意見を広く集め開発にフィードバックする役割も担っています。
はてな今井 MackerelチームのSRE(Site Reliability Engineer)をしています。システムの監視、改善が主な役目ですが、これまでのコンテナ技術の取り組みから、Mackerelのコンテナ対応の開発に関わりました。
今回構築したサイバーエージェントのプライベートクラウド基盤とはどういうものか、教えて頂けますか?
CA田中 まず私達がプライベートクラウドを構築・運用する理由についてですが、主にコスト面のインパクトが大きい割合をしめています。また、大きなストレージやハイパフォーマンスが要件としてあがってきたものに対してのベアメタル提供など柔軟に対応を行う事が出来るのがプライベートクラウドを進めているもう1つの理由です。
CA後藤 構成の話からすると、Kubernetesの上でOpenStackを構築して、サービス側のエンジニアがVMを使えるようにするための基盤を提供しています。 追加でOpenStack管理下のVMにKubernetes(okd) を構築し、マルチテナントのコンテナ基盤としてサービス側のエンジニアに提供しています。こちらの構成はKubernetes(okd) on Openstack on Kubernetesのミルフィーユのような構成となっています。
そのような構成にした背景は?
CA後藤 大きな理由は運用コストの削減です。そのためにKubernetesがそろそろ使えるかなと。今回のプライベートクラウド構築は「攻めた感じ」で行こうとしており、採用を決めました。
コンテナ技術を導入した理由について教えて下さい。
CA後藤 従来の環境ではプロビジョニング(リソース提供の準備)に時間がかかっていました。またテスト環境と本番環境に差異が生じる場合もありました。コンテナ技術を使えば、基本的にはいろいろな人が同じ実行環境を使えます。例えば開発環境と同じものを本番環境でも使えます。
今回、プライベートクラウド構築に合わせてMackerelのコンテナエージェントの開発を進めた形なのでしょうか。
はてな井上 Mackerelのコンテナ対応の要望は以前より他のお客様からもあったのですがが、今回サイバーエージェント様から次世代のプライベートクラウドを本稼働させたい、その監視基盤としてMackerelを採用されたい、という話をいただいたことが、Mackerelのコンテナエージェント開発のアクセルを踏みこむ大きなきっかけになりました。
CA久野 次世代のプライベートクラウドを社内に提供するにあたり監視をどうしようか。VMにMackerelエージェントを同梱したらいいんじゃないか。コンテナも同じようにMackerelで監視出来るといいのではないか。そういうアイデアが出て、今に至っています。
はてな今井 Mackerelのコンテナ対応では、その監視エージェントのデプロイを「サイドカー」と「デーモンセット」という2つの方式から検討しました。サイドカーはKubernetesのコンテナを束ねる単位である「Pod」ごとに監視エージェントをデプロイする方式、デーモンセットはPodが動くノード(ホスト)単位で監視エージェントをデプロイする方式です。導入の手軽さや実装のシンプルさ、Mackerelにおける管理単位との相性から、サイドカー方式を採用した「Mackerelコンテナエージェント」を開発しました。 お聞きしたいこととして、さきほど「サイドカーによるコンテナエージェントの使い勝手がよく、相性がいい」という話を聞いて嬉しく思ったのですが、具体的にはどのようなメリットがあったのでしょうか?
CA後藤 マルチテナントのコンテナ基盤でデーモンセットを利用する場合、監視ツールが高い権限を持つ必要があります。サービス側のエンジニアには管理者権限は渡さない方針でしたので、この場合はコンテナ基盤を管理するインフラチーム側で監視ツールに対応しなければなりません。サイドカーの場合、サービス側のエンジニアに任せてしまえる。そこがメリットでした。サービス側のエンジニアも導入の敷居が低いと感じてくれました。新しい監視ツールを導入する場合は学習コストが高いと敬遠されてしまいます。が、サイドカーはKubernetesでは一般的な機能なので、そこが良かった。
はてな今井 Mackerelには導入が簡単というコンセプトがあり、そのためサイドカーのアプローチを採用したのですが、そこを評価していただいたのは有り難いと思います。
Mackerelの導入で、プライベートクラウド構築にあたり負担を減らす効果があった形でしょうか。
CA後藤 その通りです。
CA久野 監視ツールは、海外で開発された製品かMackerelかで迷いました。やはりMackerelが日本で作られている部分が大きかったですね。海外のシステムだと要望を伝えても上に上がるまでのリードタイムが長かったりします。はてなは日本語サポートがあるし、エンジニア(CRE)も来てくれます。
はてな今井 Mackerelのコンテナエージェントの開発中も、先行してサイバーエージェント様にご試用いただき、「こういう機能が欲しい」というユーザー視点の生の声が聞けるのはとても大きかったですね。
はてな井上 プライベートクラウド基盤については、2019年3月のMackerelミートアップで事例として発表して頂いています。その後の動きは何かありましたか?
CA後藤 7月に本番環境としてリリースしたことが大きな違いです。ミートアップの時点では本番リリースの前でした。すでにいくつかのプロジェクトでユーザーがいます。
はてな井上 現場の方々の感触はいかがですか?
CA後藤 導入のしやすさの点ではうまく行っているという気がします。まだリリースから2カ月(注:インタビューは9月末に行われた)なので、これからたくさんの人が使えば要望は出てくると思いますが。
CA久野 ユーザーから導入のやり方が分からない、という問い合わせは来ていません。ここは想定した通りに使ってくれています。
CA後藤 ユーザーごとに勝手に動かしてもらっている形です。個別の相談に対応する必要も現在のところないですね。
プライベートクラウド基盤を運用するうえで、悩みはありますか?
CA後藤 属人化すること(笑)。
CA久野 パブリッククラウドに比べて情報が乏しいこと。OpenStackも情報が少ないしバージョンに左右されます。ここが属人化しやすい。それにハードウェアの進化もすさまじい。
はてな井上 そんな基盤を、今は何人で運用されているのですか?
CA久野 プライベートクラウドの開発チームは5人です。OpenStackに2.5人、Kubernetesに2.5人。
はてな井上 5人ですか!私がCREとしていろいろなお客様に会って思うことは、インフラ担当の方は少人数だったり1人だったり、ということが非常に多いということです。MackerelのCREとして、Mackerelがなんらかの形でそんな方々の力になれないかとも思っているのですが。
CA田中 プライベートクラウドはやらない方がいい(笑)。辛いです。
はてな井上 プライベートクラウドとパブリッククラウド、などの複数の環境をお持ちであっても、その両方の情報をMackerelひとつに集約して監視できるのもメリットの一つだと考えています。そういった面でもお役に立てているのであれば、とても嬉しいですね。
貴重なお話をお聞かせいただき、ありがとうございました。