-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cloud Runの仕組み、料金体系 #22
Comments
料金https://cloud.google.com/run/pricing?hl=ja 使用したリソースに対してのみ課金されます(100 ミリ秒単位で切り上げ) 同時実行の設定に一度に 1 つ以上のリクエストを設定すると、割り当てられた CPU とメモリを複数のリクエストで共有できます。 アウトバウンド インターネット データ転送にはプレミアム ネットワーク サービス ティアが使用されます。これには Google Cloud ネットワーキング料金[1]が適用されます。これには、北米内で 1 か月あたり 1 GiB の無料データ転送枠が含まれます。 Virtual Private Cloud ネットワークへのデータ転送は、VM からのデータ転送として課金され、Virtual Private Cloud のデータ転送料金で課金されます。サーバーレス VPC アクセス コネクタでは、実行に必要なコンピューティングに対しても料金が発生します。サーバーレス VPC アクセスの料金をご覧ください。 同じリージョン内の Google Cloud リソースへのデータ転送(Cloud Run サービスから別の Cloud Run サービスへのトラフィックなど)は無料です。Media CDN、Cloud CDN、Cloud Load Balancing へのデータ転送は無料です。 確約利用割引: 確約利用割引を購入することで、Cloud Run の継続使用の費用を抑えることができます[2]。たとえば、Cloud Run サービスに常に 1 つ以上のアクティブなインスタンスがある場合は、少なくともこの量をコミットすることで、コストを削減できます。Cloud Run は、過去の使用状況に基づいて確約利用割引の推奨事項を自動的に作成します。 まだアクセスは少ないので、割り当てを一定にしなくてよさそう。 リクエストの処理中にのみ CPU が割り当てられたサービスに対する課金対象インスタンス時間
インスタンスの最小数を設定すると、それらのインスタンスがリクエストを処理していないときは、異なる「アイドル」レートで課金されます。[3]上記の表をご覧ください。 [1] tokyo rigion では1TBi当たりだいたい$0.15 |
アーキテクチャhttps://blog.g-gen.co.jp/entry/cloud-run-explained Kubernetes 上にサーバーレスなコンピューティング基盤を構築できるオープンソースソフトウェアの Knative がベースとなっています Cloud Run サービス (services)Cloud Run サービスでは、コンテナイメージをデプロイするだけで、コンテナの実行環境(コンテナインスタンス)とリクエストを受信する HTTPS エンドポイントが提供されます。 リクエストを受けてレスポンスを返す、ウェブサイトや API バックエンドなどのユースケースに用いられます。 Cloud Run ジョブ (jobs)Cloud Run ジョブでは、コンテナインスタンスを使用して、ユーザーが作成したコードを HTTP リクエスト起点ではない ジョブ として実行することができます サービスの冗長性Cloud Run サービスは特定のリージョンに作成され、冗長性とフェイルオーバーのため、リージョン内の複数のゾーンに自動的に複製されます。 デプロイ元のコンテナイメージサーバーレス CI / CD プラットフォームである Cloud Build を使用することで、Git リポジトリへの push をトリガーとして、Cloud Run への継続的なデプロイを実現することも可能です コンテナの要件
トラフィック移行とロールバック新しいリビジョンを作成した際に、既存のリビジョンに対する全てのトラフィックを即座に移行するか、段階的に移行するかを選択することができます。 また、複数のリビジョンでトラフィックを分割したり、古いリビジョンにロールバックしたりできます(参考)。 エンドポイントデフォルトでは、Cloud Run サービスには *.run.app ドメインの一意のサブドメインがサービスの HTTPS エンドポイントとして提供されます。 グローバル外部 HTTPS ロードバランサ または Firebase Hosting を利用することで、カスタムドメインを設定することもできます(参考)。 コンテナインスタンスの最大・最小数動的スケーリングの最大・最小インスタンス数をあらかじめ設定することができます。 最大インスタンス数はデフォルトが 100、上限は 1000 で 上限の引き上げ も可能となっています。 最小インスタンス数はデフォルトで 0 となっており、リクエストがないときはインスタンス数が 0 になるまでスケールインします。 インスタンス数が 0 の状態で Cloud Run サービスに対するリクエストがあった場合、インスタンスを起動する時間ぶん、処理の遅延が発生します(コールドスタート)。 そこで、最小インスタンス数を 1 以上 にすることにより、コンテナインスタンスのウォーム状態 (いつでも呼び出し可能な状態) を維持し、リクエストをすぐに処理することが可能になります。 最小インスタンス数が 1 以上の場合、指定した数のコンテナインスタンスがアイドル状態で常に起動しており、リクエストを処理していないときでも、アイドル状態のインスタンスの料金が発生します。 アイドル状態のインスタンスの料金は、実際にリクエスト処理をしているときの料金よりも安く設定されています ( 料金表 ) 。 Startup CPU boostゼロスケールからのコンテナ起動や、リクエスト数が上昇してスケールアップする際のコンテナ起動を高速化するために Startup CPU boost 機能が存在します。 CPU・メモリサービスのデプロイ時に Cloud Run のコンテナインスタンス 1 つに割り当てる CPU の数とメモリ容量の上限を設定できます。デプロイ後も変更が可能です。 CPU の数に応じて、割り当てることができるメモリ容量の幅が決まります。
今現在の割り当て
リクエストのタイムアウトCloud Run サービスのエンドポイントで受信したリクエストの処理に使用できる時間を設定できます。 デフォルトは 300秒 で、1~3600秒 の範囲で設定することができます。 コンテナインスタンスあたりの同時リクエスト最大数1つのコンテナインスタンスが処理できる同時リクエストの数を設定できます。 デフォルトは 80 で、1~1000 の範囲で設定することができます。 CPU を常に割り当てる Cloud Run サービスCloud Run では、CPU を常に割り当てる Cloud Run サービス として構成することで、リクエストがない場合でもコンテナインスタンスに CPU を割り当て、短期のバックグラウンドタスクや非同期処理タスクを実行することができます。 コンテナ実行環境 (世代)Cloud Run のコンテナ実行環境として、第 1 世代 と 第 2 世代 が選択できます。 トラフィックが増えるまで第一世代でよさそう。 サービス連携 (トリガー)Cloud Run サービスでは、クライアントからの HTTPS リクエスト経由の呼び出しのほか、gRPC や WebSocket を使用した通信や、他の Google Cloud サービスからの呼び出しをサポートしています。 Google Cloud のサービスからの呼び出しは、Pub/Sub、Cloud Scheduler、Cloud Tasks、Eventarc、Workflows などが利用できます。
Cloud Run サービスに対する接続デフォルトの設定では、ネットワークレベルでは任意のアクセス元から Cloud Run サービスにアクセスすることが可能です。 上り(内向き)設定 を変えることで、ネットワークアクセス元について 3 段階の制限をかけることが可能です。 Cloud Run サービスから VPC ネットワークへの接続GKE のクラスタ等とは異なり、Cloud Run サービスは VPC ネットワークの外に作成されるため、デフォルトでは VPC 内のリソースに Private IP (内部 IP) でアクセスすることができません。 サーバーレス VPC アクセス を使用することで、コネクタインスタンスを経由して Cloud Run サービスを VPC ネットワークに接続することができます 非公開サービスの認証アプリケーションのレベルでは、Cloud Run サービスはデフォルトで非公開としてデプロイされます。 公開アクセスの許可デプロイしたサービスが公開 API やウェブサイトの場合は 公開アクセスを許可 します。 コンソールや CLI から allUser メンバータイプ に対して Cloud Run 起動元(roles/run.invoker) ロールを割り当てるだけで、未認証のサービス呼び出しを許可することができます。
ユーザー認証サービスに対して、許可されたエンドユーザーのみにアクセスを制限する場合、Identity Platformを使用します。 Compute プロダクトの考え方Cloud Run は柔軟性と運用負荷において、Compute プロダクト内でも 中間の位置 にあります。 Cloud Run と Compute Engine の違いCompute プロダクトの中で最高の柔軟性があり、他のプロダクトにデプロイできるものは GCE にデプロイすることも可能です。 その代わり GCE では、仮想マシンの OS から上にあるものはすべてユーザーが構築・管理する必要があります。 また Cloud Run のようなサーバーレスアーキテクチャではないため、仮想マシンの実行中は何も処理をしていなくても課金され続けます Cloud Run と Google Kubernetes Engine の違い
Cloud Run と App Engine の違い
Cloud Run と Cloud Functions の違いコードのみで容易にデプロイでき単純な処理をさせるのに向いているのが Cloud Functions 。実行環境の柔軟性が高く、長時間に渡る複雑な処理もさせることができるのが Cloud Run といえます。 Cloud Run for AnthosAnthos は Kubernetes によってインフラレイヤを抽象化することにより、Google Cloud 以外の各種クラウドプラットフォームやオンプレミス上でもコンテナアプリケーションを同じように構築・運用することができる Google Cloud のサービスです。 Anthos では「オンプレミス」「AWS」「Google Cloud」などの各プラットフォーム上に存在する Kubernetes クラスタを、Google Cloud Console の単一のインターフェースで管理することができます。 Cloud Run for Anthos は Anthos が提供するサービスの 1 つであり、Anthos クラスタに対して Google マネージドの Knative を構築することによって、Cloud Run によるサーバーレスなコンテナ実行を利用することができるようになります(参考)。 通常の Cloud Run では実現できない以下のようなユースケースに対応可能となります。
|
kanativehttps://cloud.google.com/knative?hl=ja Cloud Run で始めた後で Cloud Run for Anthos に移動したり、自分の Kubernetes クラスタで始めた後で Cloud Run に移行したりすることも簡単です。 新規リビジョンの段階的な公開 プラグイン可能: ご自身のロギングとモニタリング プラットフォームに接続 https://knative.dev/docs/concepts/#what-is-knative Knative Serving は、オブジェクトのセットを Kubernetes カスタム リソース定義 (CRD) として定義します。これらのリソースは、サーバーレス ワークロードがクラスター上でどのように動作するかを定義および制御するために使用されます。 サービス:service.serving.knative.devリソースは、ワークロードのライフサイクル全体を自動的に管理します。他のオブジェクトの作成を制御し、アプリがサービスの更新ごとにルート、設定、新しいリビジョンを持つようにします。サービスは、トラフィックを常に最新リビジョンまたは固定リビジョンにルーティングするように定義できます。 |
Why
デプロイ先のことをよく知っておく必要がある。
What
ドキュメントをまとめる。
The text was updated successfully, but these errors were encountered: