nero15.devのインフラ構築において、GCP(Google Cloud Platform)のCloud Runを採用しました。
正直に言うと、運用経験は長くあったものの、商用レベルのインフラ構築経験はほぼありませんでした。そんな私がCloud Runを選んだ理由と、実際に使ってみてどうだったのかを共有します。
選定のきっかけは、Googleが主催する**Modern App Summit '25**というイベントに参加したことでした。
このイベントは生成AIやGoogle Cloudの活用がメインテーマで、最新のクラウドネイティブな開発手法やGCPの新機能について学べる内容でした。様々なセッションを聞く中で、特に印象に残ったのがCloud Runでした。
「とにかく使ってみたい」
イベントで得た知識だけでは実感が湧かなかったので、まずは会社の社内用管理画面のリプレイスプロジェクトで試してみることにしました。この管理画面は社内のみで使用するツールで、アクセス頻度も高くなく、トラフィック予測も比較的容易でした。
実際に構築してみたところ、想像以上に良かった。
この経験から、個人プロジェクトであるnero15.devでも採用を決めました。
Cloud Runは、フルマネージドなサーバーレスコンテナ実行環境です。
簡単に言えば:
公式ドキュメント:https://cloud.google.com/run/docs
私の見解では、サーバレスで運用がほぼ0でいけることとコストメリットが最強だと考えています。
Cloud Runの最大の特徴はScale to Zeroです。
リクエストがない時、インスタンスは完全に0にスケールダウンします。つまり、アクセスがない時間帯は料金が発生しないのです。
個人で運営するメディアサイトにとって、これは非常に大きなメリットでした:
従来のVMベースのインフラでは、常に最低限のインスタンスを起動しておく必要がありましたが、Cloud Runではその必要がありません。
課金は100ms単位で、実際にリクエストを処理している時間のみです。EC2やGCEのように、起動している時間全体に対して課金されるわけではありません。
Cloud Runは、トラフィックに応じて自動的にインスタンスを増減します。
試合速報記事を公開した瞬間にアクセスが急増する、といった状況でも、Cloud Runが自動で対応してくれます。インフラの知識が浅い私でも、スケーリング設計で悩む必要がありませんでした。
Cloud Runは任意の言語・フレームワークに対応しています。
Dockerコンテナとして動くものなら何でもデプロイできるため:
すべて同じプラットフォームで動かせます。将来的に技術スタックを変更したり、マイクロサービス化する際も、柔軟に対応できます。
また、Cloud Runはソースコードから直接デプロイする機能もあります(Buildpacks)。Dockerfileを書かなくても、Node.js、Python、Go、Javaなどの主要言語であれば、自動でコンテナイメージを生成してデプロイできます。
フルマネージドなので、インフラの運用負荷がほぼゼロです。
*.run.app
ドメインでTLS証明書が自動管理される)商用レベルのインフラ構築経験がほぼなかった私にとって、これらが全て自動で提供されるのは非常に助かりました。本来学ぶべきインフラの知識をスキップできるわけではありませんが、まずはプロダクトを世に出すことに集中できました。
Cloud Runは、GitHub ActionsやCloud Buildとの統合が非常にスムーズです。
例えば、新しい記事を書いてGitHubにpushすれば、自動的にビルドされてデプロイされる、という流れを簡単に構築できます。手動デプロイの手間が完全になくなりました。
Cloud Runは、他のGCPサービスとシームレスに統合できます。
nero15.devでは現在は使っていませんが、将来的に以下のような拡張が考えられます:
これらを組み合わせることで、より高度なメディアプラットフォームに進化させることができます。
*.run.app
のデフォルトドメインだけでなく、カスタムドメインも簡単に設定できます。
nero15.devのような独自ドメインでの運用も、特別な設定なしで実現できました。
上述した社内管理画面のリプレイスの際は大きなハマりポイントがあったのですが、それはまたの機会に...ほぼ私と同様の事象は起こらないと思うので。
Cloud Runには、リビジョン管理とトラフィック分割の機能が組み込まれています。
これにより、新機能を段階的にリリースしたり、問題があればすぐに戻したりできます。カナリアリリースのような高度なデプロイ戦略も、インフラの深い知識なしで実現できます。
Next.jsとの相性が良く、最も手軽な選択肢でした。
ミニマムでやるならまあこれなんだと思う。ただ「エンジニアとして個人プロジェクトを立ち上げるんだよ?自前で1から構築するよな?な?」という、リトルnero15の圧高めベテランエンジニアが言ってました。従いました。
AWSのサービスでも構築は可能でした。
こちらでも正直良かったが、Cloud Runを使いたいという感情面が優位でした。
gcloud run deploy
一発で完了特に、会社の管理画面で一度経験していたので、個人プロジェクトでの導入は非常にスムーズでした。
パフォーマンスが良い。運用なし。最強!
高トラフィック時(そんな嬉しい悩みが発生するのはいつになることか)にどうなるかは今後調査。
nero15.devのインフラとして、GCP Cloud Runは最適な選択でした。
特に:
社内管理画面での実践を経て、個人プロジェクトを本番環境で運用できるようになりました。
**「まずは使ってみる」**という姿勢が、結果的に最良の学習方法だったと感じています。
Cloud Runは、個人開発者にとって非常に優れた選択肢です。インフラの知識に自信がなくても、まずは触ってみることをおすすめします。
参考リンク
最終更新: 2025年10月5日