Traffine I/O

日本語

2022-08-01

Cloud Run概要

Google Cloud Runとは

Google Cloud Runは、コンテナ化されたアプリケーションの構築、デプロイ、スケーリングを簡素化するために設計された完全に管理されたサーバーレスプラットフォームです。インフラストラクチャー、スケーリング、およびルーティングを自動的に管理することで、Cloud Runは従来のインフラストラクチャー管理の複雑さを心配することなく、開発者がコードを書き、機能を提供することに集中できるようにします。

Cloud Runの中核にあるのは、軽量でポータブルな環境であるコンテナの利用です。アプリケーションを自己完結型で実行できる環境を提供するコンテナは、Dockerを利用して依存関係や環境を一貫して定義します。この標準化により、デプロイがスムーズに行われ、異なる環境での一貫した動作が保証されます。

Google Cloud Runの主な特徴

完全に管理された:Cloud Runはインフラストラクチャーやネットワーク、スケーリングを管理するため、開発者はコードや機能に集中することができます。

  • 自動スケーリング
    Cloud Runは、着信トラフィックに基づいてインスタンスの数をスケーリングし、ピーク時に最適な応答性を確保し、アイドル時にリソースを節約します。

  • 使用量課金
    Cloud Runでは、リクエスト処理中に使用されるリソースのみ課金されるため、事前にリソースを確保して支払う必要がありません。

  • ポータブルかつオープン
    Cloud Runは、オープンソースのKnative APIをサポートしており、KubernetesなどのKnativeに対応する他のプラットフォームに簡単に移植できます。

  • Google Cloudサービスとの統合
    Cloud Runは、Cloud Storage、Firestore、Pub/Subなどの他のGoogle Cloudサービスとシームレスに統合することができ、エンドツーエンドのサーバーレスソリューションの作成が可能になります。

サポートされる言語とランタイム

Google Cloud Runは、HTTPリクエストを受け取ることができる限り、コンテナ内で実行できるプログラミング言語とランタイムを幅広くサポートしています。

Google Cloud Runのワークフロー

Google Cloud Runにアプリケーションをデプロイする一般的なワークフローは、次のステップで構成されます。

  1. アプリケーションの開発
    サポートされている言語やランタイムを使用して、アプリケーションコードを記述します。

  2. アプリケーションのコンテナ化
    アプリケーションとその依存関係をDockerコンテナにパッケージ化します。Dockerfileを作成し、ベースイメージ、ランタイム環境、必要な依存関係を指定します。

  3. コンテナイメージのプッシュ
    コンテナイメージをGoogle Container Registry(GCR)やDocker Hubなどのコンテナレジストリにプッシュします。Cloud Runはこのイメージを使用してアプリケーションをデプロイします。

  4. Cloud Runへのアプリケーションのデプロイ
    Google Cloud Console、Cloud SDK、またはAPIを使用して、アプリケーションをCloud Runにデプロイします。必要に応じて、コンテナイメージ、環境変数、メモリ制限、およびその他の設定オプションを指定します。

  5. アプリケーションの監視と管理
    デプロイ後、Google Cloud Console、Cloud SDK、またはAPIを使用して、アプリケーションを管理、監視、スケールします。

Google Cloud Runの価格設定

Google Cloud Runは、リクエスト処理中に消費されるリソースのみを請求するコスト効果の高いペイアズユーゴーの価格設定モデルを提供し、事前にリソースを確保して支払う必要がなくなります。Google Cloud Runの価格設定は、次のコンポーネントから構成されます。

  • コンピューティング
    アプリケーションがリクエストを処理する間に使用されるvCPUおよびメモリの使用に対して課金されます。

  • リクエスト
    アプリケーションが処理したリクエストの数に対して請求されます。

  • ネットワーク
    アプリケーションからインターネットまたは他のGoogle Cloudサービスへのイグレス(出向き)トラフィックに基づいて請求されます。イングレス(着信)トラフィックは無料です。ただし、イグレストラフィックのコストは、宛先に応じて異なる場合があります。一部のGoogle Cloudサービスへのトラフィックは無料または割引される場合があることに留意してください。

コンピューティングの価格

コンピューティングの価格は、アプリケーションがリクエストを処理する間に使用されるvCPUおよびメモリの量によって決まります。Cloud Runは、使用量を100ミリ秒単位で測定し、以下の式に基づいてコストを計算します。

コスト = (vCPUの使用量 * vCPUの価格) + (メモリの使用量 * メモリの価格)

vCPUとメモリの使用量は、インスタンスの数と割り当てられたリソースによって決まります。デプロイメント設定で各インスタンスのvCPUとメモリの割り当てを構成できます。デフォルトは、1 vCPUと256 MiBのメモリです。

リクエストの価格

コンピューティングの価格に加えて、アプリケーションが処理したリクエストの数に対しても請求されます。リクエストあたりのコストは比較的小さいですが、アプリケーションが大量のリクエストを処理する場合は、請求額が膨大になる可能性があります。

ネットワークの価格

ネットワークのコストは、アプリケーションからインターネットまたは他のGoogle Cloudサービスへのイグレストラフィックの量に基づいています。イングレストラフィックは無料です。重要なことは、イグレストラフィックのコストは、宛先によって異なる場合があることです。一部のGoogle Cloudサービスへのトラフィックは無料または割引される場合があります。

無料枠

Google Cloud Runには、以下の無料枠が用意されています。

  • 1ヶ月あたり200万リクエスト
  • 1ヶ月あたり180,000 vCPU秒
  • 1ヶ月あたり360,000 GiB秒のメモリ
  • 1ヶ月あたり1GBのイグレストラフィック

これらの無料枠の割り当ては、Google Cloudプロジェクト内の全てのCloud Runサービスで共有されます。

GKEとの比較

Google Kubernetes Engine(GKE)は、人気のあるKubernetesオーケストレーションプラットフォームを使用して、コンテナ化されたアプリケーションをデプロイ、管理、スケーリングするための管理されたKubernetesサービスです。以下は、Google Cloud RunとGKEの比較です。

  • 管理
    Cloud Runは、基盤となるインフラストラクチャを抽象化した完全に管理されたサーバーレスプラットフォームであり、GKEは管理されたKubernetesコントロールプレーンを提供しますが、ワーカーノードとクラスタを管理および維持する必要があります。

  • スケーリング
    Cloud Runはトラフィックに基づいてアプリケーションを自動的にスケーリングします。一方、GKEはノードとポッドの自動スケーリングをサポートしています。これにより、スケーリングに関するより多くの制御が可能になりますが、追加の構成が必要になります。

  • 価格
    Cloud Runは、リクエスト処理中に消費されるリソースのみを請求するペイアズユーゴーの価格設定モデルに従います。一方、GKEは、リクエストがアクティブに処理されているかどうかにかかわらず、クラスタに割り当てられたリソース、制御プレーン、ワーカーノードに対して請求されます。

  • 柔軟性
    GKEは、リソース割り当て、ネットワーク、およびセキュリティ機能に関して、より高い柔軟性を提供しており、特定の要件を持つ複雑なアプリケーションに適しています。一方、Cloud Runはより簡単で使用が容易ですが、特定の高度なユースケースをサポートしない可能性があります。

  • 使いやすさ
    Cloud Runはシンプルで使いやすく設計されており、アプリケーションのデプロイとスケーリングに必要な最小限の構成で構築できます。一方、Kubernetesの複雑さにより、GKEには学習コストがかかります。

  • 統合
    Cloud RunとGKEの両方が、他のGoogle Cloudサービスとシームレスに統合できますが、Cloud Runはサーバーレスであるため、エンドツーエンドのサーバーレスソリューションを構築するのがより簡単です。

参考

https://cloud.google.com/run
https://www.cloudskillsboost.google/course_templates/371
https://cloud.google.com/hosting-options

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!