テックブログ

エルカミーの技術ブログです

Cloud Functions入門

Cloud Functionsとは?

👉
一言で

イベント駆動型のサーバレスな関数サービス(FaaS)

Cloud Functions は、Google Cloud Platform(旧GCP)が提供するフルマネージド型のイベント駆動型サーバーレスな関数サービス(FaaS: Function-as-a-Service)です。HTTPリクエストや Cloud Pub/Sub イベントなど、さまざまなトリガーでコードを実行できます。

人気とその理由
  • サーバーレス:Cloud Functions はサーバーをプロビジョニングしたり管理したりする必要がありません。
  • スケーラブル:Cloud Functions は自動的にスケーリングされます。リクエストの数に応じてスケールアップまたはスケールダウンされます。
  • 費用:Cloud Functions は費用対効果の高いサービスです。200万回の呼び出し無料枠があり、ほとんどのケースで費用が少なく済みます。
  • 使いやすい:Cloud Functions は数分で関数を作成してデプロイできます。他のGoogle Cloud サービスとの連携もしやすいです。
Cloud Functionsの使用方法

Cloud Functionsを使用するには、サポートされている言語(Go、Python、Java、Node.js、PHP、Ruby、.NET)のいずれかでロジックを記述し、デプロイし、トリガーで実行します。トリガーで実行には、Cloud Storageへのファイルアップロード、Pub/Sub、Firebaseのイベント、またはコマンドラインインターフェース(CLI)を介した直接呼び出しがあります。

💡
Cloud Functions には、第 1 世代と第 2 世代の 2 つのバージョンがあります。第 2 世代は、第 1 世代よりも新しいバージョンであり、Cloud Runをベースにしています。多くの新機能と改善が追加されています。
機能 Cloud Functions 第 1 世代 Cloud Functions 第 2 世代
実行時間 最大 9 分 最大 60 分
インスタンスサイズ 128 MB メモリ、1 コア 最大 8 GB メモリ、最大 16 コア
同時実行数 1 インスタンスあたり 1 リクエスト 1 インスタンスあたり最大 1,000 リクエスト
トラフィック管理 サポートなし サポートあり
Eventarc サポートなし サポートあり
Cloud Functionsの導入のステップ

  1. Cloud Functionsを作成する。

    関数を作成するには、関数名、ランタイム、トリガーを指定する必要があります。ランタイムは、関数を実行する言語です。トリガーは、関数が実行されるイベントです。関数を作成したら[デプロイ] ボタンをクリックします。

  2. Cloud Functions 関数を使用する。

    関数を使用するには、HTTP リクエスト、Cloud Pub/Sub イベント、データベースの変更などトリガーで実行します。

費用

関数の呼び出し回数、コンピューティング時間、データ転送に基づいて費用が発生します。アイドル状態の場合は費用がかかりません。

関数の呼び出し回数は毎月 200 万リクエストまでが無料枠として用意されています。

セキュリティ

セキュリティについては、Identity and Access Management(IAM)を使用して、関数にアクセスできるサービスまたは人員を定義し、VPCコントロールを使用して、ネットワークベースのアクセスを定義できます。

ユースケース

  • データ処理/ETL : Cloud Storageイベント(ファイルが作成、変更、または削除されたときなど)にリッスンして応答します。画像を処理、ビデオのトランスコーディングを実行、データを検証および変換し、インターネット上の任意のサービスを呼び出すことができます。
  • Webhooks : シンプルなHTTPトリガーを介して、GitHub、Slack、Stripeなどのサードパーティシステムからのイベントに応答するか、HTTPリクエストを送信できる場所から応答します。
  • 軽量API : 軽量で緩やかに結合された論理のビットからアプリケーションを構成し、即座にスケーリングすることができます。関数はイベント駆動型またはHTTP/S経由で直接呼び出すことができます。
  • モバイルバックエンド : アプリ開発者向けのGoogleのモバイルプラットフォームまたはFirebaseを使用し、Cloud Functionsでモバイルバックエンドを書きます。Firebase Analytics、Firestore、Realtime Database、認証、およびストレージからのイベントにリッスンして応答します。
  • IoT : 数万台または数十万台のデバイスがPub/Subにデータをストリーミングする際に、Cloud Functionsを起動してデータを処理、変換、および保存します。