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

Google Cloud NEXT'19 わいわい報告会 - Cloud Run について

avvmoto
April 17, 2019

Google Cloud NEXT'19 わいわい報告会 - Cloud Run について

Google Cloud NEXT'19 で発表された、Cloud Run についての概要です。

avvmoto

April 17, 2019
Tweet

More Decks by avvmoto

Other Decks in Technology

Transcript

  1. 目次 2 Cloud Run Cloud Run on GKE 開発Tips 1

    2 3 Severless Compute Service 各種比較 4
  2. Cloud Run (BETA) • サーバーレスの Computing Service • Cloud Function,

    GAE と同様 • HTTP リクエスト経由でコンテナを実行 • マネージドサービスであり、インフラは抽象化されている • ただし自分の GKE Cluster 上で実行できる Cloud Run on GKE もある(後述) • オートスケール • トラフィックに応じて自動的にゼロからNまで増減 • デモだと 1min で 0 → 15000 concurrency までスケールしてた 4
  3. ユースケース - 認証なし ( Public ) - Website / API

    のフロントエンド - Mobile Backend - Webhook - 認証あり (Private) - マイクロサービス - 画像変換等々 - コンテナなので任意のバイナリ、ライブラリが使える - 非同期処理 - Pub/Sub, Cloud Schedulerから発火 6
  4. 認証について • 前段に IAM で認証ができ、Cloud Run の Service に入る前に GCP

    側でチェックしてくれる • Service Account を指定したり、特定のユーザーを指定したり • Firebase 連携もある 10 https://youtu.be/xVuuvZkYiNM
  5. 認証 / PubSub - Pub/Sub から Cloud Run へ認証つきで Push

    する例 11 https://youtu.be/xVuuvZkYiNM
  6. Concurrency - 1~80 (default:80) - Cloud Functions, AWS labda は

    1 なので有利なポイント 12 https://youtu.be/xVuuvZkYiNM
  7. 価格 - 100ms単位で課金 - 無料枠あり - 有料枠 ( BETA期間中の今なら無料 )

    - 約 $2 / vCPU /日 - 約 $0.2 / GB(メモリ) / 日 14 https://cloud.google.com/run/pricing cf. GAE SE f2 instance (1.2 GHz 256 MB) $ 2.4 / 日
  8. 制約 - これらが問題となる場合は Cloud Run on GKEだと存在しない - また、Cloud Run

    は region も us-central1 のみ(すぐ追加されるとセッション中で話していた) - どちらも Knative Serving API を使えるので、移行は簡単(らしい) 16 https://youtu.be/xVuuvZkYiNM
  9. Cloud Run on GKE • Google Kubernetes Engineクラスタへのアドオン • 自前の

    GKE Cluster に Google が Knative をインストールしてくれるというもの • Cloud Run の一部の制約がない • Cloud Run on GKEの制約 • GKE Cluster の料金の発生 • 自分でSSL証明書の管理が必要 • 自動スケーリングはGKEクラスタの 容量内 20 Source: https://twitter.com/ahmetb/status/1116041166359654400
  10. 開発Tips • 一般 • リクエスト終了後のバックグラウンドアクティビティは避ける • 一時ファイルの削除 • エラー発生時にサービスをクラッシュさせない •

    コールドスタート • サービスの起動を速くする • コンテナイメージサイズの最小化 • 依存ライブラリのロードを最小化する • 重い初期化等は、グローバル変数でインスタンス内で共用化 • グローバル変数の遅延初期化の実行 • Concurrency • 適切なConcurrency、そしてそれに応じた適切なメモリサイズの設定 • mutex/lockに注意 • コンテナセキュリティ(略) 22
  11. まとめ • Cloud Run, Cloud Run on GKE が出た •

    コンテナベースなオートスケールするマネージドなサービス • コンテナなので好きな言語、ライブラリが使えて便利 • 認証、ロギング、SSL、などなど便利機能と連携多数 26
  12. 個人的な所管 - GAE における min_idle_instance は設定できない - コールドスタート時のレイテンシ悪化がちょっと心配 - 今後設定項目に追加されることを勝手に期待している

    - Cloud Run - Cloud SQL等使えない現状だと、本当に画像変換処理とかの用途になりそう - 無料の今のうちに遊んでみよう - いくつか制約に関してアップデートが予告されているので今後に注目 - 複雑な k8s に触らずシュッとオートスケールでコンテナ動かせるの良さそう 27