こんにちは、KIYONOエンジニアの田代です。
Cloud Run とは?
インフラストラクチャの管理はGoogleが行うため、開発者はアプリケーションの開発に集中できます。
Cloud Runの利点
サーバーレス インフラストラクチャ管理が不要
高速なデプロイ コンテナイメージをデプロイするだけで、アプリケーションをすぐに公開可能
スケーラブル トラフィックの増減に応じて自動的にスケール
セキュア Google Cloudの堅牢なセキュリティ基盤上で動作
コスト効率 使った分だけ課金されるためコストを最適化可能
Cloud Runのアーキテクチャ
ウェブリクエスト ユーザーからCloud Runサービスへのウェブリクエスト
Cloud Runサービス リクエストを受け取り、コンテナインスタンスに転送
コンテナインスタンス アプリケーションが実行されるコンテナ
プロンプト Cloud RunサービスからGeminiへのプロンプト
Gemini プロンプトを受け取り、応答を生成
デモ1:Emoji Talesアプリ
ユーザーが絵文字を選択すると、Gemini がその絵文字に基づいて短い物語を生成するアプリケーションの紹介でした。

Emoji Tales
デプロイオプション
コンテナ: 任意のコンテナイメージをデプロイ可能リポジトリ: 接続されたコードリポジトリからコードをデプロイソース: 単一のコマンドでコードをデプロイ関数: 単一用途の関数
リソースの種類
サービス: 専用のエンドポイントでHTTPトラフィックを処理コードがリクエストを処理している間だけ課金 自動スケーリング(ゼロスケーリング可) 段階的なロールアウトのためのトラフィック分割機能 リビジョン履歴管理 HTTPS、HTTP/2、gRPC に対応
ジョブ: コンテナを完了まで実行-
ジョブが実行されている間だけ課金 HTTP エンドポイントなし 大規模なジョブのための並列処理 手動実行、またはスケジュール実行 実行履歴管理
-
Cloud Run GPU
Secret Managerとの連携
Cloud Runサービスは、Secret Managerから機密情報を取得して環境変数として利用できます。
デモ2:コンテナイメージ (nginx) のデプロイ
Cloud Runの詳細なデプロイ方法については公式ドキュメントをご参照ください。
オートスケーリング
これにより、常に最適なリソース配分を維持し、パフォーマンスを最大化できます。
Cloud Runにおけるアクセス制御
Cloud Runでは、外部からのアクセスを制御するための様々なオプションが用意されています。
これにより、セキュリティを強化し、不要なアクセスからアプリケーションを保護できます。
セッションでは以下のアクセス制御方法について解説されていました。
Cloud IAMによる認証
サービス間の認証
例えば、フロントエンドサービスがバックエンドサービスにアクセスする際に、IDトークンを付与することで、セキュアな通信を実現できます。
VPCを介した内部トラフィックのみを許可
この場合、VPC内の他のサービスからのみCloud Runサービスにアクセスできます。
フロントエンドサービスはVPCネットワークを介してバックエンドサービスにアクセスします。
Ingress設定
内部トラフィックのみ 同じプロジェクト、共有VPC、またはサービスコントロール境界からのトラフィックのみを許可。
すべてのトラフィック インターネットからのトラフィックを許可。
外部アプリケーションロードバランサーからのトラフィック ロードバランサーからのトラフィックのみを許可。
料金
リクエストベース: リクエストを処理している間だけ課金、アイドル状態のインスタンスは無料インスタンスベース: インスタンスが実行されている間だけ課金、リクエストベースよりもインスタンス料金が安価
この機能は、過去の利用状況に基づいて、最適な料金モデルを推奨してくれます。
質疑応答
以下は、その中から特に重要な質問と回答です。
質問: Cloud Runは、どのような種類のアプリケーションに適していますか?回答: Cloud Runは、ウェブアプリケーション、API、マイクロサービスなど、様々な種類のアプリケーションに適しています。特に、トラフィックの変動が大きいアプリケーションや、迅速なデプロイが必要なアプリケーションに最適です。質問: Cloud Runのセキュリティ対策はどのようになっていますか?回答: Cloud Runは、Google Cloudの堅牢なセキュリティ基盤上で動作します。また、IAM (Identity and Access Management) を使用して、アクセス制御や認証を行うことができます。質問: Cloud Runは、他のサーバーレスプラットフォームと比べてどのような利点がありますか?回答: Cloud Runは、コンテナネイティブであるため、開発者は使い慣れたツールやワークフローをそのまま利用できます。また、オートスケーリングやゼロスケーリングなどの機能により、コストを最適化できます
まとめ
本レポートで紹介したデプロイ方法や運用管理のポイントを参考に、Cloud Run を活用したアプリケーション開発を検討してみてはいかがでしょうか。
コメント