EmotionTechテックブログ

株式会社エモーションテックのProduct Teamのメンバーが、日々の取り組みや技術的なことを発信していくブログです。

Google Cloud Next ’22にブレイクアウトセッションスピーカーとして参加しました

はじめに

こんにちは、SREのおかざきです。 この度、10月12日(水)~ 14日(金)で開催された Google Cloud 主催の旗艦イベント 「Google Cloud Next ’22」にブレイクアウトセッションスピーカーとして参加しました。 以下の講演でして、オンデマンド動画およびスライドをご覧頂けますので、ご興味ある方は閲覧頂ければと思います。

顧客体験向上支援を行う新プロダクトの開発に Cloud Run を活用した話


www.youtube.com

内容について

スタートアップにて新プロダクトを構築するときの課題と弊社における対応事例として

  • Cloud Run をはじめとしたGoogle Cloud のサーバレス製品を活用してみた
  • Cloud Run で継続的デリバリを実践するため Github Actionsを用いてマイクロサービスのデプロイパイプラインを構築してみた

という点についてご紹介しました。

現状弊社では新プロダクトの開発を進めており、過去のブログ記事でご紹介したようにNestJSRustを用いてマイクロサービスアーキテクチャでプロダクトを構築しようとしています。 そのインフラ基盤としてGoogle Cloudを採用することにしまして、アプリケーションの実行環境としてはCloud Runを採用しました。

Cloud Run を採用した理由については動画を視聴いただければと思いますが、ざっくり以下の通りです。

  • 同じサーバレス製品のCloud Functionsと比較しアプリケーション構成の自由度が高い。例えばRustも動かすことができる
  • 同じコンテナ実行環境のGKEと比較して、Kubernetesの知識がいらない点や、ネットワーク層をあまり意識しなくても良い点などから、 アプリケーションを動かせるようになるまでの学習コストが低いと感じた。将来的にSRE以外のエンジニアにマイクロサービスのインフラの管理も担当してもらいやすくなりそうである
  • APIサーバのような同期処理を行う構成に加え、バッチ処理のような非同期処理についてもCloud TasksやWorkflowsなどと組み合わせることで実装が可能であり、応用範囲が広そうである

Cloud Runやその周辺のサーバレス製品は、GCE等のインフラ管理が必要な仮想サーバとOSSを組み合わせて自前で環境を構築することと比べると、どうしても自由度は犠牲になってしまうと思います。新プロダクトを立ち上げる際に、アプリケーション開発に工数を多く投入したいということを考えると、選択肢としては良いのかなと考えこのような選択をしました。 将来的に初期に選択した製品では厳しい要件がでてきた際は、構成変更したいマイクロサービスのインフラ製品を局所的に変更するといったこともできるかなと考えています。(変更容易な構成を目指しています。)

また、一部動画でも触れていますが、Google Cloudでインフラを組む際に役立ったリソースを紹介しますのでGoogle Cloudでインフラを立ち上げてみようかなと思われた方のお役に立てると幸いです。

TerraformのGoogle Cloud公式モジュール

TerraformのGoogle Cloud公式モジュールが豊富に提供されていて、以下のGithubから取得することができます。

github.com

これらを用いれば、例えば「Cloud SQLをHA構成にしたときにフェイルオーバー時の挙動を調べたい」と思った時に、検証用プロジェクトにすぐに検証構成を組むことができます。

Cloudアーキテクチャセンター

Google Cloudの「Cloudアーキテクチャセンター」にさまざまな設計事例やガイドが示されています。

cloud.google.com

一例を挙げると「セキュリティ基盤のブループリント」という記事があり、非機能面の要件、設計項目の洗い出しの参考にさせていただきました。例えばGoogle Cloud で取得可能なログの一覧のような情報があります。(ロギングとモニタリング)

Google Cloud security foundations guide

Google Cloudでセキュリティを考慮した設計に役立つ「Google Cloud security foundations guide」があります。 大規模な組織にも適用できるようなGoogle Cloud 組織・プロジェクト・ネットワーク構成の具体例が示されており、将来的なチームの拡大を見据えた設計をするためのインプットとして役立ちました。

おわりに

この度、Google Cloudを利用してみて、Cloud RunやBigQueryといったGoogle Cloud のサーバレス製品は、開発に集中するための製品設計がなされていて小規模なチームにも取り入れやすいと感じました。 特にCloud RunでコンテナベースのWebアプリケーションを動かす際には、他製品と比較して非常にシンプルな設定内容で起動することができ、個人的には良い意味でショックを受けました。 新プロダクトは引き続きGoogle Cloudを活用して開発を進め、今後弊社から正式発表できることを楽しみにしています。

エモーションテックでは顧客体験、従業員体験の改善をサポートし、世の中の体験を変えるプロダクトを開発しています。 ぜひこの記事や他の記事を見て少しでも弊社に興味をもっていただけましたら、カジュアル面談も行っていますのでご応募お待ちしております。

hrmos.co

hrmos.co

hrmos.co