サーバーレスコンピューティングは、従来のコンピューティング手法やインフラに代わる選択肢を提供し、IT担当者がより重要な業務に専念できるよう時間を生み出します。そのため、サーバーレスコンピューティングは業界や市場のトレンドとして、ますます普及しています。
O’Reillyの調査では、回答者の40%がサーバーレスアーキテクチャを導入した企業に勤務していることが分かった。また、Datadogの調査では、AWSユーザーの50%がサーバーレス関数を使用していることが明らかになった。
2016年の19億USドルから、サーバーレス市場は注目度を高め、2021年末時点で77億USドル規模に成長したと推定されている。
サーバーレスコンピューティングとは?
Red HatのプリンシパルプロダクトマネージャーであるNaina Singh氏によると、サーバーレスコンピューティングとは、基盤となるサーバーインフラを管理せずにアプリケーションやサービスを構築・実行する方法を指します。サーバーは使用されますが、その管理はクラウドプロバイダーが担います。したがって、サーバーレスアーキテクチャでは、ユーザーの要求を満たすためにコンピューティングリソースを割り当てます。
これによりIT部門は他の業務に注力でき、開発者は、機器の保守、構成、キャパシティプランニング、耐障害性の確保、コンテナ・物理サーバー・仮想マシンの管理やスケーリングといった時間のかかる作業を気にせず、コーディングに取り組めます。
「サーバーレスという名前は、アプリケーションの実行に必要なサーバーのプロビジョニング、スケーリング、インフラ管理などの作業がエンドユーザーから切り離され、サーバーが見えなくなることに由来します」とSingh氏は述べています。
サーバーレス化のメリット
サーバーレスアーキテクチャのメリットには、次のようなものがあります。
- 導入の容易さ:物理サーバーの選定、調達、導入に数週間かかるのに対し、サーバーレスコンピューティングは数時間で利用可能になります。社内インフラではなく、主にコーディングや開発などの業務に時間を使えるため、生産性が向上します。
- コスト:従量課金モデルであるため、一定数のサーバーを維持するよりも、サーバーレスを借りるほうが安価な場合が多くあります。
- スケーラビリティ:クラウドプロバイダーにより、ビジネスの拡大に応じてストレージやコンピューティング、その他の物理リソースを必要に応じて追加・削減できます。
- プロセスの独立性:サーバーレス環境はイベントベースのシステムを採用しているため、アプリケーションの一部を分離するのに適しています。そのため、問題を限定された範囲に封じ込められます。
主要サーバーレスプロバイダー
Red Hat
Red Hatは、Red Hat OpenShift Serverlessを通じてサーバーレス機能を提供しています。これはOpenShiftサブスクリプションの一部として提供されます。Operatorを介してOpenShiftにワンクリックでインストールできます。
コマンドラインインターフェース(CLI)に加えて、OpenShiftのDevConsoleを通じて、サーバーレスの開発・デプロイ環境を提供します。
主な差別化要因
- インフラを抽象化し、重要な点に集中できる、シンプルな開発者体験を通じて、サーバーレスコンテナへのアプリケーションやコードのデプロイを容易にします。
- イミュータブルなリビジョン:新機能をデプロイし、カナリア、A/B、ブルーグリーンテストを、トラフィックを段階的に移行しながら、ベストプラクティスに従って容易に実施できます。
- レプリカ数やアイドル状態を構成する必要はありません。信頼性と耐障害性が組み込まれているため、未使用時には自動的にゼロまでスケールダウンし、ピーク時には数千までスケールアップできます。
- OpenShift Serverlessはオンプレミスやパブリック/ハイブリッドクラウド環境にデプロイでき、必要に応じてデータローカリティやSaaSを活用できます。
- Java、Python、Go、JavaScript、Quarkus、SpringBoot、Node.jsなど、任意のプログラミング言語やランタイムを選択できます。
- Operatorを基盤とする、組み込みまたはサードパーティー製のさまざまなイベントソースやコネクターに接続し、疎結合で分散型のアプリケーションを構築できます。
- OpenShift Serverlessは、OpenShift Kubernetesプラットフォームのオンプレミスインストール向け、またはホスト型OpenShiftインストールと組み合わせたハイブリッド環境向けに提供されます。
- Knativeディストリビューションとして、コンテナベースのパッケージ形式、スケール・トゥ・ゼロ、HTTP利用量に基づく高度な自動スケーリング機構、Apache Kafkaに支えられたイベント駆動型サーバーレスアプリケーション向けの本番対応サポート、関数プログラミングモデルのサポートといったメリットを共有しています。
Cloudflare Workers
Cloudflare Workersは、エッジおよび高性能コンピューティング向けにコードを即時デプロイできるプラットフォームです。パフォーマンス、信頼性、スケーラビリティを備えたサーバーレスコードを世界中にデプロイできます。
主な差別化要因
- Cloudflareによれば、サインアップからグローバルデプロイまでにかかる時間は5分未満です。
- コードはミリ秒単位で実行されます。
- 自動スケーリングやロードバランサーを構成する必要はなく、未使用のキャパシティに料金を支払う必要もありません。
- トラフィックは数千台のサーバーに自動的にルーティングされ、負荷分散されます。
- コードはCloudflareのネットワークによって実行されます。
- 利用できるプログラミング言語はJavaScript、Rust、C、C++です。
AWS Lambda
AWS Lambdaは、サーバーをプロビジョニング・管理せずに、ほぼあらゆる種類のアプリケーションやバックエンドサービスのコードを実行できる、サーバーレスのイベント駆動型コンピューティングサービスです。200を超えるAWSサービスやSaaSアプリケーションからLambdaをトリガーでき、料金は使用した分だけ支払います。
主な差別化要因
- Amazon Simple Storage Service(Amazon S3)を使用して、アップロード後のAWS Lambdaによるデータ処理をリアルタイムでトリガーしたり、既存のAmazon EFSファイルシステムに接続して、大規模なファイル処理向けの大規模な並列共有アクセスを可能にしたりできます。
- AWS Lambdaは大規模にデータを処理します。
- コードはユーザーが必要とするキャパシティで実行されます。
- AWS Lambdaはデータ量に合わせて自動的にスケールします。
- イベントトリガーはユーザーの好みに合わせてカスタマイズできます。
- インタラクティブなWebおよびモバイルのバックエンドを実行できます。
Oracle Cloud Functions
Oracle Cloud Functionsは、インフラを管理せずにアプリケーションを作成、実行、スケーリングできるサーバーレスプラットフォームです。さらに、Oracle Cloud FunctionsはOracle Cloud Infrastructure、プラットフォームサービス、SaaSアプリケーションと統合できます。
また、Oracle Cloud FunctionsはオープンソースのFn Projectを基盤としているため、他のクラウドやオンプレミス環境に移植できるアプリケーションを作成できます。
主な差別化要因
- Oracle Cloud Functionsに基づくコードは通常、短時間だけ実行され、ユーザーは使用したリソース分だけ支払います。
- 独自のコードを作成してデプロイできます。
- Oracleがリソースを自動的にプロビジョニングし、スケールします。
- Oracle Cloud FunctionsはコードをDockerイメージとして自動的にパッケージ化します。
- 高度な開発者はDockerfileを使用し、ネイティブライブラリをインストールして、関数のランタイム環境をカスタマイズできます。
- Python、Go、Java、Nodeなどの言語をサポートしているため、開発者はタスクごとに最適な言語を選択し、サーバーレスアプリケーションを容易に統合できます。
- マネージドサービス、またはオンプレミスや任意のクラウドにデプロイした自己管理型のオープンソースベースFnクラスターを利用できます。
Back4App
Back4Appは、オープンソースプラットフォームのParseを基盤とし、アプリケーション構築向けのローコードバックエンドを提供します。クラウド上でリレーショナルデータを保存・クエリし、GraphQLやREST経由でアクセス可能にできます。
主な差別化要因
- Back4AppはモバイルアプリやWebアプリに容易に統合できます。
- GraphQL、REST、またはParse SDKを通じてリレーショナルデータを保存・クエリできます。
- クラウド関数を使用してビジネスロジックを追加できます。
- インフラを管理せずにアプリを高速化できます。
- 数分でリレーショナルデータモデルを構築できます。
- 完全なサーバーレスプラットフォーム上で、複雑なリレーショナルクエリを実行できます。
Kinvey
Progress Kinveyは、クラウドバックエンドとフロントエンドSDKを活用したマルチチャネルアプリケーションを構築するためのツールを開発者に提供する、サーバーレスアプリケーション開発プラットフォームです。データストア、データ統合、シングルサインオン統合、ファイルストレージなど、開発に必要なソリューションを提供します。
主な差別化要因
- 開発者は、アプリに価値をもたらす部分、つまりアプリケーションのユーザー体験(UX)とビジネスロジックの構築に集中できます。
- Kinveyで構築されたアプリは、連携して動作する複数の疎結合な部分で構成されます。
- クライアントアプリケーションは、Kinveyアプリのフロントエンド、つまりユーザーが目にする部分です。
- クライアントSDKは、クライアントとKinveyサービスのバックエンドをつなぐインターフェースです。
- バックエンドアプリには、フロントエンドのクライアントアプリで利用できるすべてのAPIとサービス(データ、認証、サーバーサイドロジックなど)が含まれます。
- 各バックエンドアプリには、開発ライフサイクルをサポートする1つ以上の環境を設定できます。
Microsoft Azure Functions
Microsoft Azure Functionsは、サーバーレスアプリケーション開発のための包括的な環境を提供します。ローカルでの構築・デバッグからクラウドでのデプロイ・監視まで、Visual StudioおよびVisual Studio Code向けのMicrosoft Azure Functions拡張機能により、ローカルマシンでより迅速かつ効率的に開発できます。
主な差別化要因
- Microsoft Azure FunctionsはAzureプラットフォーム全体と完全に統合できます。
- Azure Pipelinesを使用して、継続的インテグレーションと継続的デリバリー(CI/CD)を設定できます。
- Azure Monitorから、本番環境のサーバーレスアプリケーションのパフォーマンスに関するインテリジェントでプロアクティブな分析情報を取得できます。
- 統合ツールと組み込みのDevOps機能を使用して、構築、デバッグ、デプロイ、監視を実行できます。
Google Cloud Functions
Google Cloud Functionsを使用すると、管理対象のサーバーやコンテナなしでクラウド上でコードを実行できます。Google Cloud Functionsは、単一目的のコードでイベント駆動型サービスを構築・接続するために設計された、スケーラブルな従量課金型のFunctions-as-a-Service(FaaS)製品です。
主な差別化要因
- クイックスタートガイドを使えば、WebブラウザーだけでGoogle Cloud Functionを構築してデプロイできます。
- ゼロから大規模まで、ユーザー数に対応できます。
- Google Cloud Functionは、開発者にとってシンプルな開発体験と高い開発速度を提供します。
- コードを記述するだけで、Google Cloud Functionが運用インフラを処理します。
- イベントに応答する小さなコードスニペットを記述して実行できます。
- イベントを使用してGoogle Cloud製品同士、またはサードパーティーサービスを接続し、複雑なオーケストレーションの問題を簡素化できます。
IBM Cloud Functions
IBM Cloud Functionsは、Apache OpenWhiskを基盤とするFaaSプラットフォームです。サーバーなしでアプリケーションコードを実行し、自動的にスケールでき、使用していないときは料金がかかりません。
主な差別化要因
- 名前空間を明示的に管理でき、ダッシュボードに表示できます。
- 使用時間に応じて、10分の1秒単位で料金を支払います。
- アクションを1秒未満の間に数千回、または週に1回実行できます。アクションインスタンスは需要に正確に合わせてスケールし、その後消滅します。
- モバイル開発者がサーバーサイドロジックにアクセスし、計算負荷の高いタスクをスケーラブルなクラウドプラットフォームにアウトソースできるようにします。
- Swiftなどの言語で関数を実装し、iOS SDKを使用してサーバーサイド関数を利用できます。
Knative
オープンソースのKnativeフレームワークは、他の多くのサーバーレス環境で使用されています。例えば、Red Hat OpenShift ServerlessはKnativeを基盤として構築され、Red Hatのエンタープライズ向けKubernetesディストリビューションであるRed Hat OpenShift上で動作します。
Knativeは、Kubernetes上にコンテナベースのサーバーレスソリューションを提供する、オープンソースのインキュベーション中CNCFプロジェクトです。
主な差別化要因
- Knativeはオープンソースプラットフォームとして無料で利用できます。
- ベンダーロックインがありません。
- サーバーレスのデプロイメントを実行するための、プラットフォームに依存しないソリューションです。
- ゼロまでスケールダウンし、ゼロからスケールアップできます。
- ニーズに応じてロールアウト戦略を選択できます。
- 多くのソースからのイベントを処理できます。
- Kubernetesでサーバーレスコンテナを簡単に実行できます。Knativeがネットワーク、オートスケーリング(ゼロまでのスケールも含む)、リビジョン追跡の詳細を処理します。
Parse
Parseは、他のサーバーレス製品の基盤としてよく使われるオープンソースプラットフォームです。オブジェクトおよびファイルストレージ、ユーザー認証、プッシュ通知、ダッシュボードを利用して、アプリケーションをより迅速に構築できます。さらに、Parse Serverは、Node.jsを実行できる任意のインフラにデプロイ可能なオープンソースのバックエンドです。
主な差別化要因
- Parse ServerはデータベースとしてMongoDBまたはPostgreSQLを使用します。
- 独自のインフラにParse Serverをデプロイして実行できます。
- Nodeを使用して、アプリをローカルで開発・テストできます。
- MongoDBとParse Serverをローカルで使用して、プラットフォームを簡単に実行できます。