☁️

ハックツ出ました&GCPの話

に公開

はじめに

今回の記事の内容は先日開催された「ハックツハッカソン ~イクチオカップ~ 2025」でGoogle Cloudを使ってインフラを構築して感じた話になります。

初めて使用したので「「えぇ?そう使うの?」」みたいに思われる場所もあるかもしれませんが、気軽に読んでいただけると幸いです。

個人的にはもう100点をあげたいハッカソンでした。
設計からインフラ全て大満足です。(特に構成図)

本題その1:ハックツハッカソン

以下構成です。作ったものの詳細や各サービスの使い方はTopa`zに書いてるのでぜひ見てください。

今回は「設計は自分、実装はエージェントに任せる」みたいな開発フローを取ってみました。
結果死ぬほど早いスピードで開発できたのでめちゃめちゃ良かったです。設計部分もしっかりできていたからなのか基盤部分の実装はかなりスムーズに済みました。インフラもエージェントでできたのですっごく快適(リソースには気をつけよう)

事前開発期間の間にバックエンドの設計(エンドポイントやスキーマなど)は終わらせ、初日で爆速開発。フロントエンドは流れで世界観を確立させながら調整を重ねました。

むしろ一番詰まったのは「組み込んでいたAIのシステムプロンプト」です。Geminiを使って情報の検閲が入るSNS?的なのだったのですが、うまいこと検閲してくれなかったり、処理をするのではなくGeminiが文章に対して回答してしまったり...めちゃめちゃ大変でした。AI周りはもう1人のメンバーに任せていたので本当に感謝でした。
game_screen
マトリックスとかターミナルとか、昔のPCをイメージしてフロントエンドは作ってます。
可愛いね(内容が不穏)

※GCPの無料クレジットが大量に余っていたのでGCPサービス染めの技術スタックになっています。
architecture

技術スタック

フロントエンド

  • Vue.js 3 (TypeScript)
  • Vite (ビルドツール)
  • PWA (Progressive Web App)
  • Firebase Authentication (匿名認証)

バックエンド

  • FastAPI (Python)
    • Pythonバックエンドで使ってますが「遅い」ってのは...許してください☆
  • WebSocket (リアルタイム通信)
  • uvicorn (ASGIサーバー)

データベース

  • Google Cloud Firestore (NoSQL)

AI

  • Google Cloud Vertex AI Gemini 2.5 Flash (メッセージ処理・匿名化)

インフラ

  • Google Cloud GKE Autopilot (Kubernetesコンテナオーケストレーション)
    • Cloud Logging
    • Cloud Monitoring
  • Google Cloud Secret Manager (API Key管理)
  • Google Cloud Build (CI/CD)
  • Google Cloud Artifact Registry (コンテナイメージレジストリ)
  • Cloudflare Tunnel (外部公開)
  • Docker (コンテナ化)
  • Kubernetes (Pod管理、自動スケーリング、ロードバランシング)
  • GitHub (ソースコード管理)

開発環境

  • Amazon Q Developer (Claude sonnet 4)
    • コード・インフラの設計部分は自分で行い、実装をエージェントに任せました。

本題その2:Google Cloud初めて使いました

Google Cloudって?

Googleが提供しているクラウドサービスで、AWS(Amazon Web Service)とかと同じものになります。
世界中のデータセンターに分散して配置されたクラウドリソースを使用することで非常に冗長性の高いインフラを構築することができます。

クラウドはあんまり触れていなくて詳しくないのですが、データベースや認証サービス、デプロイをするためのVMやクラスタなどいろんなサービスがあります。サーバーレスってやつ?

使った感想

個人的にAWSより圧倒的に使いやすいなって思いました。
というよりそもそも各社のユーザー体験への目標が別物な気がします。

AWSは堅実なイメージですが、GCPはエンジニア側のUXの最適化を目指している感じでした。

各サービスのダッシュボードへのアクセス、サービスアカウントの権限管理、各サービスを運用するための設定などなど、いろんな場所でこだわり?を感じました。

また、コストについても想像よりも安いなといった感じです。
今回のハッカソンは2泊3日の期間で初日から構築を開始して最後まで使った結果大体2000円行くくらいでした。

gcp_costs_image
※途中のスクショです。

コレ好きサービス1: Cloud Build, Cloud Run

初期のCI/CDにはCloud Build, Cloud Runを使用しました。
Cloud Build(ビルド) -> Artifact Registry(イメージのPush, Pull) -> Cloud Run(デプロイ)のおそらくオーソドックスな構成でした。

リポジトリの内部にcloudbuild.yamlを作成して、そこにいろんな設定書き込んだらその通りにCloud Buildが動いてくれます。デプロイもその部分で設定できました。

ビルドの履歴、ログの見やすさなどUX良かったです。

コレ好きサービス2: Firestore

前回のハッカソンでDynamoDBを使用したのですが、NoSQLが便利すぎたので今回はGCPのNoSQLDBであるFirestoreを選んで使いました。

GCPコンソールから簡単にDBいじれたので開発の時便利でした。データ削除簡単すぎてむしろ怖い。

バックエンドからの呼び出しも、特にAPIキーが必要なわけではなく、GCPにデプロイする場合は自動的に認証が通り使用可能になり、それ以外のプラットフォームの場合はサービスアカウント認証を何かしらの手段で行うと使用可能になります。結構つまらずにすぐ接続できたので◎です。

\ \ No SQLはいいぞ(なおコスト) / /

コレ好きサービス3: Kubernetes Engine

インフラといえばコレ。クラスタリング。
k8sは自宅鯖環境で構築しようとして一旦挫折した経験があるのでちょっと怖かったです。
ただインフラもQ Developerくんに任せていたので快適でした。

今回Autopilotモードとやらでクラスタを作成しました。最初はてっきりAIでスケーリングとか色々管理してくれるのかと思ったらそういうわけではなく、普通に指定した閾値に合わせてスケーリングするみたいでした。

鯖好きとしてはオブザーバビリティやログなど様々な情報をGCPコンソール上で閲覧できるのが気持ちが良かった...その他ネットワーク周りの設定もコンソールからしやすかったので良かった。

まとめ

  • Google Cloudはめっちゃ見やすい&使いやすい
    • 自宅鯖をいじっている身としては「さすが有料サービス」という感じでした。
  • 「自身で設計」はマスト。実装はAIにまかせて良い気がする。ただ全てを任せるのではなく、どういった実装を行っているのかをアウトプットさせたり自分でコードを確認したりするとその後がスムーズになる。
  • Terraform使えるようになりたい。
  • Terraform使えるようになりたい。
  • Terraform使えるようになりたい。
  • 自宅鯖にArgoCD構築再挑戦したい。
GitHubで編集を提案

Discussion