【Google Cloud】手を動かして学ぶCloud Run functions
この記事で伝えたいこと(ポイント)
- Cloud Run functionについて説明しているよ
- Cloud Run functionについてハンズオンしているよ
はじめに
この記事ではGoogle Cloudが提供するCloud Run functionsを学習していく内容となっています。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。
Cloud Run functionsとは
ではさっそく、Cloud Run functionsについて見ていきましょう。
公式ドキュメントでは以下のように説明されています。
お客様がコードを用意すると、プラットフォームの構築とメンテナンスがシンプルになるため、残りの作業は Google 側で行われます。
ローカルでの開発、グローバルなスケーリング
サーバー管理が不要
イベントに反応してコードを実行
支払いは従量制
Cloud Functions | Google Cloud
要するにCloud Run functionsは、イベント駆動型のサーバーレスコンピューティングプラットフォームです。
サーバーを管理することなくコードを実行できるため、インフラストラクチャの管理を気にすることなく、アプリケーションの構築および実行に集中できます。
Cloud Run functionsはスケーラビリティ、可用性、セキュリティに優れています。
多くのサービスと統合されているため、強力で汎用性の高いソリューションとなっています。
サーバ管理が不要?イベントに反応?支払いは従量制?スケーラビリティ、可用性、セキュリティに優れている?何を言っているかわからないですね。順番に見ていきましょう。
名前のリブランディング
Cloud Run functionsは、以前はCloud Functionsと呼ばれていました。
名前の変更はCloud Runとの統合が背景にあります。日本語訳ではCloud Run 関数
となっていますが
正式にはCloud Run functionsとなります。
FaaSとは何か(そもそもの話)
今回のCloud Run functions然り、クラウドコンピューティングの代表的なサービスにはFaaSというものがあります。Google Cloud以外では以下のようなものがあります。
- Azure Functions
- AWS Lambda
FaaSとはFunction as a Serviceの略で、サーバーレスコンピューティングの一種です。
サーバーレスコンピューティングとは、サーバーの管理を行わずにコードを実行できるコンピューティングサービスのことです。
Cloud Run functionsもFaaSの一種であり、Google Cloudが提供するサーバーレスコンピューティングサービスです。また、イベント駆動型で特定のイベントが発生したときにコードを実行できます。
料金
Cloud Run functionsの料金体系は世代によって異なります。
Cloud Functions の料金 | Google Cloud
なお、支払いは従量制となっており、実際に使用した分だけ料金が発生します。
ハンズオン
まずはCloudShellを起動します。
以下のコマンドを実行してAPIを有効にします。
gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable cloudfunctions.googleapis.com
gcloud services enable run.googleapis.com
次にCloud Run functions Consoleにアクセスします。
関数の作成
をクリックします。
以下のように設定します。
設定項目 | 設定値 |
---|---|
環境 | Cloud Run functions |
関数名 | zenn-function |
リージョン | asia-northeast1(東京) |
トリガーのタイプ | HTTPS |
認証 | 未認証の呼び出しを許可 |
ランタイム、ビルド、接続、セキュリティの設定
設定項目 | 設定値 |
---|---|
メモリ | 256MiB |
CPU | 1 |
タイムアウト | 60秒 |
同時実行 | 1 |
自動スケーリング | 0-100 |
サービスアカウント | Compute Engine default service account |
ランタイムはNode.js 20
、エントリポイントはhelloHttp
とします。
デプロイ
をクリックします。
デプロイをクリックします。
テスト
関数のURL
をコピーボタンでクリップボードにコピーします。
実行結果
まとめ
今回はCloud Run functionsについて学習しました。
Cloud Run functionsはサーバーレスコンピューティングサービスであり、イベント駆動型のサーバーレスコンピューティングプラットフォームです。
Cloud Run functionsはスケーラビリティ、可用性、セキュリティに優れており、多くのサービスと統合されているため、強力で汎用性の高いソリューションとなっています。
また、Cloud Run functionsは支払いが従量制であり、実際に使用した分だけ料金が発生します。
今回はCloud Run functionsを使って簡単な関数を作成して実行しましたが、実際には複雑な設定をして構築することもあります。具体的には以下のとおりです。
- ランタイムの自動更新
- サービスアカウントの設定
- メモリ、CPU、タイムアウトの設定、同時実行数の設定
- 自動スケーリングの設定
- トラフィック
- セキュリティとイメージのリポジトリ
APIを無効にする
gcloud services disable cloudbuild.googleapis.com
gcloud services disable cloudfunctions.googleapis.com
gcloud services disable run.googleapis.com
おまけ
gc_project=`gcloud config list --format 'value(core.project)'`
Discussion