Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Cloud NEXT'19 わいわい報告会 - Cloud Run について
Search
avvmoto
April 17, 2019
Technology
1
360
Google Cloud NEXT'19 わいわい報告会 - Cloud Run について
Google Cloud NEXT'19 で発表された、Cloud Run についての概要です。
avvmoto
April 17, 2019
Tweet
Share
More Decks by avvmoto
See All by avvmoto
Go Conference 2019 Autumn Go で超高速な 経路探索エンジンをつくる/Go Conference 2019 Autumn go-ch
avvmoto
14
26k
gRPC Streaming によるスケーラブルな常時接続型 API の構築
avvmoto
14
6.6k
Go Conference 2018 Autumn 大規模ウェブサービスにおけるコード レビュー観点
avvmoto
2
2k
Effective streaming in Golang
avvmoto
6
5.7k
Other Decks in Technology
See All in Technology
能登半島地震において デジタルができたこと・できなかったこと
ditccsugii
0
250
"プロポーザルってなんか怖そう"という境界を超えてみた@TSUDOI by giftee Tech #1
shilo113
0
200
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2k
React19.2のuseEffectEventを追う
maguroalternative
2
450
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
ソフトウェアエンジニアの生成AI活用と、これから
lycorptech_jp
PRO
0
310
フレームワークを意識させないワークショップづくり
keigosuda
0
200
Liquid AI Hackathon Tokyo プレゼン資料
aratako
0
110
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
300
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.6k
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
320
衛星画像超解像化によって実現する2D, 3D空間情報の即時生成と“AI as a Service”/ Real-time generation spatial data enabled_by satellite image super-resolution
lehupa
0
170
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
870
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Docker and Python
trallard
46
3.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Building Applications with DynamoDB
mza
96
6.7k
Practical Orchestrator
shlominoach
190
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Transcript
Google Cloud NEXT'19 わいわい報告会 Cloud Run について 井本裕 オートモーティブ事業本部 モビリティ・インテリジェンス開発部
株式会社ディー・エヌ・エー
目次 2 Cloud Run Cloud Run on GKE 開発Tips 1
2 3 Severless Compute Service 各種比較 4
Cloud Run 3
Cloud Run (BETA) • サーバーレスの Computing Service • Cloud Function,
GAE と同様 • HTTP リクエスト経由でコンテナを実行 • マネージドサービスであり、インフラは抽象化されている • ただし自分の GKE Cluster 上で実行できる Cloud Run on GKE もある(後述) • オートスケール • トラフィックに応じて自動的にゼロからNまで増減 • デモだと 1min で 0 → 15000 concurrency までスケールしてた 4
Serverlessとは Google の定義によると 5 https://youtu.be/xVuuvZkYiNM
ユースケース - 認証なし ( Public ) - Website / API
のフロントエンド - Mobile Backend - Webhook - 認証あり (Private) - マイクロサービス - 画像変換等々 - コンテナなので任意のバイナリ、ライブラリが使える - 非同期処理 - Pub/Sub, Cloud Schedulerから発火 6
特徴 - コンテナベース 7 https://youtu.be/xVuuvZkYiNM
アーキテクチャ 8 https://youtu.be/xVuuvZkYiNM
アーキテクチャ 9 Source: https://twitter.com/ahmetb/status/1116041166359654400
認証について • 前段に IAM で認証ができ、Cloud Run の Service に入る前に GCP
側でチェックしてくれる • Service Account を指定したり、特定のユーザーを指定したり • Firebase 連携もある 10 https://youtu.be/xVuuvZkYiNM
認証 / PubSub - Pub/Sub から Cloud Run へ認証つきで Push
する例 11 https://youtu.be/xVuuvZkYiNM
Concurrency - 1~80 (default:80) - Cloud Functions, AWS labda は
1 なので有利なポイント 12 https://youtu.be/xVuuvZkYiNM
インスタンスのリソース - CPU - 1vCPU固定 - Cloud Run on GKEでは任意
- メモリ - 128MB ~ 2G - default 128MB 13
価格 - 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 / 日
価格 - リクエストをさばいている間のみ課金 - インスタンスの起動時間には寄らない - concurrency が大きいとコストで有利に 15 https://youtu.be/xVuuvZkYiNM
制約 - これらが問題となる場合は Cloud Run on GKEだと存在しない - また、Cloud Run
は region も us-central1 のみ(すぐ追加されるとセッション中で話していた) - どちらも Knative Serving API を使えるので、移行は簡単(らしい) 16 https://youtu.be/xVuuvZkYiNM
Knative Serving API Spec: https://github.com/knative/serving/tree/master/docs/spec 17 https://youtu.be/xVuuvZkYiNM
その他制約 18 https://cloud.google.com/run/quotas
Cloud Run on GKE 19
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
Cloud Run 開発 Tips 21 https://cloud.google.com/run/docs/tips?hl=en
開発Tips • 一般 • リクエスト終了後のバックグラウンドアクティビティは避ける • 一時ファイルの削除 • エラー発生時にサービスをクラッシュさせない •
コールドスタート • サービスの起動を速くする • コンテナイメージサイズの最小化 • 依存ライブラリのロードを最小化する • 重い初期化等は、グローバル変数でインスタンス内で共用化 • グローバル変数の遅延初期化の実行 • Concurrency • 適切なConcurrency、そしてそれに応じた適切なメモリサイズの設定 • mutex/lockに注意 • コンテナセキュリティ(略) 22
サーバーレス各種比較 23
24 https://youtu.be/xVuuvZkYiNM
まとめ 25
まとめ • Cloud Run, Cloud Run on GKE が出た •
コンテナベースなオートスケールするマネージドなサービス • コンテナなので好きな言語、ライブラリが使えて便利 • 認証、ロギング、SSL、などなど便利機能と連携多数 26
個人的な所管 - GAE における min_idle_instance は設定できない - コールドスタート時のレイテンシ悪化がちょっと心配 - 今後設定項目に追加されることを勝手に期待している
- Cloud Run - Cloud SQL等使えない現状だと、本当に画像変換処理とかの用途になりそう - 無料の今のうちに遊んでみよう - いくつか制約に関してアップデートが予告されているので今後に注目 - 複雑な k8s に触らずシュッとオートスケールでコンテナ動かせるの良さそう 27
参考文献 - https://cloud.withgoogle.com/next/sf/sessions?session=SVR302 - https://cloud.google.com/run/ - https://twitter.com/ahmetb/status/1116041166359654400 - https://youtu.be/xVuuvZkYiNM 28