- Google Cloudに関する記事
Cloud Functions とは 概要や、Lambda との違いを5分で入門
こんにちは、クラウドエース編集部です。
Goolge Cloud が提供するサーバーレスコンピューティングサービスの「 Cloud Functions 」。インフラストラクチャを意識せずに開発ができるサービス、 FaaS のひとつです。
今回は、Cloud Functions の具体的なサービス内容やできること、類似サービスの AWS の「 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 上のすべてのインフラストラクチャとアプリケーションからのログデータを 1 か所に集約するサービス「 Cloud Operations 」と統合されています。そのため、モニタリングやロギング、デバッグの設定を個別に行う必要なく、すぐに利用を開始できるのです。
サーバーレスの環境でアプリケーションを実行するには、ログの確認のしやすさやデバッグのしやすさがポイントです。 Cloud Functions は Cloud Operations と統合されているため、クラウドのデプロイメントがどのように動作しているのか、本番環境で何か障害が起きてユーザーに影響が出ていないかなどを、簡単にチェックできるのです。
Cloud Functions の始め方
ここまで、Cloud Functions の概要や特徴について紹介してきました。続いては、Cloud Functions の具体的なはじめ方について解説していきます。
Google Cloud (GCP) に登録
まずは、Cloud Functions が提供される Google Cloud へログインします。
初めて Google Cloud を利用する場合は、アカウント登録時に無料トライアルを利用できます。無料トライアルでは、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 を活用してみてください。
FaaS だけじゃない!3大クラウドを徹底比較!
今回は、Cloud Functions と Lambda を比較してきましたが、Google Cloud ・AWS・Azure 3大クラウドサービス比較表では各社クラウドのあらゆるサービスや料金等の比較を網羅的に行なっております。よりクラウドサービスを体型的にご理解いただける内容となっておりますのでこちらもぜひお読みください。
この記事を共有する