Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Run で作るサーバーレス アーキテクチャ 30 連発 - これのときはこう!

Cloud Run で作るサーバーレス アーキテクチャ 30 連発 - これのときはこう!

GoogleCloudPlatformJapan

September 21, 2024
Tweet

More Decks by GoogleCloudPlatformJapan

Other Decks in Business

Transcript

  1. 諏訪 悠紀 (Yuki Suwa) • カスタマーエンジニア (流通・小売担当) ◦ 2020 年に

    Google Cloud にジョイン ◦ ex-Classmethod (2011 年 - 2020 年) • 得意分野 ◦ Cloud Run などのサーバーレス サービス ◦ Mobile App や Web App の開発 ◦ Vertex AI Search for Retail (検索サービス) ◦ プロトタイピング・デモ作り yuki0211s@X
  2. 本セッションのテーマ • Cloud Run の概要 • サーバーレス アーキテクチャ パターン 30

    連発 厳選した 30 パターンをクイックにご紹介します。 全てのスライドにブログやドキュメントのリンクを載せているので、 詳しくはそちらを参照してください! Cloud Run の アーキテクチャ パターンをたくさん知る!
  3. Proprietary + Confidential Cloud Run は Google Cloud の サーバーレス

    ランタイム です。 フルマネージドな環境で、コンテナ アプリケーションを 素早くセキュアに 起動できます。 ランタイム • 自由度 自由なコード、自由なコンテナ • オンデマンド 実行のための事前準備不要 • スケーラビリティ 0 から高速にスケール • インフラ管理不要 VM やクラスタの管理が不要 Cloud Run 開発体験 • シンプル 準備はほぼ不要、すぐに使える • 自動化 多くの作業を自動化によってケア • 高い満足度、ユーザービリティ 高い CSAT スコア • 開発生産性 開発者にとって使いやすい コスト効率的 • 従量課金 アプリケーションが稼働した分のみの課金 • 無料枠 無料利用枠が毎月使える • 確約利用割引 確約利用で通常料金から大幅に割引 • 定額料金なし 使っていなければノーコスト
  4. Cloud Run の 2 つのリソース Cloud Run ジョブ タスクを非同期で実行 •

    ジョブ実行時間のみ課金 • HTTP エンドポイントなし • 必要なジョブ数に応じて自動スケーリング • 定期実行、手動実行、イベント駆動実行 • 最大 24 時間の長時間タスク • 実行履歴、再実行 Cloud Run サービス HTTP エンドポイントを持つサービスをホスティング • リクエスト処理中のみ課金 • すぐに使える TLS 付きの URL を作成 • トラフィックに応じた自動スケーリング • HTTP, EDA, Websockets, HTTP/2, gRPC • トラフィック分割とロールアウトがビルトイン • リビジョン管理
  5. Web アプリケーション + API の 3-Tier 構成 (SPA) Cloud Run

    API サーバー VPC Cloud SQL Cloud Storage 静的コンテンツ Application Load Balancer Cloud CDN 1 静的ウェブサイトをホストする | Cloud Storage | Google Cloud
  6. Web アプリケーション + API の 3-Tier 構成 (SSR) 2 Cloud

    Run API サーバー VPC Cloud SQL Cloud Storage 静的コンテンツ Application Load Balancer Cloud CDN Cloud Run SSR サーバー Cloud Run に Next.js サービスをデプロイする | Cloud Run Documentation | Google Cloud
  7. モバイルアプリ向け 2-Tier 構成 3 Cloud Run API サーバー Application Load

    Balancer Cloud CDN Firestore 直接読み書き・同期 サーバーサイド側で行いたい 処理は Cloud Run から実施 ウェブまたはモバイル クライアント ライブラリを使用して Firestore データベースを作成する | Google Cloud
  8. Firebase App Hosting を使った SSR アプリケーション 4 Cloud Run SSR

    サーバー App Hosting Cloud Storage 静的コンテンツ App Hosting バックエンドの構成と管理 | Firebase App Hosting
  9. API ゲートウェイ・ BFF 5 Application Load Balancer Cloud CDN Cloud

    Run BFF Cloud Run API サーバー Cloud Run API サーバー Cloud Run API サーバー メルカリShops の技術スタックと、その選定理由 | メルカリエンジニアリング
  10. 複数のリージョンからのトラフィックの処理 6 Cloud Run Application Load Balancer asia-northeast1 Cloud Run

    us-central1 Spanner 複数のリージョンからのトラフィックを処理する | Cloud Run Documentation | Google Cloud Tokyo San Francisco
  11. サービスメッシュ (Cloud Service Mesh) 7 Cloud Run 用に Cloud Service

    Mesh を構成する | Google Cloud Cloud Run Cloud Run Cloud Run Cloud Run Cloud Service Mesh
  12. オンプレミスからのみアクセス可能な内部向け アプリケーション 8 Cloud Run 内部向け Internal Load Balancer VPC

    Cloud SQL Interconnect オンプレミス System プライベート ネットワークと Cloud Run | Cloud Run Documentation | Google Cloud
  13. Google アカウントでアクセス制限 (Identity-Aware Proxy) 9 社員 一般ユーザー ✓ Identity-Aware Proxy

    Cloud Run Web App Application Load Balancer IAP for Cloud Run の有効化 | Identity-Aware Proxy | Google Cloud
  14. Google アカウント以外でアクセス制限 (IAP + Identity Platform) 10 Identity-Aware Proxy Application

    Load Balancer Cloud Run Web App Identity Platform Cloud Run ログインページ IAP の設定からログインページ専用の Cloud Run を構築できる (構成ファイルを使ったカスタマイズも可能 ) Google Email OIDC etc … ログイン済み 未ログイン 外部 ID の有効化 | Identity-Aware Proxy | Google Cloud
  15. 攻撃のブロック (WAF) と CAPTCHA 11 Cloud Run Web App Application

    Load Balancer Cloud Armor Cloud Run API サーバー reCAPTCHA Enterprise ユーザー 攻撃者 ✓ WAF サービス プロバイダとの統合機能 | reCAPTCHA Enterprise | Google Cloud
  16. ストレージのマウント (Cloud Storage FUSE) 12 Cloud Storage Cloud Run Web

    App "$HOME/mount-folder" Cloud Storage FUSE を使用して Cloud Storage バケットをマウントする | Google Cloud $ gcsfuse BUCKET_NAME "$HOME/mount-folder" Bucket A
  17. リアルタイム ストリーミング 13 Cloud Run 向け HTTP / gRPC サーバー

    ストリーミングのご紹介 | Google Cloud 公式ブログ Cloud Run Cloud Storage 大きいファイル (動画など) HTTP / gRPC ストリーミング
  18. イベントドリブン アーキテクチャ (基本) 15 Cloud Run Eventarc イベントトリガー イベント イベント

    ドリブン アーキテクチャ | Eventarc | Google Cloud イベント発火 呼び出し 様々なイベント ソースをサポート • Cloud Storage • Firestore • Audit Logs (多くの Google Cloud サービス) • 3rd Party (Datadog, etc)
  19. Cloud Storage イベントトリガー、ジョブ実行 16 Workflows Eventarc イベントトリガー Cloud Storage ファイル

    Cloud Run ジョブ アップロード イベント発火 呼び出し Eventarc を使用して Cloud Storage からイベントを受信する | Cloud Run Documentation | Google Cloud
  20. Firestore イベントトリガー、 BigQuery にリアルタイム同期 17 Cloud Run データ処理 BigQuery Eventarc

    イベントトリガー Firestore イベント発火 呼び出し 書き込み 書き込み Cloud Firestore イベントを Cloud Run に転送する | Eventarc | Google Cloud
  21. FaaS (Cloud Run Functions) のイベントトリガー 18 Cloud Run Functions Cloud

    Storage Pub/Sub Cloud Run Functions Cloud Functions トリガー | Cloud Functions Documentation | Google Cloud Cloud Run Functions Firestore
  22. ワークフロー・オーケストレーション (例 : 長い文章ファイルの要約 ) 19 Cloud Run BigQuery Workflows

    Eventarc イベントトリガー Cloud Storage Cloud Storage ❶ チャンク取得 Gemini Workflows と Gemini モデルによる長いドキュメントの要約 | Google Cloud 公式ブログ ❷ 要約 ❸ データ加工 ❹ 永続化
  23. アラート通知のカスタマイズ 20 Cloud Run メッセージ加工 Cloud Monitoring アラート Slack LINE

    Mail SendGrid 例外メッセージを Slack と Webhook から配信してスピーディな解決を実現 | Google Cloud 公式ブログ
  24. Cloud Run ジョブの定期実行 21 Cloud Run ジョブ Workflows スケジュールに従ってジョブを実行する |

    Cloud Run Documentation | Google Cloud Cloud Scheduler 定期実行 ジョブ実行 定期的 (cron 指定) で HTTP エンドポイントを 呼び出せる
  25. Always on CPU を使った非同期処理 22 Cloud Run Always on CPU

    Workflows 処理開始 処理完了 CPU の割り当て(サービス) | Cloud Run Documentation | Google Cloud ワークフロー実行は最大 1 年待機可能 Firestore 状態管理 ❶ 非同期処理実行 ❷ 状態監視
  26. キューイング サービス 23 Cloud Run Pub/Sub Cloud Run Cloud Run

    Cloud Tasks Cloud Run Cloud Tasks か Pub/Sub かの選択 | Cloud Tasks Documentation | Google Cloud 同時実行・スケール重視 重複排除重視
  27. BigQuery リモート関数 24 BigQuery Cloud Run リモート関数を使用する | BigQuery |

    Google Cloud CREATE FUNCTION PROJECT_ID.DATASET_ID.remote_add(x INT64, y INT64) RETURNS INT64 REMOTE WITH CONNECTION PROJECT_ID.LOCATION.CONNECTION_NAME OPTIONS ( endpoint = 'ENDPOINT_URL' ) Cloud Run Functions どちらも利用可能
  28. 生成 AI モデルのサービング (GPU 利用) 25 Cloud Run API Artifact

    Registry LLM の コンテナ イメージ NVIDIA GPU を使用した Cloud Run での AI 推論アプリケーションの実行 | Google Cloud 公式ブログ Cloud Run Web App ユーザー
  29. ベクトル検索を使った RAG システム 26 BigQuery Vector Index Cloud Run LangChain

    ユーザー Vertex AI Gemini Vertex AI を使用した RAG 対応生成 AI アプリケーション用インフラストラクチャ | Google Cloud Cloud Run Web App ほとんどの DB でベクトル検索をサポート • BigQuery • Firestore • Spanner • AlloyDB • Cloud SQL
  30. AI ワークフロー (Firebase GenKit) 27 Cloud Run を使った Firebase Genkit

    Cloud Run API Cloud Run Web App ユーザー Genkit デプロイ • AI ワークフローの開発 • プロンプト管理 • ローカルデバッグ • 評価 • モニタリング Genkit プラグイン サポートされている LLM (一部) • Gemini (Vertex AI ) • Gemini (Google AI) • Imagen 2, Imagen 3 • Claude 3 • オープンモデル (Gemma, Llama, etc) • Open AI の GPT ファミリー • Azure Open AI の GPT ファミリー • etc … 各種 LLM の API を呼び出し
  31. Gemini に外部データを参照させる (Function Calling) 28 Gemini 関数呼び出しで Cloud Run を使用する方法

    | Codelabs Vertex AI Gemini ユーザー 対話 Cloud Run API サーバー BigQuery 必要に応じて 情報を取得
  32. カスタマー エージェント (Agent Builder) 29 Cloud Run API サーバー Vertex

    AI Agent ユーザー API 呼び出し (e.g. 商品購入) 対話 Vertex AI Search 情報の検索 (e.g. 商品検索) エージェント アプリを作成する | Vertex AI Agents | Google Cloud
  33. データ エージェント (Looker ) 30 Looker Frontend ユーザー 対話 Cloud

    Run API サーバー BigQuery Looker Query API Vertex AI Gemini LookML Prompt GitHub - looker-open-source/dashboard-summarization
  34. ServerlessDays Tokyo 2024 Day 2 ワークショップ Google Cloud で始める 生成

    AI を活用したアプリケーション開発入門 日程:9 月 22 日(日) 会場:docomo R&D OPEN LAB ODAIBA 時間: 12:00 - 12:50 Social/受付 12:50 - 13:00 イベントの説明 13:00 - 17:00 ワークショップ 参加登録 受付中! ご登録はこちら
  35. 10 月 8 日(火)開催 現地会場:Google Cloud 渋谷オフィス(渋谷ストリーム) オンサイト参加は定員を設けております。 お申し込み多数の場合は抽選とさせていただきます。 詳細・ご登録はこちら

    何が学べる? ➔ クラウド移行のステップ、設計のコツ、プラッ トフォーム移行 ➔ アプリケーションや データベースのモダナイゼーション ➔ 生成 AI や、Cloud Workstations による開発 者体験の向上 誰が学ぶ? ➔ 情報システムエンジニア ➔ 情報システムマネージャ ➔ 開発者 この秋、開催 Google Cloud Modern Infra & Apps Summit ’24 今こそクラウドへ!仮想環境からの移行やモダナイズのノウハウとは goo.gle/gc-ias-next