【CNDW2024】東京ガスの内製開発チームが挑むKubernetesの未来

東京ガス株式会社の内製開発チームが取り組んだ挑戦が、CloudNative Days Winter 2024で紹介された。東京ガス株式会社の杉山祐介氏と迫田賀章氏による「今はまだ小さい東京ガス内製開発チームが、これからもKubernetesと共に歩み続けるために」と題したセッションでは、課題解決のプロセスやエコシステムとの共存方法、そして得られた学びなどが紹介された。
内製開発チームの誕生
東京ガスは1885年の創立以来、日本のエネルギー供給を担ってきた。日本で初めて液化天然ガス(LNG)を導入し、現在では約1300万件の顧客アカウントを抱え、都市ガス市場の34%を占める。しかし、2016年の電力、2017年の都市ガス自由化により、競争が激化。デジタルの活用による顧客接点の強化が不可欠となった。
この対応として、東京ガスは2022年4月に内製開発チームを発足。デジタルマーケティングを強化し、顧客とのエンゲージメントを高める目的で、事業部門と密接に連携できる環境を整えた。このチームが開発したのが「myTOKYOGAS」だ。これは、ガス・電力の使用量・料金の確認や、リアルタイムの電力使用状況の可視化を提供するサービスである。杉山氏は「競争激化の中、顧客接点を強化する第一歩を踏み出しました」と語る。
しかしシステム構築は容易ではなかったという。フロントエンドとバックエンドの統合、データフローの最適化、柔軟なアーキテクチャ設計など、数多くの課題に直面した。2023年11月には大規模リニューアルを実施し、フロントエンドをNext.jsやNestJSへ刷新。UX向上を果たしたが、その裏では試行錯誤が続いたそうだ。
Kubernetes採用の背景と構成
内製開発チームは、モノリシックアーキテクチャの限界に直面していた。長年運用されてきたシステムは拡張性に欠け、複雑なデータフローが柔軟な開発を妨げていた。このため、マイクロサービス化を決断した。
ただしシステムの全面リプレースには時間とコストがかかるため、リニューアル初期は「リフト&シフト」を採用。バックエンドの大半は既存の形でAWSへ移行し、短期間での安定稼働を実現。段階的な移行で、短期的な戦略判断だった。
クラウド基盤にはAWSを採用し、コンテナオーケストレーションにはEKS(Elastic Kubernetes Service)を選定。迫田氏は「AWSのECSと比較しましたが、技術選定の自由度を重視し、Kubernetesを選びました」と語る。Kubernetesを採用することで、クラウドプロバイダーへの依存を避け、柔軟な運用を可能にした。
マイクロサービス化に向け、フロントエンド、バックエンド、データベースを分離し、それぞれ独立してデプロイ・スケール可能な構造を採用。Observability(可観測性)確保のためにDatadogを導入し、リアルタイム監視を強化。さらに、CI/CDパイプラインにはArgo CDを活用し、開発からリリースまでの速度を向上させた。またIstioを導入し、セキュアな通信環境と柔軟なトラフィック制御を実現。監視にはPrometheus、構成管理にはHelmを採用し、全体管理を容易にした。
こうした技術スタックの導入により、エコシステムがサービスを支える基盤となった。迫田氏は「システム全体を把握し、各要素が適切に連携するよう設計しました」と語る。
挑戦の振り返りと学び
システム安定性と性能確保のため、負荷試験は欠かせない。内製開発チームも本番運用前に負荷試験を実施し、課題を分析。その中で、Istio Ingress Gatewayのスケールイン時にトラフィックが適切に処理されない問題が発生した。
調査の結果、Istio Ingress Gatewayのスケールイン時にトラフィックが適切にルーティングされず、リクエストが失われることが判明した。杉山氏は「問題を解消するだけでなく、根本原因を理解し、改善につなげることが重要です」と振り返る。短期的な安定手段として、Istio Ingress Gatewayのスケール固定化を決定。クラウドネイティブの理想とは異なるが、短期の安定策だった。
またHorizontal Pod Autoscaler(HPA)の挙動やIstio設定の課題も明らかになった。とくにスケールイン時のトラフィック損失の原因として、サイドカープロキシ(istio-proxy)の動作やトラフィック管理設計が関係していた。そのためIstio設定の見直しとモニタリング強化が今後の課題となった。
この経験で、単なる問題解決にとどまらず、学びを次のステップに活かす姿勢が明確になった。杉山氏は「試行錯誤のプロセスこそが重要であることを伝えたいです」と語る。
Kubernetesと共に歩む未来
クラウドネイティブは進化を続けている。東京ガスの内製開発チームもKubernetesおよび関連技術と共に成長し続ける戦略を立てている。
そのためには、Istio Ingress GatewayのアップグレードやGateway API対応が鍵となる。現在はスケール固定化で安定性を確保しているが、長期的にはスケールイン・スケールアウトを適切に制御し、柔軟なトラフィック管理を目指すという。
またIstio Ambientモードにも注目。杉山氏は「Istio Ambientモードは、サイドカー負担を軽減し、効率的なサービスメッシュ構築に役立ちます」と語る。ただし機能は発展途上で、導入可否は慎重に検討していくそうだ。
クラウドネイティブはコミュニティ連携が必須だ。東京ガスはCNCF(Cloud Native Computing Foundation)のエンドユーザーサポーターとなり、技術推進に貢献する姿勢を示した。杉山氏は「小さな一歩が大きな成果を生む。それがクラウドネイティブの魅力です」と語る。
最後に杉山氏は「コミュニティへの貢献を始め、これからも会社の枠を超えて、皆さんと一緒に進んでいけたらと思っています。そしてこの一歩が、小さな勇気になれたなら幸いです」とセッションを締めくくった。