Slide 1

Slide 1 text

Cloud Run が作る世界
 2022/7/22
 CX事業本部MAD事業部 田中孝明 


Slide 2

Slide 2 text

田中孝明 (Takaaki TANAKA) ● CX事業本部 MAD事業部所属
 ● 福岡オフィス所属
 ● 好きな言語: C++ / Swift
 ● サウナ・スパ プロフェッショナル
 2

Slide 3

Slide 3 text

3 MAD事業部と Google Cloud との関わり https://classmethod.jp/services/mad/

Slide 4

Slide 4 text

4 Cloud Run

Slide 5

Slide 5 text

5 Cloud Run ● コンテナを直接実行できるマネージドコンピューティング プラットフォーム ● コンテナイメージをビルドできるものであれば、任意のプ ログラミング言語で記述されたコードをデプロイできる

Slide 6

Slide 6 text

6 Cloud Run ● Google Cloud 上の他のサービスと連携できる ○ Pub/Sub ○ Cloud Scheduler ○ Cloud Tasks ○ Eventarc

Slide 7

Slide 7 text

7 Cloud Run のデプロイ その1

Slide 8

Slide 8 text

8 Github からビルドして Cloud Run を実行 ● ローカルでビルド&実行できるソースコードとDockerfile を用意する ○ actix/actix-web (Rust) ○ Dockerfile ● Github のリポジトリにソースコードと Dockerfile を Push する https://github.com/kongmingstrap/cloud-run-sampler

Slide 9

Slide 9 text

9 Github からビルドして Cloud Run を実行 ● Cloud Build のトリガーの設定 ○ 自分のリポジトリをソースに設定 ○ Github の指定したブランチに Push すると、Artifact を作成するビルドが 走る ○ タイムアウトがデフォルトだと10分な ので注意

Slide 10

Slide 10 text

10 Github からビルドして Cloud Run を実行 ● Cloud Run のサービス作成 ○ Build した コンテナイメージを指定 ○ その他の設定は必要に応じて

Slide 11

Slide 11 text

11 Github からビルドして Cloud Run を実行 ● Cloud Run の起動が成功 ○ 指定のURLでアクセスできるようになります ○ 以前のビルドしたバージョンに戻す場合も、リビジョンの切り 替えで可能

Slide 12

Slide 12 text

12 Cloud Run のデプロイ その2

Slide 13

Slide 13 text

13 Cloud Run が有効なケース ● HTTP、HTTP/2、WebSocket、gRPC 経由で配信されるリク エスト、ストリーム、イベントのいずれかを提供されている こと ● ローカル永続ファイル システムを必要としない https://cloud.google.com/run/docs/fit-for-run?hl=ja

Slide 14

Slide 14 text

14 Cloud Run が有効なケース ● 同時に実行しているアプリの複数のインスタンスを処理 するようにビルドされている ● インスタンスごとに 8 個の CPU と 32 GiB のメモリを上限と し、それ以上を必要としない ● コンテナ化されていること https://cloud.google.com/run/docs/fit-for-run?hl=ja

Slide 15

Slide 15 text

15 Cloud Run を実行する2つの方法

Slide 16

Slide 16 text

16 Cloud Run でコードを実行する2つの方法 ● サービス ○ Webリクエスト、イベントに応答するコードの実行に 使用 ● ジョブ (Preview) ○ 作業(ジョブ)を実行し、作業の完了後に終了するコードの実 行に使用

Slide 17

Slide 17 text

17 サービス ● 高速なリクエストベースの自動スケーリング ● 使い捨てのコンテナファイルシステム ● 従量課金制 ○ リクエストベース ○ インスタンスベース https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#services

Slide 18

Slide 18 text

18 サービス ● 用途 ○ Webサイト・Webアプリケーション ○ API とマイクロサービス ○ ストリーミングデータ処理 https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#services

Slide 19

Slide 19 text

19 ジョブ (Preview) ● 一つのコンテナインスタンスで実行 ● 独立した同一のコンテナインスタンスを実行することも可 能(配列ジョブ) https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#jobs

Slide 20

Slide 20 text

20 ジョブ (Preview) ● 用途 ○ スクリプトやツール ○ 配列ジョブ ○ スケジュールされたジョブ ● 第2世代の実行環境が必要 https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#jobs

Slide 21

Slide 21 text

21 第2世代

Slide 22

Slide 22 text

22 Cloud Run 第2世代 (Preview) ● 第1世代の実行環境はコールドスタート時間が高速でエ ミュレーションを行う ○ 全てのOSのシステムコールが実行できるわけではなかった ● 第2世代の実行環境では、Linuxの完全な互換性が実現 ○ CPUパフォーマンスの高速化 ○ ネットワークパフォーマンスの高速化 ○ 全てのシステムコール、名前空間、cgroupのサポートを含 む、Linuxとの互換性

Slide 23

Slide 23 text

23 Cloud Run 第2世代 (Preview) ● ネットワークファイルシステムのサポート ○ コンテナ内のディレクトリにマウントできる ○ ホストシステムとコンテナ インスタンスの間でリソースを共有 し、コンテナ インスタンスがガベージ コレクションされた後も リソースを保持できる https://cloud.google.com/run/docs/tutorials/network-filesystems-filestore?hl=ja

Slide 24

Slide 24 text

24 Cloud Functions 第二世代 (Preview) ● Cloud Run + Eventarc を利用したインフラストラクチャ ○ HTTP関数に対して、最大60分の実行時間 ○ 最大 16GB の RAMと4つの vCPU を利用可能 ○ 異なるリビジョンへのトラフィック分割 https://cloud.google.com/blog/ja/products/serverless/introducing-the-next-generation -of-cloud-functions

Slide 25

Slide 25 text

25 まとめ ● ローカルで動かせる環境をそのままコードとして実行でき るので、開発者のマシンに依存しない開発が可能 ● 第二世代の登場で、今までサーバーレスで実現できな かった処理も今後は選択肢になりうる ● Cloud Run は Google Cloud の別のサービス影響を及ぼ しているので、最新情報を追うと他のサービスのアップ デートもキャッチアップできる

Slide 26

Slide 26 text

No content