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

Cloud Runマネージドに適したアプリケーションを考える

chimame
October 18, 2020

Cloud Runマネージドに適したアプリケーションを考える

GDG DevFest 2020

chimame

October 18, 2020
Tweet

More Decks by chimame

Other Decks in Programming

Transcript

  1. Whoa! 名前: rito 職業: Webエンジニア (アプリケーションエンジニア) 分野: Ruby on Rails,

    Nodejs, React, Docker, AWS, GCP 所属: Ateam Finergy Inc. コミュニティ: GDG Osaka Rails follow-up Osaka Osaka Web Developers Meetup twitter: @chimame_rt GitHub: chimame
  2. Cloud Run Cloud SQL Cloud Memorystore Cloud VPC Cloud Scheduler

    Cloud Tasks Cloud Load Balancing Cloud Storage ※beta
  3. Cloud Runのオートスケールは以下の条件に基づく(※) • リクエストの処理に必要な CPU の量 • 同時実行の設定 • コンテナ

    インスタンスの最大数の設定 1つ目のCPUの量というのが意外と厄介ではある。残り2つに ついては設定次第なのでもう少し説明する ※ https://cloud.google.com/run/docs/about-instance-autoscaling?hl=ja Cloud Runのオートスケールの条件 19
  4. 24

  5. • スケールはスケールが必要となった リクエストが派生 した段階 で行われる • スケールが必要となった リクエストはスケールするコ ンテナで処理 される

    言うなればコンテナがリクエストを受け入れる(起動)状態に なる前からリクエストは待たされる Cloud Runのオートスケール時の動作 29
  6. Cloud Runのオートスケールは以下の条件に基づく(※) • リクエストの処理に必要な CPU の量 • 同時実行の設定 • コンテナ

    インスタンスの最大数の設定 1つ目のCPUの量というのが意外と厄介ではある。残り2つに ついては設定次第なのでもう少し説明する ※ https://cloud.google.com/run/docs/about-instance-autoscaling?hl=ja Cloud Runのオートスケールの条件(再掲載 33
  7. Cloud Runのオートスケールは以下の条件に基づく(※) • リクエストの処理に必要な CPU の量 • 同時実行の設定 • コンテナ

    インスタンスの最大数の設定 1つ目のCPUの量というのが意外と厄介ではある。残り2つに ついては設定次第なのでもう少し説明する ※ https://cloud.google.com/run/docs/about-instance-autoscaling?hl=ja Cloud Runのオートスケールの条件(再掲載 34
  8. 最大アクセス数を捌くためのコンテナ数を事前に用意する。それ をするためにCloud Run for Anthosを使用する 【メリット】 • スケール数をほぼ抑えることが可能 • GKEを使用することになるので常時起動のJobなども定義が

    可能 【デメリット】 • GKEが必要となりKubernetesの知識が若干必要となる • マネージドに比べるとサービス初期などは費用が割高にな る スケールさせる必要がある場合を非常時とし、 通常時はスケールさせない案
  9. Cloud Run for Anthosと同様にマネージド版でも最小インスタン ス数を指定してオートスケールを抑える案 【メリット】 • スケール数をほぼ抑えることが可能 【デメリット】 •

    常時インスタンスを立ち上げている状態となるので起動中 はずっと費用がかかることになる(Cloud Runマネージド版 のリクエスト時間分の課金ではなくなる) マネージドでも最小インスタンス数を指定することがで きるようになる
  10. 稼働時間チェックなどで定期的にリクエストを送り コールドスタンバイにしない Monitoring1 (Uptime check) service1 Monitoring2 (Uptime check) service2

    Monitoring3 (Uptime check) service3 example.com DNSラウンドロビンをさせて最小コンテナ数≒ サービスとして定義する