究極のCloud Runガイド:ゼロから本番環境へ【Google Cloud Next ’25 レポート】

GCP

こんにちは、KIYONOエンジニアの田代です。

サーバーレスコンピューティングは、開発者がインフラストラクチャ管理の負担から解放され、アプリケーション開発に集中できるという点で、非常に魅力的な技術です。

Google Cloud Next ’25のセッション「究極のCloud Runガイド:ゼロから本番環境へ」では、Google CloudのサーバーレスプラットフォームであるCloud Runを活用したアプリケーション開発のベストプラクティスが紹介されました。

本レポートでは、セッションの内容を詳細にまとめ、Cloud Runの概要、デプロイ方法、そして運用管理のポイントについて解説します。

Cloud Run とは?

Cloud Runは、コンテナ化されたアプリケーションをサーバーレスで実行できる Google Cloudのサービスです。

開発者は、コンテナイメージまたはコードをデプロイするだけで、HTTPSエンドポイントを取得し、アプリケーションを公開できます。
インフラストラクチャの管理はGoogleが行うため、開発者はアプリケーションの開発に集中できます。

Cloud Runの利点

Cloud Runは、以下のような利点があります。

  • サーバーレス
    インフラストラクチャ管理が不要
  • 高速なデプロイ
    コンテナイメージをデプロイするだけで、アプリケーションをすぐに公開可能
  • スケーラブル
    トラフィックの増減に応じて自動的にスケール
  • セキュア
    Google Cloudの堅牢なセキュリティ基盤上で動作
  • コスト効率
    使った分だけ課金されるためコストを最適化可能

    Cloud Runのアーキテクチャ

    Cloud Runは、以下のアーキテクチャで動作します。

    • ウェブリクエスト
      ユーザーからCloud Runサービスへのウェブリクエスト
    • Cloud Runサービス
      リクエストを受け取り、コンテナインスタンスに転送
    • コンテナインスタンス
      アプリケーションが実行されるコンテナ
    • プロンプト
      Cloud RunサービスからGeminiへのプロンプト
    • Gemini
      プロンプトを受け取り、応答を生成

      デモ1:Emoji Talesアプリ

      セッションでは、Cloud Runを活用したアプリケーションのデモが行われました。

      最初のデモは、Emoji Talesというアプリです。
      ユーザーが絵文字を選択すると、Gemini がその絵文字に基づいて短い物語を生成するアプリケーションの紹介でした。

      このデモは、Cloud RunとGeminiを組み合わせることで、簡単にインタラクティブなアプリケーションを開発できることの説明となりました。

      Emoji Tales

      デプロイオプション

      Cloud Runには、以下の4つのデプロイオプションがあります。

      • コンテナ:任意のコンテナイメージをデプロイ可能
      • リポジトリ:接続されたコードリポジトリからコードをデプロイ
      • ソース:単一のコマンドでコードをデプロイ
      • 関数:単一用途の関数

        リソースの種類

        Cloud Runには、以下の2種類のリソースがあります。

        • サービス:専用のエンドポイントでHTTPトラフィックを処理
          • コードがリクエストを処理している間だけ課金
          • 自動スケーリング(ゼロスケーリング可)
          • 段階的なロールアウトのためのトラフィック分割機能
          • リビジョン履歴管理
          • HTTPS、HTTP/2、gRPC に対応
        • ジョブ:コンテナを完了まで実行
            • ジョブが実行されている間だけ課金
            • HTTP エンドポイントなし
            • 大規模なジョブのための並列処理
            • 手動実行、またはスケジュール実行
            • 実行履歴管理

        Cloud Run GPU

        Cloud Runでは、GPUを使用したアプリケーションも実行できます。
        GPUは、機械学習や画像処理など、大量の計算を必要とするタスクに最適です。

        Secret Managerとの連携

        アプリケーションで使用するAPIキーやパスワードなどの機密情報は、Secret Managerで安全に管理できます。
        Cloud Runサービスは、Secret Managerから機密情報を取得して環境変数として利用できます。

        デモ2:コンテナイメージ (nginx) のデプロイ

        2つ目のデモでは、nginxのコンテナイメージをCloud Runにデプロイする操作が実演されました。

        コマンドラインから簡単なコマンドを実行するだけで、nginxがCloud Runサービスとしてデプロイされ、HTTPS エンドポイント経由でアクセスできるようになります。

        このデモは、Cloud Runがいかに簡単にコンテナ化されたアプリケーションをデプロイできるか、の説明でした。

        Cloud Runの詳細なデプロイ方法については公式ドキュメントをご参照ください。

        オートスケーリング

        Cloud Runは、トラフィックの増減に応じて、自動的にコンテナインスタンスの数を増減させます。
        これにより、常に最適なリソース配分を維持し、パフォーマンスを最大化できます。

        トラフィックがないときは、インスタンス数をゼロにスケールダウンするため、コストを削減できます。

        Cloud Runにおけるアクセス制御

        Cloud Runでは、外部からのアクセスを制御するための様々なオプションが用意されています。
        これにより、セキュリティを強化し、不要なアクセスからアプリケーションを保護できます。

        セッションでは以下のアクセス制御方法について解説されていました。

        Cloud IAMによる認証

        Cloud RunサービスへのアクセスをCloud IAM(Identity and Access Management)で制御できます。

        特定のユーザーやグループにのみアクセスを許可するポリシーを設定することで、きめ細かいアクセス制御を実現できます。

        Cloud IAMを使用した認証設定は、Cloud Runサービスの作成時、または作成後にCloud Consoleから行えます。
        「認証を必須にする」オプションを選択すると、認証されていないアクセスを拒否できます。

        サービス間の認証

        Cloud Runサービス同士で通信する場合、サービスアカウントを使用して認証を行うことができます。
        例えば、フロントエンドサービスがバックエンドサービスにアクセスする際に、IDトークンを付与することで、セキュアな通信を実現できます。

        この方法では、バックエンドサービスはCloud IAMポリシーで保護され、フロントエンドサービスのサービスアカウントにのみアクセスが許可されます。

        VPCを介した内部トラフィックのみを許可

        Cloud RunサービスをVPC (Virtual Private Cloud) 内に配置し、外部からの直接アクセスを遮断することも可能です。
        この場合、VPC内の他のサービスからのみCloud Runサービスにアクセスできます。
         

        この構成では、フロントエンドサービスはインターネットに公開され、バックエンドサービスはVPC内に配置されます。
        フロントエンドサービスはVPCネットワークを介してバックエンドサービスにアクセスします。

        Ingress設定

        Cloud RunサービスへのIngressを制御することで、トラフィックの流入元を制限できます。

        以下のIngress設定が可能です。

        • 内部トラフィックのみ
          同じプロジェクト、共有VPC、またはサービスコントロール境界からのトラフィックのみを許可。
        • すべてのトラフィック
          インターネットからのトラフィックを許可。
        • 外部アプリケーションロードバランサーからのトラフィック
          ロードバランサーからのトラフィックのみを許可。

        これらのアクセス制御オプションを組み合わせることで、Cloud Runサービスのセキュリティを強化し、お客様の要件に合わせたアクセス制御を実現できます。

        料金

        Cloud Runは、リクエストベースとインスタンスベースの2つの料金モデルを提供します。

        • リクエストベース:リクエストを処理している間だけ課金、アイドル状態のインスタンスは無料
        • インスタンスベース:インスタンスが実行されている間だけ課金、リクエストベースよりもインスタンス料金が安価

        コスト推奨機能の紹介もありました。
        この機能は、過去の利用状況に基づいて、最適な料金モデルを推奨してくれます。

        質疑応答

        セッションの最後には、参加者からの質疑応答がありました。
        以下は、その中から特に重要な質問と回答です。

        • 質問:Cloud Runは、どのような種類のアプリケーションに適していますか?
        • 回答:Cloud Runは、ウェブアプリケーション、API、マイクロサービスなど、様々な種類のアプリケーションに適しています。特に、トラフィックの変動が大きいアプリケーションや、迅速なデプロイが必要なアプリケーションに最適です。
        • 質問:Cloud Runのセキュリティ対策はどのようになっていますか?
        • 回答:Cloud Runは、Google Cloudの堅牢なセキュリティ基盤上で動作します。また、IAM (Identity and Access Management) を使用して、アクセス制御や認証を行うことができます。
        • 質問:Cloud Runは、他のサーバーレスプラットフォームと比べてどのような利点がありますか?
        • 回答:Cloud Runは、コンテナネイティブであるため、開発者は使い慣れたツールやワークフローをそのまま利用できます。また、オートスケーリングやゼロスケーリングなどの機能により、コストを最適化できます

        まとめ

        Cloud Runは、サーバーレスでコンテナ化されたアプリケーションを実行できる、シンプルでスケーラブル、かつセキュアなプラットフォームです。

        開発者は、インフラストラクチャ管理の負担から解放され、アプリケーションの開発に集中できます。
        本レポートで紹介したデプロイ方法や運用管理のポイントを参考に、Cloud Run を活用したアプリケーション開発を検討してみてはいかがでしょうか。

        本レポートが、Cloud Run を活用したアプリケーション開発の参考になれば幸いです。

        お問い合わせ

          GCP
          田代陽向をフォローする
          KIYONO Engineer Blog

          コメント

          PAGE TOP
          タイトルとURLをコピーしました