サーバーレス

Google Apps Script を使用するには、Google アカウントが必要です。

サーバーレス

サーバーレスの意味

「サーバーはきちんと存在するものの、開発者や運用者がサーバーの運用管理を意識しないで良い」ため、サーバーレスと言います。

サーバーを意識するとは、動かすプログラムがサーバーのスペックに見合ったものであるかどうか、障害時の復旧手順はどうするか?ネットワークは?セキュリティ?といったプログラムを作る人にとっては、食事や呼吸のように常に注意を払わないといけないことを指します。

それでは、サーバーレス、仕組みを作る側として、サーバーを意識しないものとは、どんなものがあるでしょうか。

サーバーレスの例

サーバーレスは、アプリケーションを作る側の視点で、サーバーを意識しない仕組みとなります。次のような代表例としてあります。これらの例は、アプリケーションやサービスを作る側は、裏側のサーバーのスペックやセキュリティといったインフラ面を考慮しなくて済む特徴が共通しています。

  • Webアプリケーションをクラウド上のAmazon S3やAmazon Lambda等を組み合わせ、Amazon EC2のような仮想サーバーなしに、Webアプリケーションを構成、運用する場合

  • 「Knative」を活用したプラットフォームで、「Knative」を使いコンテナを動かしてアプリケーションを運用している場合

    • 代表的なサービス

      • IBM Cloud Code Engine

      • Google Cloud Run

      • Red Hat OpenShift Serverless を使ったパブリッククラウドサービスやプライベートクラウド各種<< Red Hat(レッドハット)社は、IBMの子会社でもあるので、サーバーレスやコンテナ基盤のためのソフトウェア領域では、IBMが強い。

        • Microsoft Azure

        • AWS

        • Google Cloud など

  • APIファーストを前提とした仕組みで、裏側にあるサーバー運用を意識する必要のない仕組みの場合

    • iPaaSを使い、API連携により、アプリケーションやIoTデバイス、AIサービス間のデータ加工や編集、伝達などの処理を行う場合

    • CaaS(コンテナ アズ ア サービス)x APIファーストで構築・運用している場合

      • APIマッシュアップを用いたアプリケーション開発および運用する場合

        • 代表的なツール

          • << 上記のILLA Cloudはパブリッククラウドのため、ILLA Cloudをプライベートクラウド等でセルフホストできるバージョン。コンテナとして、CaaSで運用する。

          • << RetoolやILLA Builderと同じようなことを行えるソフトウェア。コンテナとして、CaaSで運用する。

    • Web上でプログラムを書き、API連携によるサービスを開発および運用する場合

      • 代表的なツールあるいはサービス

ハンズオン環境

諸注意

サーバーレスを利用するには、どこかにサーバーが必要で、多くはAWSやMicrosoft Azure、GCP(Google Cloud Platform)、IBM Cloud など、クレジットカード/デビットカードを登録済みの環境が必要です。

デビットカードは、原則15歳以上で、銀行口座の預金の範囲内でしか使えないため使い過ぎ防止が出来るので、従量課金による使い過ぎが怖い人は、デビットカードを使って、AWS等を利用すると良いでしょう。もちろん「AWS Budgets」などに代表される、予定金額のしきい値を超えたら警告する使い過ぎ防止機能を有効化していることが大前提です。

コンテナによるサーバーレス

コンテナを前提にしたサーバーレス環境のうち、無料で使えるもの

Google Apps Script

通称、GAS。Googleの各サービスを前提としたサーバーレス環境。Googleのサービス以外に、Line Messaging API やAWS API なども活用した事例がある。

<< クリックしてアクセス。「Start Scripting」で開発を始めることができる。JavaScriptベース。サーバーレス関係で入門書等の書籍が一番出版されていると思われる。

2014年の時点で、Googleのサービスは、全てコンテナ上で稼働しています。Google Cloud Platform担当のシニアスタッフソフトウェアエンジニア Joe Beda氏(2014年時点) が公開した「Containers At Scale」において、Googleのサービスがコンテナ上で稼働していると述べています。

OpenFaaS

https://www.openfaas.com/

コンテナ前提のサーバーレスフレームワーク。オープンソースソフトウェアであり、パソコンやサーバー、パブリッククラウド上の仮想マシンなどで動かせることができる。サーバーレスといえば、AWS、Google、Microsoft、IBM などあるが、こうしたベンダー固有のものが使えない環境下である場合に用いる。

利用に無料枠があるものの、クレジットカード登録が必要なもの

AWS Lambda

https://aws.amazon.com/jp/lambda/

サーバーレスの代表格の1つ。LocalStackと呼ばれる検証環境がある。 はクレジットカード不要だが、あくまでパソコン上でしか動かない。AWS Lambda向けの開発や検証を行うことが目的。

IBM Cloud Code Engine

https://cloud.ibm.com/docs/codeengine?topic=codeengine-getting-started

knativeを用いたコンテナ前提のサーバーレスプラットフォーム。自分で作ったコンテナや公開されているコンテナを利用することができる。

チュートリアル : Code EngineによるサーバーレスWebアプリケーションとAPI