サーバーレスコンピューティングとは?
サーバーレスコンピューティングでは、クラウドベースのテクノロジーを使用してウェブサイトやアプリのバックエンド機能を処理します。コードをトリガーするイベントを定義すると、サーバーレスプラットフォームが引き継ぎます。料金は、使用頻度に応じて増減します。
このモデルでは、「サーバーレス」という言葉は正しくはありません。クラウドプロバイダーは、サーバーを使用して顧客をサポートするからです。ただし、このテクノロジーを購入すれば、ウェブベースのアプリケーションを開発または展開するときにバックエンドサーバーに投資する必要がなくなります。また、これらのバックエンドサーバーの保守も必要がありません。
サーバーレスコンピューティングにはサーバーが含まれるため、一部の専門家は代わりにサービスとしての機能 (FaaS) という用語を使用します 。
どう呼ぶかはともかく、サーバーレスコンピューティングは人気です。たとえば、2019年の調査では、 回答者の40%が何らかのタイプのサーバーレスアーキテクチャを採用している企業に勤務していました。大半が、最大のメリットとしてコストを挙げています。
サーバーレスコンピューティングとは何か、どのように機能するのかをさらに深く掘り下げながら、御社が導入すべきかどうかを検討していきましょう。
サーバーレスコンピューティングとは?
サーバーレスコンピューティングにより、開発者はバックエンド機能をまったく心配することなく、ウェブサイトやアプリのフロントエンドに集中できます。
ウェブサイトまたはアプリケーションのフロントエンドには、消費者が見たり、操作したり、記憶したりできる部分が含まれます。グラフィック、テキスト、その他の視覚的な刺激は、ここから始まります。
ウェブサイトやアプリのバックエンドには、ユーザーの目に触れない部分もありますが、スムーズなウェブサイト体験のためにはこれらの部分も必要です。これらのバックエンドの部分には以下が含まれます。
- データファイル 入手可能な製品の在庫、営業中の店舗の場所、ブログ投稿のリストはすべてバックエンドに格納場所が必要です。
- 処理 消費者が実行することにはすべて少しのパワーが必要になるため、データ処理のほとんどはバックエンドで行われます。
- セキュリティユーザーが特定の部分や要素を表示するためにはログインしなければならない場合があります。ログインページは前面にありますが、機能は背面にあります。
サーバーレスモデルでは、この種のバックエンド機能は、ユーザーが必要とするまで休止状態にある異種のコードです。ユーザーが何かを実行し、コードをトリガーすると、サーバーレスコンピューティングベンダーが起動し、スペースを割り当て、シームレスな移行を可能にします。
2014年に専門家がこのモデルを説明したように、開発者はアプリケーションコードを記述し、それをサーバーレスコンピューティング環境にロードします。イベントがコードをトリガーするまで、休止状態のままになります。その時点で、サーバーレスコンピューティングベンダーが引き継ぎ、クラウド環境でコードを実行します。イベントが終了すると、コードは再び休止状態になります。
これらのイベントは、サーバーレスコンピューティングモデルでは「関数」と呼ばれます。 たとえば、ウェブサイトには、ユーザーが写真をアップロードしてサイズ変更および再フォーマットできる機能がある場合があります。ユーザーが写真をアップロードするとすぐに、関数が開始されます。
サーバーレスモデルは、継続的に実行されるかどうかわからないこれらの関数に依存しているため、スケーリングが可能です。ウェブサイトまたはアプリに大量のトラフィックがある場合、クラウドはより多くのスペースと処理能力を(有料で) 提供できます。トラフィックが遅くなると、それに応じてスペースと料金が減少します。
サーバーレスモデルは大きく、少しフワフワしているように見えるかもしれません。しかし、専門家は、真のサーバーレスアプリケーションには4つの属性があると言います。以下がその属性です。
- 価格変動ベンダーは使用に応じて課金します。
- 自己保守クライアントはサーバーのメンテナンスを実行する必要はありません。
- スケーラブルクライアントのプログラミングの支援がなくても、継続的にスケールアップ・ダウンができます。
- 高い信頼性これらの製品は、高可用性とフォールトレランスが組み込まれています。
サーバーレスコンピューティングは何が違うのか?
皆さんは、ウェブサイトやアプリの管理に対応するクラウドベースのサーバーについて読んだことがあるのではないでしょうか。一部のクラウドベースサービスがサーバーレスコンピューティングに不気味にも似ていると感じたなら、それは間違いではありません。
クラウドベースのサービスの多くは、以下のようなサーバーレスコンピューティングと共通の特徴があります。
- BaaSサービスとしてのバックエンド (または BaaS) を使用すると、開発者はバックエンド関数の管理をアウトソーシングできます。
- PaaSサービスとしてのプラットフォーム (または PaaS) を使用すると、クラウド環境内で製品を開発およびデプロイできます。
- IaaSサービスとしてのインフラストラクチャ (または IaaS) を使用すると、クラウド環境内のウェブサイトまたはアプリに関連するほとんどすべてのことを実行できます。
自動スケーリングによって、サーバーレスコンピューティングは、これらすべてのモデルとは一線を画しています。ほとんどの場合、より多くのスペースが必要になると、BaaS、PaaS、または IaaS ベンダーに相談する必要があります。サーバーレスコンピューティングモデルでは、こうした相談は必要ありません。
サーバーレスコンピューティングも、テクノロジーの普及に伴い変化しています。たとえば、一部の企業では、中央データセンターから遠く離れた場所にノードが散在する分散ネットワークを実験中です。このように配置することで、待機時間を短縮し、ユーザーエクスペリエンスを向上させることができます。他のクラウドベースのモデルは、この方向に動かない場合があります。
サーバーレスコンピューティングのメリットとデメリット
では、現在のセットアップを放棄してサーバーレススタックに移行すべきでしょうか?以下に詳しく説明します。
サーバレスコンピューティングには次のメリットがあります。
- コスト使用した分だけ支払うことになります。他のクラウドベースのモデルでは、(使用するかしないかにかかわらず) スペースを予約することになります
- 柔軟性サーバレスモデルは、介入なしで規模の拡大・縮小が可能。
- 精度開発者は、そのアクションをサポートするバックエンドアーキテクチャを気にすることなく、特定の機能に集中できます。この権限の分離により 、よりクリーンなコードが可能になります。
- スピード 開発者は、サーバースペースの見積もりや割り当てに頭を悩ませる必要がなく、時間を節約できます。
サーバレスコンピューティングのデメリットは以下になります。
- セキュリティ自社データの一部を、データを保護するかどうか不確かな別の会社に渡すことになります。サーバーレスシステムを導入していない企業の60%が、最も懸念しているのが、セキュリティと未知への恐怖です。
- プライバシーリソースは、他のユーザーも利用するクラウド環境で共有されます。
- 複雑性正常に機能しない場合、問題の発見が難しい場合があります。複数のスペースを見ることになります。
- 契約一部のベンダーは、長期契約に縛り付けます。
開発プロセスの分割を望んでいるものの、サーバーレスコンピューティングソリューションに飛び込む準備ができていないかもしれません。その場合は、マイクロサービスを検討してください。当社では、これらの製品に関する詳しいブログ記事を作成しており、メリットとデメリットを詳しく解説しています。ぜひ、ご覧ください。
参考文献
O'Reilly Serverless Survey 2019: Concerns, What Works, and What to Expect. (2019年11月)O'Reilly.
Serverless Explainer: The Next Generation of Cloud Infrastructure. (2017年4月)Networkworld.
What's Next for Serverless Architecture? (2020年2月)InfoWorld.
What Serverless Computing Really Means, and Everything Else You Need to Know. (2019年4月)ZD Net.
Aurora Serverless: The Good, the Bad, and the Scalable. (2020年4月)Jeremy Daly.
Serverless Computing: 5 Things to Know About the Post-Container World. Tech Beacon.
Why Serverless Computing is the Fastest-Growing Cloud Services Segment. (2018年9月)CB Insights.