mcpField
G
gcp-cloud-run

gcp-cloud-run

github.com/sickn33クラウド・DevOps48.7k1.5k 回インストール今日更新
リポジトリ

gcp-cloud-run について

GCP上でサーバーレスアプリケーションを構築するための専門スキルです。コンテナ化されたCloud Runサービス、イベント駆動のCloud Run Functions、コールドスタート最適化、Pub/Sub構成を扱い、権限、コスト、スケーリング、監視上の注意点も示します。

主な機能

  1. 01コンテナ化されたCloud Runサービスの構築
  2. 02Cloud Run Functionsによるイベント処理
  3. 03コールドスタートとイベント駆動構成の最適化
  4. 04同時実行数、インスタンス上限、DB接続の検討
  5. 05デプロイ、監視、ロールバックの計画

活用シーン

  1. 01GCPでサーバーレスアプリをデプロイ
  2. 02Pub/Subのイベント駆動タスクを処理
  3. 03Cloud Runの同時実行数とリソース設定を評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill gcp-cloud-run

インストール後、Claude Code で/gcp-cloud-runを入力して読み込まれたか確認します。

同梱ファイルreferences/detailed-guide.md

詳細

GCP Cloud Run

GCP 上で本番環境に対応したサーバーレスアプリケーションを構築するための専門スキルです。 Cloud Run サービス(コンテナ化)、Cloud Run Functions(イベント駆動型)、 コールドスタートの最適化、Pub/Sub を使ったイベント駆動型アーキテクチャを扱います。

デプロイの前提条件

例は不完全な統合スケッチです。アプリケーションヘルパー、IAM ロール、キュー、リージョン、ヘルスチェック/起動プローブを用意する必要があります。認可されたプロジェクト/サービスと予算を選択し、デフォルトでプライベートなイングレス/認証を使用してください。Artifact Registry のバージョン付きイメージとロールバック用リビジョンを用意してください。過去の nodejs20/GCR の例では、サポート対象ランタイムの確認とレジストリ移行の確認が必要です。最大インスタンス数と DB 接続の合計数に上限を設定してください。最小インスタンス数とブーストには費用が発生します。2xx レスポンスは、処理が完了した後、または処理が確実にキューに登録された後に返し、再試行に備えて冪等性を確保してください。psutil のホストメモリ読み取り値はコンテナの cgroup 制限を反映しない場合があります。Cloud Monitoring/コンテナメトリクスを使用してください。

詳細ガイド

このスキルを実行する前に、詳細ガイドをお読みください。完全な手順と参考資料が記載されています。安全性、前提条件、検証要件は必須として扱ってください。特定の作業では該当するセクションを読み、エンドツーエンドの作業ではガイド全体をお読みください。

/tmp の使用量を含めてメモリを計算する

# cloudbuild.yaml
steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    args:
      - 'run'
      - 'deploy'
      - 'my-service'
      - '--memory=1Gi'  # Include /tmp overhead
      - '--image=gcr.io/$PROJECT_ID/my-service'

メモリ使用量を監視する

import psutil
import logging

def log_memory():
    memory = psutil.virtual_memory()
    logging.info(f"Memory: {memory.percent}% used, "
                f"{memory.available / 1024 / 1024:.0f}MB available")
concurrency=1 によるスケーリングのボトルネック

深刻度:高

状況:リクエストを分離するために concurrency を 1 に設定する

症状: オートスケーリングによって多数のコンテナインスタンスが作成されます。 トラフィック急増時にレイテンシが高くなります。 コールドスタートが増加します。 インスタンス数の増加により費用が高くなります。

問題が発生する理由: concurrency を 1 に設定すると、各コンテナは一度に 1 つのリクエストしか処理しません。トラフィックが急増すると、次のようになります。

  • 同時に処理中の 100 件のリクエストには、容量、キューイング、制限に応じて、最大 100 個のインスタンスが必要になる場合があります
  • 各インスタンスでコールドスタートのオーバーヘッドが発生します
  • インスタンスが増えるほど費用が高くなります
  • スケーリングには時間がかかり、リクエストがキューに滞留します

次の場合に限り使用してください:

  • 処理が実際にシングルスレッドである
  • リクエストごとの処理がメモリを大量に消費する
  • スレッドセーフでないライブラリを使用している

推奨される対処法:ハンドラーのスレッドセーフ性、ピーク時のメモリ使用量、レイテンシ、下流接続の制限に合った concurrency を負荷テストで確認してください。concurrency を 1 にするのが適切な場合もあります。

使用する場面

依頼が上記の機能とパターンに明確に合致する場合に、このスキルを使用してください。

制限事項

  • 作業が上記の説明にある範囲に明確に合致する場合にのみ、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、成功基準が不足している場合は、作業を中断して確認してください。

コメント