サーバーレスコンピューティングは、従来のコンピューティング手法やインフラに代わる選択肢を提供し、IT担当者がより重要な業務に専念するための時間を生み出します。そのため、サーバーレスコンピューティングは業界や市場のトレンドにおいて、ますます普及しています。
あるO’Reillyの調査では、回答者の40%がサーバーレスアーキテクチャを導入した企業に勤務していることが分かった。そしてDatadogの調査では、AWSユーザーの50%がサーバーレス関数を使用していたことが分かった。さらに、Precision Reportsの予測では、世界のサーバーレスアーキテクチャ市場規模は、2019年の3570百万ドルから2026年には10290百万ドルに達し、2021~2026年のCAGRは16.2%になるとされている。
これほど急速に成長している市場では、自社に適したサーバーレスベンダーを判断するのは難しいかもしれません。各ソリューションの主な差別化要因を評価する際は、自社固有のニーズを念頭に置きましょう。
主要なサーバーレスプロバイダー
主要なサーバーレスプロバイダーには、次の企業が含まれます。
- Red Hat
- Cloudflare Workers
- AWS Lambda
- Oracle Cloud Functions
- Back4App
- Kinvey
- Microsoft Azure Functions
- Google Cloud Functions
- IBM Cloud Functions
- Knative
- Parse
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プラットフォーム全体と完全に統合できます。
- ユーザーは継続的インテグレーションと継続的デリバリー(CI/CD)をAzure Pipelinesで設定できます。
- ユーザーは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上でコンテナベースのサーバーレスソリューションを提供する、オープンソースのインキュベーション中のCloud Native Computing Foundation(CNCF)プロジェクトです。
主な差別化要因
- Knativeはオープンソースプラットフォームとして無料で利用できます。
- ベンダーロックインはありません。
- サーバーレスデプロイメントを実行するための、プラットフォームに依存しないソリューションです。
- ゼロまでスケールダウンし、ゼロからスケールアップできます。
- ニーズに応じてロールアウト戦略を選択できます。
- 多くのソースからのイベントを処理できます。
- Kubernetesでサーバーレスコンテナを簡単に実行できます。Knativeがネットワーク、オートスケーリング(ゼロまでのスケールも含む)、リビジョンの追跡に関する詳細を処理します。
Parse
Parseは、他のサーバーレス製品の基盤としてよく使用されるオープンソースプラットフォームです。オブジェクトストレージやファイルストレージ、ユーザー認証、プッシュ通知、ダッシュボードを利用して、アプリケーションをより迅速に構築できます。また、Parse Serverは、Node.jsを実行できる任意のインフラにデプロイできるオープンソースのバックエンドです。
主な差別化要因
- Parse Serverは、データベースとしてMongoDBまたはPostgreSQLを使用します。
- 独自のインフラにParse Serverをデプロイして実行できます。
- Nodeを使ってアプリケーションをローカルで開発・テストできます。
- MongoDBとParse Serverをローカルで使用すれば、プラットフォームを簡単に実行できます。
サーバーレスコンピューティングとは?
Red Hatの主席プロダクトマネージャーであるNaina Singh氏によると、サーバーレスコンピューティングは、基盤となるサーバーインフラを管理せずにアプリケーションやサービスを構築・実行する方法を提供します。サーバーは関与しますが、その処理はクラウドプロバイダーが担います。したがってサーバーレスアーキテクチャでは、ユーザーの需要を満たすためにコンピューティングリソースを割り当てます。
これにより、社内のITスタッフは、時間のかかる業務を気にすることなく、他の責任に専念できます。サーバーレスコンピューティングは、機器の設定や保守、キャパシティプランニング、フォールトトレランスの負担を軽減します。また、コンテナ、物理サーバー、仮想マシンの管理とスケーリングも処理します。
「サーバーレスという名称は、アプリケーションの実行に必要なインフラのプロビジョニング、スケーリング、管理など、サーバーに関連するタスクがエンドユーザーから切り離され、サーバーが見えなくなることに由来します」とSingh氏は述べています。
詳しくは:What is Serverless Architecture?
サーバーレス化のメリット
サーバーレスアーキテクチャのメリットには、次のようなものがあります。
- デプロイの容易さ:物理サーバーの選定、調達、デプロイに数週間かける代わりに、サーバーレスコンピューティングなら数時間で準備できます。社内インフラではなく、主にコーディングや開発などの業務に時間を使えるため、生産性が向上します。
- コスト:従量課金モデルであるため、一定数のサーバーを維持するよりも、サーバーレスをレンタルする方が安価な場合が多くあります。
- スケーラビリティ:クラウドプロバイダーにより、ビジネスの拡大に応じて、ストレージやコンピューティング、その他の物理リソースを必要に応じて追加・削減できます。
- プロセスの独立性:サーバーレス環境はイベントベースのシステムを使用するため、アプリケーションの各部分を分離するのに適しています。そのため、問題を限定された範囲に封じ込めることができます。
次の記事:Serverless Architecture: What Are the Benefits and Challenges?