アプリケーションの構成と技術の選定理由
Vertex AI Searchの採用を決めたことで、Google Cloudをプラットフォームとして構築することとなった。
構成は図の通り。セキュリティ面を考慮するという要望に応えるため、Google Cloud Interconnectを活用。外部IPなしのプライベートなデータ通信が可能になった。さらにVPCSC(VPC Service Controls)境界をさらに設定し、社外からのアクセスをできなくした。利用ユーザーが増加しても問題がないようにするため、自動でスケールアウト・スケールインするCloud Runを使用した。また、誰も使用しなくなったらインスタンスがゼロになるよう設定。「負荷や料金面に対しても、要望に応えられたと思っている」(細谷氏)

今回は外部IPがない構成なので、ロードバランサーはリージョン内部アプリケーションロードバランサーを使用。「これは時間課金で、ゾーンが数分発生するので注意が必要になる」と細谷氏は強調した。
ここから先は、メインで開発を進行した上間氏が登壇し、実装の話に移った。

アプリケーションは、バックエンドがPythonとFlask、フロントエンドがReactとNext.js、環境はDockerで構成。選定した理由について上間氏は、「今回の案件は納期が短かった。そこでバックエンドのPythonとFlaskは私がメインで利用している言語のため、開発スピードを出せるために選択した」と語る。ReactとNext.jsを選定したのは拡張性が高いからであり、開発を進行しながら機能追加されることが予想されたからだ。DockerはCloud Runを使用するため選択したという。