enechain: GKE ベースのシステム基盤でビジネスの成長に合わせたスケーラビリティとガバナンスの強化を実現
Google Cloud Japan Team
誰もが自由にエネルギー商品を売買できる世界の実現を目指して、国内最大のエネルギー卸取引マーケットプレイス(取引所)を運営する株式会社enechain(以下、enechain)。創業当初よりシステム基盤として Google Cloud を採用してきた同社では、事業の拡大に合わせて Google Kubernetes Engine(GKE)の導入を決定し、既存システムの全面的な移行を実施しました。このプロジェクトを担当した 3 名に、その狙いや効果についてお話を伺いました。
利用しているサービス:
Google Kubernetes Engine(GKE), Cloud SQL, BigQuery, Cloud Functions, Firebase, Google Analytics など
利用しているソリューション:
Google for Startups
BigQuery との連携と開発スピードを重視して全面的な Google Cloud の採用を決定
日本国内では、電気事業法の改正によって 2016 年に一般家庭向けの電力小売事業が自由化され、多くの小売事業者が電力事業に参入しました。この電力自由化は、電力市場における価格競争やサービスの多様化を促し、消費者にとっての選択肢が拡大するという効果を生み出しました。しかしその一方で自由化直後の卸電力は相対で取引されることが多く、売り手にとっても買い手にとっても価格の妥当性が判断しにくく、取引コストも高い状況でした。また、「新電力」と呼ばれる新規参入の小売企業にとっては、電力価格のボラティリティ(価格変動率)が想定以上に高く、ビジネスのリスクが大きいという課題も生じています。
この課題を解消するために enechain が提供しているのが、オンライン上のエネルギー卸取引マーケット プレイス「eSquare」です。eSquare では、顧客同士が電力などのエネルギー商品のヘッジ取引をフェアな価格で行うことができ、エネルギー価格の急激な変動に対するリスクを最小化することが可能になります。また enechain では、世界中のマーケット価格を分析しやすい形で視覚化して提供するアプリケーション「eCompass」の提供も行っています。
enechain では、これらのサービスのシステム基盤として、創業当初より Google Cloud を利用してきました。その経緯をテクノロジー本部 eSquareデスク シニアエンジニアの青戸 了氏は次のように説明します。
「電力自由化直後の日本には、まだエネルギーをヘッジ取引するという習慣そのものがなかったので、まずは電力需要、供給力、燃料価格等の見通しに関するデータを使ってマーケット レポートを作成し、ヘッジ取引のメリットなどを啓発する活動からスタートしました。そのために、マーケット データを収集・蓄積してお客様にレポートを提供できるようなデータ基盤を最初に作る必要がありました。そこで、使い勝手がよくて将来のスケールにも耐えられるプロダクトということで BigQuery を採用しました。当時扱っていた電力関係のデータは、データ量としてはそれほど大きくはなかったことから、サーバーレスで利用できる BigQuery はコスト的に有利だったというのが決め手になりました。」
先行開発のデータ基盤に BigQuery を採用したことは、アプリケーション基盤でも Google Cloud を選択する強い動機になりました。スタートアップである enechain では少人数でゼロからプロダクトを立ち上げる必要があり、データ基盤とアプリケーション基盤を同じクラウド プロバイダで構築することによって、インフラの開発や運用、学習などにかかるコストを最小化したいという狙いがあったからです。アプリケーション基盤への Google Cloud の採用について、Chief Technology Officer の 須藤 優介氏は次のように補足します。
「技術選定の基準として初期段階で特に重視したのは開発スピードでした。できるだけ早く開発してお客様に価値を届けるという観点で考えた場合、Google Cloud はサーバーレスやフルマネージド サービスを指向したプロダクトが多く、インフラの管理についてあまり意識せずにアプリケーションの開発に集中できるという期待がありました。また、BigQuery や Firebase、Google Analytics、Google ドライブ など他の Google サービスとの連携が容易で、データの取り扱いや権限管理の利便性が高いというのもポイントでした。とはいえ、将来的にはビジネスを拡大させていく想定だったので、そうなったときに GKE が利用できるという狙いもありました。結果的に、初期の eSquare では App Engine や Cloud Functions を活用することで少人数でも迅速な開発が可能となりました。」
GKE への移行により組織とプロダクトのスケールに耐えるアーキテクチャを実現
enechain のビジネスが軌道に乗り、プロダクトの規模や数が拡大し始めるに従って、開発速度を重視した当初のアーキテクチャではさまざまな課題が顕在化するようになってきました。そのときの状況について、テクノロジー本部 SREデスク シニアエンジニアの大田氏は次のように振り返ります。
「当時、事業の拡大にともなって人やプロダクトが増えたことで、プロダクト間の連携も多くなり、アーキテクチャがどんどん複雑化していき、同時にチーム間での分断が生じて、さまざまなところで徐々にガバナンスが利きにくい状況が生まれました。また、手順書などは IaC(Infrastructure as Code)を活用してある程度自動化できていたものの、それも複雑化してミスが発生しやすくなり、段々と開発作業に集中できない状態になってきていました。」
enechain では、この課題を解消するために、会社全体で統一的に利用できて組織とプロダクトのスケールに耐えられる新しいアーキテクチャを、GKE をベースに構築することを決定しました。この理由について、大田氏は次のように説明します。
「まず、組織とプロダクトのスケールに耐えうる基盤として、スケーラビリティに優れ、チーム横断的にガバナンスを効かせる観点から Kubernetes を使いたいという前提がありました。そのうえで、他のサービスとの連携のしやすさ、新機能のサポートの速さ、運用管理の容易さ、セキュリティの強固さなどを評価して GKE の導入を決定しました。また、先進的な機能が豊富でやりたいと思ったことがすぐに実現できる点や、UX/UI が洗練されている点など、エンジニアにとって使っていて楽しいと感じる部分が多かったことも大きな採用理由です。」
技術的な要件に加えて、学習のしやすさも採用を後押しする要素になったといいます。enechain では、SRE/Platform チームだけでなく、エンジニア全員が自分で GKE を使うという意識を持って開発に臨んでいるので、ドキュメントや学習コンテンツの充実は、社内で GKE の知見を広めるために重要だったと須藤氏は話します。
「eSquare の場合、フロントエンドもバックエンドもすべて GKE に展開される構成になっているので、エンジニア全員が GKE に慣れ親しむ必要があります。その点、Google Cloud は公式ドキュメントがわかりやすく、Google Cloud Skills Boost などのコンテンツも充実していました。加えて社内でドキュメントやオンボーディングを整えたりして、GKE の導入と併せてエンジニアが学習しやすい環境を構築できたことも、エンジニアが感じた楽しさにつながったのではないかと思います。」
enechain が構築した新しいアーキテクチャでは、GKE ベースの共通基盤の上にフロントエンドとバックエンドの両方が搭載される構成になっています。一方で、eSquare や eCompass のような個別のプロダクトでは、それぞれで Google Cloud のマネージド サービスも利用しながら、固有のプロジェクトとして作成する設計方針をとっています。これによって、共通基盤でシステム全体へのガバナンスを強化しつつ、要件に応じてマネージド サービスも活用するという柔軟な運用が可能になりました。
基盤を GKE に統一したことでガバナンスが強化され、ビジネスの幅も拡大
GKE への移行が完了したことで、インフラ運用や環境構築、プロダクトのリリースの負荷などが大幅に緩和され、本来のプロダクト開発に集中できるようになったと青戸氏は語ります。
「例えば新しいメンバーが参加したときの環境構築をマニフェストベースで行うようにしたことで、スクリプトを少し書き換えるだけで完結できるようになりました。リリースフローについても、以前はチームごとに個別のフローを持っていたのですが、移行後は SRE(Site Reliability Engineering)チームが作った共通のデプロイフローを使って一連の作業がすべて自動で行われるようにしました。これによってリリースの安全性が上がり、負荷が減ったことで高い頻度でのリリースも実現しています。」
GKE への移行はガバナンスの強化につながり、その結果としてビジネスの幅も拡大したと須藤氏は言います。
「エネルギー業界というのはセキュリティやトレーサビリティが重要視され、全サービス共通で一定以上の水準をクリアしなければならないことも多々あります。新しいサービスがどんどん立ち上がっていく中で、そのような厳しい要件をすべてチェックするのはとても大変で手間がかかります。今回の移行で環境構築のフローが共通化できたことによって、システム全体にわたる要件の適用がやりやすくなりましたし、そのことが評価されて新しい契約につながるようなケースも出てきました。」
大田氏は次のように続けます。
「Google Cloud を採用したことで、ゼロスタートから今に至るまで大きな問題もなく成長し続けることができました。Google Cloud チームには開発当初からアーキテクチャのレビューや使いたいサービスのレクチャーなど積極的にサポートしていただき、結果的に移行を進める後押しになりました。」
Google Cloud の採用にあたって、enechain ではスタートアップを支援する Google for Startups クラウド プログラムも利用しました。その成果について須藤氏は次のように語ります。
「開発当初は事業的にもまだ安定していない時期だったので、その段階でインフラの運用コストを気にしなくてよかったというのは非常に助かりました。何か新しいことをやりたくても、インフラのコストを考えるとなかなか踏み出せないというようなこともあるかと思います。Google for Startups の支援によって、その辺りを意識することなく開発や移行に集中することができました。」
株式会社enechain
2019 年 7 月 30 日設立。日本最大のエネルギー卸取引マーケットプレイスを運営するスタートアップ企業であり、2016 年の電力自由化以降に発展した電力市場において、エネルギー卸取引を行うことができるプラットフォームを提供。誰もがいつでもどこでも、フェアな価格でエネルギーを売り買いできるマーケットを構築することで、透明性と信頼性の高いエネルギー取引の拡大に取り組んでいる。
インタビュイー
・Chief Technology Officer 須藤 優介 氏(写真右)
・テクノロジー本部 eSquareデスク シニアエンジニア 青戸 了 氏(写真左)
・テクノロジー本部 SREデスク シニアエンジニア 大田 氏
その他の導入事例はこちらをご覧ください。