さまざまなチャンスがあり、どんどん吸収できる。問題を自分事化して事業部と一緒に解決し、それが多くの人に役に立つ。そう、ここは「自ら成長機会を得られる場所」。
就職情報や進学情報、ニュースメディアなど幅広い事業を展開するマイナビ。創業50年を迎え、「一人ひとりの可能性と向き合い、未来が見える世界をつくる」というパーパスの実現に向けて前進を続ける中で重視しているのが、デジタルの力だ。
かつてはアプリケーション開発の多くの部分を外部の協力会社に委託していた。しかし、顧客ニーズにマッチした付加価値の高いサービスをより迅速に提供するためデジタルテクノロジー戦略本部を中核にして内製化に舵(かじ)を切りつつある。
一般に内製化というと、アプリケーションやWebサービス開発といった領域が思い浮かぶが、マイナビでは、それらを支えるインフラ構築、運用も以前から内製化を進めている。実際に多くのサービスが利用していたプライベートクラウドである「マイナビクラウド」では、社内で設計から運用までを担っていた。
そして、今まで運用してきた「マイナビクラウド」から「Amazon Web Services」(AWS)をはじめとするパブリッククラウドへの移行を進めつつ、技術選定から検証、構築、運用を担っているのが、クラウドインテグレーション統括部だ。同じく内製でアプリケーション開発に取り組むITディベロップメント統括部とも連携しながら、日々、さまざまな要望に応えている。
クラウドインテグレーション統括部は、事業部との間に立ち、ビジネスとして実現したいことを具体的な技術に落とし込みつつプロジェクトをけん引する役割を担う「ソリューションサービス部」と、AWSをはじめとするさまざまなクラウド技術を実際に手で触り、設計から構築、運用保守やトラブルシューティングなどを一手に引き受ける「インフラシステム部」で構成されている。
役割は違えど、高い可用性を維持することで事業部のサービス提供に貢献し、ビジネス機会損失を最小化し、価値の最大化を支援するというミッションは共通だ。「事業部ごとに独自のシステムがある上に、繁忙期も異なります。そうした特性を踏まえた上で、適切な技術を選定し、タイミングを見計らいながらクラウド移行を支援しています」(デジタルテクノロジー戦略本部 齋藤隆幸氏)
例えば、事業部から「こんなサービスを実現したいが、どうすればいいだろうか」という相談があれば、ソリューションサービス部がセキュリティや可用性をはじめとする非機能要件も加味しながら具体的な構成を検討し、一緒になってレビューしていく。より高度な機能や要件が求められる場合には、インフラシステム部の出番だ。「どんなソリューションを入れれば実現できるか」を費用やスケジュール面も含めて技術的に検討し、最適な技術選定を支援している。
時には、ハードルの高い要望が寄せられることもあるが、「事業部がやりたいと考えていることをできる限り実現するため、要望を丁寧にヒアリングし一緒に考えます」(齋藤氏)
一連の業務の中で意識して進めているのが「標準化」だ。効率の良い環境を渡すことで事業に貢献することを目指す。加えて統制が取りやすくなり、かつコストも相対的に下がるといった具合に、良いことずくめだ。
部としてコンテナを中心とした標準構成を採用しているが、必要に応じて分析エンジンなどのサービスを追加するなど要所要所でカスタマイズしている。
さらに「Infrastructure as Code(IaC)という、コードによるインフラ管理を行っています。『AWS CloudFormation』や『AWS Cloud Development Kit』(CDK)を用い、TypeScriptでインフラをコード化して管理しています。標準的な構成であれば本当にスピーディーに環境を構築できること、コードを見れば誰でも構成が分かることなど、メリットはかなり大きいと考えています」(デジタルテクノロジー戦略本部 小原夏々子氏)。オンプレミス環境やマイナビクラウドからAWSへの移行も、標準化とIaCを活用しながら進めているという。
インフラシステム部はさらに、クラウド環境での内製構築を担う一課、主に統制を担当する二課、オンプレミス環境やマイナビクラウドのメンテナンスを行っている三課という3つの課を跨ぐ形で「SRE(Site Reliability Engineering)チーム」を組織している。「定例ミーティングを行い、新しいサービスを試した結果などを発表したり、海外のカンファレンスでキャッチした最新情報を報告したりして、ナレッジを共有しています」(小原氏)
クラウドインテグレーション統括部のもう一つの大きな役割が、障害対応だ。万一基盤でトラブルが発生すれば、事業部からの相談を受けて一緒に解決に当たっていく。ソリューションサービス部が窓口となって全体を把握し、調整しつつ、専門的で技術的な検証をインフラシステム部が担うという形で解決に導いている。
例えばある時、マイナビが運営する複数のWebサイトが共通で利用しているコンテンツマネジメントシステム(CMS)の集約基盤で障害が発生し、サイトが閲覧できなくなってしまう事態が起きた。
直接の原因は、普段はそれほどアクセスの多くない、比較的小規模なサイトに載せられた記事へのアクセスが突発的に増加したことだった。だが影響は同じ集約基盤を利用している他のサイトにも及んでしまい、サイトに接続しにくくなる状況が1時間ほど続いたという。
「サイトが重くなっています」と一報を受けた齋藤氏は、まず、自分の手で確認できる範囲をチェックして解決を図った。この時点で解消されるトラブルも多いが、このケースでは状態は改善しなかったため、速やかにインフラシステム部に相談して解決に取り組んだそうだ。
状況を受けてインフラシステム部が調査したところ、原因は、データベースのコネクション数が上限に達してしまったことだった。ひとまずデータベースのスペックを上げたことで問題は解消されたが、小原氏は、より根本的な対応が必要だと判断したそうだ。
「現状のままでは、再びサイトへのアクセスが増えたときに同じ障害が起こりかねないため、再発防止策を検討し、データベースプロキシーを導入しました」(小原氏)
インフラシステム部では幾つかの選択肢を検討したという。まず考えたのは分散型データベースの導入だが、データベースのデータ移行が必要になるためハードルが高いと判断した。オートスケーリングするタイプのデータベースへの移行も検討したが、今回の障害でボトルネックになったのはCPUやメモリではなくコネクション数だ。コネクションが枯渇しても自動的にスケールしないため解決策にはならないと判断したためだ。
そこで浮上したのがデータベースプロキシーであるAmazon RDS Proxyの導入だ。インフラシステム部ではそれまで導入実績のない初めてのソリューションだったが、AWSのサポートも受けながら検証を進め、無事に導入できたという。
とはいえ、この集約基盤は約80種類のサービス、ステージング環境も含めると150種類以上のサービスが利用する重要な基盤だ。導入に当たってはソリューションサービス部を通して各部署と連携し、手順なども擦り合わせながら作業を進めた。「集約基盤の利用者は、ほとんどが技術者ではありません。ですので、分かりやすく伝わるよう工夫しました」(齋藤氏)
インフラシステム部にとってもチャレンジだった。前述の通り初物のソリューションである上に、集約基盤のデータベースがマルチテナント構成になっているため参考になるドキュメントや導入例が、日本語はもちろん英語でもほとんど存在しなかったからだ。
複数のサービスが利用する環境のため、サービスごとにAmazonリソースネーム(ARN)を登録して認証する必要があった。テンプレートに一行ずつARNを追加していけば問題は解決するが、サービスの追加や削除のたびに反映作業を行う必要があり、メンテナンス性が損なわれてしまう。この問題を解決するため、「AWS CloudFormation」のinclude機能を使い、別のファイルからARNを読み込む形で構築することにした。
「一番てこずった部分ですが、運用負荷を減らし、テンプレートの見やすさ、コードの可読性を高めるためにどうすればいいかを考え、この解決策に行き着きました」(小原氏)
インフラエンジニアとして働いてきたものの、マイナビに入社するまでプログラミングはほとんど未経験だったという小原氏だが、「プログラミングやIaCの技術、コンテナ周りの知識などが身に付き、この半年で大きく成長できたと思っています」(小原氏)。今回のRDS Proxyに関する一連のノウハウについても、この先同じ課題にぶつかった人にナレッジを提供したいという思いから、マイナビエンジニアブログで紹介している。
小原氏はこうした経験を通して、「マイナビは、手を挙げさえすれば成長機会を得られる場所」だと考えている。希望すればさまざまなチャンスを得られ、知識をどんどん吸収し、成長できる環境だからだ。
さらに、AWS関連はもちろん、「Google Cloud」「Microsoft Azure」などのベンダーが展開している資格取得を支援する制度もある。「マルチクラウドに向け、ソリューションサービス部、インフラシステム部、関係なく資格取得を推奨しています」(齋藤氏)
米国で開催されているAWSの学習型カンファレンス「re:Invent」などに参加する機会もある。
一方、どちらかというとプロジェクトマネジメントを主体とする齋藤氏は、「技術的な観点に加え、ビジネス的な観点でキャッチアップし、問題を解決することで達成感が得られています。問題を自分事化して、一緒に解決できるところが大きなやりがいです」と述べた。
もちろん、技術に関する基礎知識は大前提だ。事業部に説明するにしても、インフラシステム部に相談するにしても、自分で問題を整理できるだけの技術力が求められるし、ちょっとしたトラブルならば、自分で手を動かし、解決する場面もある。「コミュニケーション面でのスキルも求められますが、やはり根底には技術があり、さらに人助けに喜びを感じられるところが醍醐味(だいごみ)であり、やりがいは多岐にわたっています」(齋藤氏)
こうした環境を通して、齋藤氏は「社会に貢献できる、価値のある仕事をしたいと考えています。これからもいろいろな方と関わり合い、人ごとから自分事化して、当事者意識を持ってソリューションを改善していくことで、挑戦可能な未来を世界に作っていきたいと考えています」と、自分の働きがマイナビの「一人ひとりの可能性と向き合い、未来が見える世界をつくる」というパーパスにリンクしていると述べた。
RDS Proxyの導入というチャレンジを成功に導いた小原氏は、「一人一人がチャレンジし、既存の枠組みを超えて新たなイノベーションを生み出すことがデジタルテクノロジー戦略本部のビジョンです。私にとっては未経験のことや新しい技術に挑戦し、その情報を発信していくことでイノベーションを引き起こしていきたいと思っています」と述べる。個人のチャレンジが、デジタルテクノロジー戦略本部のミッションである「Drive Digital Innovation(デジタルイノベーションの推進)」につながる環境だといえるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:株式会社マイナビ
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2024年3月21日