Traffine I/O

日本語

2022-07-01

Cloud Functions概要

Google Cloud Functions とは

Google Cloud Functionsは、Google Cloud Platform (GCP) エコシステム内のイベントに応答する小規模で単一目的の関数を作成し、展開できるサーバーレスコンピュートサービスです。これらの関数は自動的に管理され、高度にスケーラブルであり、HTTPリクエスト、Cloud Storageの変更、Cloud Pub/Subのメッセージなど、さまざまなイベントソースによってトリガーされます。

Google Cloud Functions を使うメリット

Google Cloud Functionsには、開発者や組織にとって魅力的な複数のメリットがあります。

  • 開発の簡素化
    Google Cloud Functionsが、プロビジョニング、スケーリング、メンテナンスなどの基盤となるインフラストラクチャーを処理するため、コードの記述に注力することができます。

  • スケーラビリティ
    Cloud Functionsはリクエストまたはイベントの数に応じて自動的にスケーリングするため、異なるワークロードに対応するためのインフラストラクチャーの管理について心配する必要はありません。

  • コスト効率
    関数が実行される際に消費されるコンピュート時間のみを支払い、実験や小規模プロジェクト用に利用できる寛大な無料層があります。

  • 柔軟性
    Node.js、Python、Go、Java、.NETなどの人気のあるプログラミング言語で関数を書くことができます。

  • シームレスな統合
    Cloud Functionsは他のGCPサービスと簡単に統合でき、GCPの全体的な範囲を活用した強力なアプリケーションを構築することができます。

Google Cloud Functions の主な特徴

Google Cloud Functionsは、サーバーレスアプリケーションを構築する開発者にとって魅力的な多くの機能を提供しています。この章では、他のサーバーレスプラットフォームとの違いを生む主な機能をいくつか紹介します。

イベント駆動の実行

Cloud Functionsはイベント駆動型に設計されており、Google Cloud Platformエコシステム内の特定のイベントによってトリガーされます。イベントは、次のようなさまざまなソースから提供されることがあります。

  • HTTPリクエスト
  • Cloud Storageの変更 (新しいオブジェクトや変更されたオブジェクトなど)
  • Cloud Pub/Subトピックに公開されたメッセージ
  • Firestoreドキュメントの変更
  • Google Cloud Schedulerジョブ

このイベント駆動型アーキテクチャーにより、リアルタイムで変更に対応する高度に応答性の高いアプリケーションを構築することができます。

自動スケーリング

Google Cloud Functionsはリクエストまたはイベントの数に応じて自動的にスケーリングするため、異なるワークロードに対応するためのインフラストラクチャーの管理について心配する必要はありません。プラットフォームは需要に応じてリソースを自動的にプロビジョニングおよび解除するため、手動の介入なしにあらゆるトラフィック量に対処できるようになっています。

消費時間に応じた価格設定

Google Cloud Functionsを使用する場合、関数が実行されたときに消費されたコンピュート時間のみを支払います。この使用に応じた価格設定モデルにより、変動するまたは予測できないワークロードを持つアプリケーションに対してコスト効果的になります。Google Cloud Functionsは、コンピュート時間を実行した際に消費されるコストのみを請求します。また、実験目的や小規模プロジェクト用に寛大な無料枠が用意されています。

複数の言語のサポート

Google Cloud Functionsは、既存のスキルやコードベースを活用できるように、多数の人気のあるプログラミング言語をサポートしています。サポートされている言語には次のものがあります。

  • Node.js
  • Python
  • Go
  • Java
  • .NET

複数の言語をサポートすることにより、Google Cloud Functionsは、ニーズや専門知識にもっとも適した言語を使用してサーバーレスアプリケーションを構築することができます。

Google Cloud Platform サービスとの統合

Cloud Functionsは他のGCPサービスと簡単に統合でき、Googleの堅牢なクラウドインフラストラクチャーの力を利用した複雑なワークフロー、データの処理と分析、およびイベント駆動型アプリケーションを構築することができます。Google Cloud Functionsにシームレスに統合できるサービスには、次のようなものがあります。

  • Cloud Storage
  • Cloud Pub/Sub
  • Firestore
  • BigQuery
  • Google Cloud Scheduler
  • Stackdriver LoggingおよびMonitoring

これらの統合を活用することで、Googleの堅牢なクラウドインフラストラクチャーのパワーを活用した複雑なワークフロー、データの処理と分析、およびイベント駆動型アプリケーションを構築することができます。

Google Cloud Functions の料金

Google Cloud Functionsは、関数が実行されたときに消費されたリソースのみを請求する使用に応じた価格設定モデルに従っています。この章では、価格設定モデルの異なるコンポーネントを探求し、Cloud Functionsの請求方法を理解するのに役立ちます。

料金のコンポーネント

Google Cloud Functionsを使用する際には、次の3つの主要なコンポーネントが使用され、関数を実行するコストが決定されます。

  • Invocations
    関数が実行された回数。

  • Compute time
    関数の実行にかかった合計時間(ギガバイト秒で計算)。

  • Networking
    Google Cloud Functionsから外部サービスやユーザーに転送されたデータ量。

Invocations

関数がトリガーされたかどうかにかかわらず、各関数呼び出しに対して請求が行われます。請求額は、Google Cloud Functionsの料金ドキュメントで指定された、百万回ごとの請求額に基づいています。

https://cloud.google.com/functions/pricing

Compute Time

コンピュート時間は、関数に割り当てられたメモリとCPU、および関数の実行時間に基づいて計算されます。これは、メモリ (GB) と時間 (秒) を組み合わせた単位であるGB-secondsで測定されます。

コンピュート時間のコストを計算するには、次の点を考慮する必要があります。

  • メモリ割り当て (GB)
    関数に割り当てられたメモリ量。

  • CPU 割り当て
    関数に割り当てられたCPUパワーで、メモリ割り当てに比例します。

  • 実行時間
    関数の実行にかかった時間で、100ミリ秒のインクリメントで測定されます。

コンピュート時間のコストは、メモリ割り当て、CPU割り当て、実行時間を乗算して、Google Cloud Functionsの料金ドキュメントで指定されたGB-seconds当たりの価格を適用することによって決定されます。

Networking

Google Cloud Functionsから外部サービスやユーザーに転送されたデータ量に対して請求されます。同じリージョン内のデータ転送やGoogle Cloudサービス間のデータ転送は一般的に無料です。ただし、リージョン間のデータ転送やインターネットへのデータ転送については、Google Cloudネットワークの価格設定に基づく料金が発生します。

https://cloud.google.com/vpc/network-pricing

無料枠

Google Cloud Functionsは、コストを発生させることなくプラットフォームを試用することができる寛大な無料枠を提供しています。無料枠には次のものが含まれます。

  • 1ヶ月あたり200万回の呼び出し
  • 1ヶ月あたり400,000 GB-secondsのコンピュート時間
  • 1ヶ月あたり200,000 GHz-secondsのCPU時間
  • 1ヶ月あたり5 GBのアウトバウンドネットワーキング

参考

https://cloud.google.com/functions/docs
https://cloud.google.com/functions/pricing
https://cloud.google.com/products/calculator

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!