Cloud Functionsとは 概要や、Lambdaとの違いを5分で入門

  • Google Cloudに関する記事
6min

こんにちは、クラウドエース編集部です。

Goolge Cloud が提供するサーバーレスコンピューティングサービスの「 Cloud Functions 」。インフラストラクチャを意識せずに開発ができるサービス、 FaaS のひとつです。

今回は、Cloud Functions の具体的なサービス内容やできること、類似サービスの ASW の「 Lambda 」との違いから、実際に Cloud Functions を始める方法までをわかりやすく解説していきます。

Cloud Functions とは?

Cloud Functions とは、Goolge Cloud( GCP )が提供するサーバーレスのクラウドコンピューティングサービスのひとつです。

指定したイベントをきっかけに関数を実行するフルマネージドのサービスで、FaaS(=  Functions as a Service )に分類されます。サーバーレスでアプリケーションを実行できるため、サーバーの構築や保守、スケールアップやスケールダウンなどの管理・メンテナンスが不要となり、コードの記述に集中できることが大きなメリットです。

対象となる言語はGo、Python、Java、Node.js、PHP、Ruby、.NET の7つで、Cloud Storage へのファイルアップロードや Pub/Sub、Firebase のイベントなど、任意のサービスの HTTP リクエスト経由でコードが実行されます。

ASW が提供する Lambda との違いとは?

Cloud Functions 同様のサービスとして、ASW が提供している「 Lambda 」が挙げられます。FaaS を利用したいと考えている人の中には、どちらのサービスを選択すべきかと迷っている人もいるかもしれません。

両サービスとも、基本的な機能やできることに大きな違いはありません。ただし、対応言語や料金体系、OS などが以下のように異なります。

Cloud Functions Lambda
対応言語 Go、Python、Java、Node.js、PHP、Ruby、.NET Java、Go、PowerShell、Node.js、C#、Python、Ruby
OS Linux Amazon Linux
最大実行時間 540 秒 900秒
100万リクエストあたりの料金 0.4 ドル 0.2 ドル
GB-秒あたり使用料金 0.0000025 ドル 0.0000166667ドル
毎月無料枠 200 万回、400,000 GB-秒、200,000 GHz-秒 まで無料 100 万回、400,000 GB-秒 まで無料

どちらを利用すべきか迷った場合は、上記を参考に、自分に合った環境や用途にあった方を選択しましょう。

Cloud Functions の機能・特徴

ここからは、もう少し具体的に Cloud Functions の機能や特徴について見てみましょう。

サーバーの管理が不要

1 つ目の特徴は、サーバーレスサービスであり、管理が不要であることです。

冒頭でもお話しした通り、Cloud Functions はコードをデプロイするだけで、それを実行 し、スケーリングまで自動で行ってくれるサービスです。基盤となるインフラストラクチャを意識することなく、コード記述に集中しやすくなることで、従来よりも効率的に短時間でアプリケーションを構築できるようになるでしょう。

自動スケーリングが可能

2 つ目の特徴は、サーバーレスサービスであり、管理が不要であることです。

Cloud Functions では利用状況に応じて、基盤となるインフラストラクチャの管理とスケーリングが自動的に行われます。運用しているサービスが拡大したり、アクセスが集中したりした場合でも、サーバーへの負担を気にする必要がありません。

もちろん、「無限にスケールアップしてほしくない」というような場合は、制限を設けることも可能です。インスタンスの最大数もしくは最小数を指定することで、想定以上のスケールを抑制したり、反対にコールドスタートを避けたりすることが可能です。

支払いは従量制

3 つ目の特徴は、従量課金制の料金体系であることです。

クラウドで提供される Cloud Functions は、利用量に応じて金額が決まる 従量課金制が取られています。使用量は関数の実行時間に対してだけ計測され、100 ミリ秒単位で最も近い値に合わせて課金される仕組みです。

IaaS や PaaS の場合、 常に稼働してインスタンスを維持し続ける必要があるため、その分の料金が発生します。一方、イベントに反応して自動的に停止・起動する FaaS の Cloud Functions であれば、処理の実行中のみサーバーを利用することになり、待機時間の課金もないため料金も抑えやすくなります。

さらに、Cloud Functions では Docker をはじめとするコンテナ技術が使用されているため、短時間で起動ができます。 

各種機能・サービスとの統合が可能

4 つ目の特徴は、Google Cloud(GCP)が提供する各種機能やサードパーティのクラウド サービスを構成要素として取り扱い、コードで接続および拡張できることです。

Cloud Functions は、Google Cloud (GCP)上のすべてのインフラストラクチャとアプリケーションからのログデータを 1 か所に集約するサービス「 Cloud Operations 」と統合されています。そのため、モニタリングやロギング、デバッグの設定を個別に行う必要なく、すぐに利用を開始できるのです。

サーバーレスの環境でアプリケーションを実行するには、ログの確認のしやすさやデバッグのしやすさがポイントです。 Cloud Functions は Cloud Operations と統合されているため、クラウドのデプロイメントがどのように動作しているのか、本番環境で何か障害が起きてユーザーに影響が出ていないかなどを、簡単にチェックできるのです。

Cloud Functions の始め方

ここまで、Cloud Functions の概要や特徴について紹介してきました。続いては、Cloud Functions の具体的なはじめ方について解説していきます。

Google Cloud (GCP) に登録


まずは、Cloud Functions が提供される Google Cloud (GCP)へログインします。

初めて Google Cloud (GCP)を利用する場合は、アカウント登録時に無料トライアルを利用できます。無料トライアルでは、90 日間有効な 300 ドル分のクレジットが付与されます。300 ドル分を使い切った後は、課金に切り替えない限り料金は請求されないため、安心して利用できます。

プロジェクトの作成・Cloud Functions の有効化


アカウント登録が完了したら、管理画面の「 My First Project 」をクリックし、「プロジェクトを作成」に移動してください。

「新しいプロジェクト」にて任意のプロジェクト名を入力し、「作成」ボタンをクリック
します。これで、新規のプロジェクトが作成されます。

この時、Cloud Functions の有効化も行います。管理コンソールのメニューから「 Cloud Functions 」→「 API を有効にする」をクリックしましょう。

関数の作成

続いて、関数の作成に進みます。関数とは、Cloud Functions で実行するアプリケーションのことを指します。

Cloud Functions の有効化が完了したら表示される「関数を作成」ボタンをクリックしてください。

登録画面に従って、任意の名称・リージョン・トリガーのタイプを選択しましょう。リージョンは、東京であれば「 asia-northeast1 」を選びます。選択できたら、画面下部にある「次へ」をクリックしてください。

続いて「コード」という画面に移動します。ここでは、任意のコードを選択して関数を入力することができます。
実行したい関数を入力できたら、「保存」をクリックしてください。

なお、上の画像のように、デフォルトでも「Hello, World」とテスト用のいう関数が入力されているため、使い勝手を試したいだけという場合は、関数を変更しなくても構いません。

画面下の「デプロイ」ボタンを押すことで、関数が作成されます。

関数の実行

関数の作成が終了したら、その関数名をクリックしてください。

画面上部に表示される「トリガー」タブを選び、表示される URL をクリックすることで関数が実行されます。

デフォルトの関数を実行した場合は「 Hello World! 」の表示がされれば成功です。

まとめ

ここまで、Cloud Functions の概要や特徴、Lambda との違いや具体的な始め方について解説してきました。
この記事を参考に、Cloud Functions を活用してみてください。

合わせて読みたい