Save 37% off PRO during our Black Friday Sale! »

その言語、 Cloud Run で実装してみない? #devio2021

その言語、 Cloud Run で実装してみない? #devio2021

MAD事業部では以前から一部使われていた Google Cloud を本格的に利用しようという動きがあります。個人的に好きなサービスである Cloud Run を使った内容をお話しします。

BLOG: https://dev.classmethod.jp/articles/devio2021-overview-cloud-run/

808ce3d41280c085f8bdc27dce7ea8fb?s=128

Takaaki Tanaka

October 06, 2021
Tweet

Transcript

  1. その言語、 Cloud Run で実装してみない? CX事業本部 MAD事業部 田中孝明

  2. 田中 孝明 (Takaaki TANAKA) • CX事業本部 MAD事業部所属
 • 福岡オフィス所属
 •

    好きな言語: C++ / Swift
 • サウナ・スパ プロフェッショナル

  3. Cloud Run について   Cloud Run について

  4. Cloud Run を一言で 参照: 「Cloud Run: サーバーレス コンテナの話」 https://cloud.google.com/blog/ja/topics/developers-practitioners/cloud-run-story-serverless-containers “Cloud

    Run は、 サーバーレスのコンテナ化された マイクロサービスをデプロイして スケールするためのフルマネージド コンピューティング環境です。 “
  5. 主な機能 • 任意のプログラミング言語、OSのライブラリを使用できる • Google Cloud の提供するコンテナ エコシステムとの高い 親和性 •

    コードが実行されている間のみ料金が発生(従量課金)
  6. Cloud Run : サーバーレスコンテナ • ベンダーロックインなし • 高速自動スケーリング • トラフィックの分割

    • カスタムドメイン • 自動冗長化
  7. 各種サービスとの統合 • Cloud Code • Cloud Build • Container Registry

    / Artifact Registry • Cloud Monitoring • Cloud Logging • Cloud Debugger
  8. 呼び出し方 • HTTPS • gRPC • WebSockets • Pub/Sub からのトリガー

    • スケジュールに沿ってサービスを実行 (Cloud Scheduler) • 非同期タスクとして実行 (Cloud Tasks)
  9. Eventarc で 60 以上の Google Cloud サービスと連携 • Eventarc からのイベントをトリガーに

    Cloud Run を実行 参照: 「60 を超える Google Cloud ソースのイベントで Cloud Run をトリガーする」 https://cloud.google.com/blog/ja/products/serverless/build-event-driven-applications-in-cloud-run
  10. Cloud Run から Cloud SQL への接続 • パブリックIPパスの場合は Cloud Run

    によって暗号化が行 われ、 Cloud SQL Auth Proxy を使用して Unix ソケット 経由で接続 • プライベートIPパスの場合はサーバーレスVPCアクセスを 介してインスタンスに直接接続
  11. Cloud Functions との棲み分け Cloud Functions との棲み分け

  12. Cloud Functions との棲み分け • Cloud Functions は限られたプログラミング言語のコード (関数)をデプロイする • リクエストタイムが

    Cloud Run が最大 60 分、Cloud Functions は最大 9 分 • Cloud Run はデフォルトで各コンテナインスタンスで複数 の同時リクエストを送信するように構成
  13. CPUが割り当てられる機能がプレビューに • 応答を返した後にバックグラウンドタスク、その他の非同 期処理を実行する • CPUリソースにフルアクセスした状態で一定数のコンテナ インスタンスを稼働させ続けられる 参照: 「新しい CPU

    割り当てコントロールにより Cloud Run 上でさらに多様なワークロードを実行」 https://cloud.google.com/blog/ja/products/serverless/cloud-run-gets-always-on-cpu-allocation
  14. 本題 好きな言語で実装してみる 14

  15. 他の言語でサービスをビルドしてデプロイする • 各言語のサンプルアプリケーションを提供 ◦ kotlin ◦ Swift ◦ Dart ◦

    Rust ◦ Elixir ◦ Deno ◦ etc... 参照: 「他の言語でサービスをビルドしてデプロイする」 https://cloud.google.com/run/docs/quickstarts/build-and-deploy/other
  16. 他の言語でサービスをビルドしてデプロイする 参照: 「他の言語でサービスをビルドしてデプロイする」 https://cloud.google.com/run/docs/quickstarts/build-and-deploy/other

  17. まとめ • Cloud Functions で制限に引っかかる処理も実行可能 • Docker コンテナにパッケージ化しているアプリケーショ ンの資産を利用できる •

    コンテナにパッケージ化できれば好きな言語で実装できる
  18. None