サーバーレスとは?
公開: 2022-02-15サーバーレス コンピューティングは、使用状況に応じてバックエンド サービスを提供する方法論です。 サーバーレス プロバイダーの主な要因は、ユーザーが基盤となるインフラストラクチャを気にせずにコードを記述できることです。 サーバーレス コンピューティングを提供するベンダーからサービスを受ける組織は、帯域幅や任意の数のサーバーに対して固定費を支払うことを心配する必要はありません。 それどころか、組織は計算に基づいて課金されます。 注意すべきことは、サーバーレスという名前にもかかわらず、開発者が認識する必要のない物理サーバーの使用法があることです。
インターネット時代の黎明期、誰もが Web アプリケーションを開発しようとすると、サーバーを実行する必要がありました。これは終わりのない、負担の大きい作業でした。 その後、クラウド コンピューティングの時代が到来し、固定数のサーバーまたはサーバー スペースをレンタルで契約できるようになりました。 これらのサーバーとサーバー スペースを使用する開発者や組織は、通常、Web サイト トラフィックの突然の流入によってアプリケーションが壊れるという不利な状況に陥らないように、過剰購入する傾向があります。 クラウド ベンダーはオート スケーリングの方法を考え出しましたが、DDoS 攻撃などの大きなスパイクが発生した場合、費用対効果の高い方法ではありません。
サーバーレス コンピューティングにより、開発者は「従量制」ベースでバックエンド サービスを使用できます。 これは、開発者が使用するサービスに対してのみ支払う必要があることを意味します。 サーバーレスの用語は誤解を招きます。実際には、開発者がサーバーについて心配する必要はなく、サーバーが完全に存在しないという意味でもありません。
- バックエンドとフロントエンドの違い
- バックエンド サービスの種類
- 利点
- サーバーレス コンピューティングの比較
- 未来
バックエンドとフロントエンドの違いは?
作成されるすべてのアプリケーションは、フロントエンドとバックエンドの 2 つのコンポーネントで構成されます。 フロントエンドは基本的に、ユーザーが見て、使用し、対話する部分であり、主に視覚的なレイアウトです。 バックエンドは、通常ユーザーには表示されないコンポーネントです。 アプリケーションのファイルが存在するサーバーと、ビジネス ロジックとユーザー データが格納されるデータベースです。
ウェブサイトを例にとると、フロントエンドはバックエンドにウェブサイトのデータをリクエストし、バックエンドはリクエストに応答してデータをフロントエンドにプッシュします。
サーバーレス コンピューティングが提供するバックエンド サービスの種類
サーバーレス コンピューティングのプロバイダーのほとんどは、データベースとストレージ サービスを提供しています。 それらのいくつかは、Function-as-a-Service プラットフォームも提供しています。 Cloudflare Workers はその一例です。 FaaS の概念により、開発者はネットワーク エッジでコードの小さなセクションを開発して実行できます。 FaaS 手法を使用すると、開発者はコードベース全体を非常にスケーラブルにするアーキテクチャを作成できます。最も良い点は、開発者がリソースをバックエンドに費やす必要がないことです。
サーバーレス コンピューティングの利点
サーバーレス コンピューティングは多くの人気を得ていますが、それは主に、サーバーレス コンピューティングがもたらす重要な利点によるものです。
これらの利点は次のとおりです。
- コスト削減– サーバーレス コンピューティングは、クラウド コンピューティングに見られるようなアイドル時間や未使用スペースの使用の概念がないため、比較的低コストです。
- スケーリングが容易– サーバーレス アーキテクチャまたはバックエンドを使用している開発者は、コードをスケールアップするためのさまざまなポリシーについて心配する必要はありません。
- シンプルなバックエンド コード– FaaS のような概念により、開発者は API 呼び出しと同じくらいシンプルな関数を作成でき、独立して実行されます
- ターンアラウンドの高速化 – サーバーレス アーキテクチャを使用すると、製品を迅速に市場に投入できます。 複雑な展開とパッチ更新の従来の方法とは対照的に、サーバーレス コンピューティングは、開発者がアドホックかつ断片的に新しい機能を追加するのに役立ちます。
サーバーレス コンピューティングと他のバックエンド クラウド モデルの比較
サーバーレス コンピューティングとよく比較されるテクノロジがいくつかあります。 これらは、Backend-as-a-service と Platform-as-a-service です。 これら 2 つのテクノロジにはいくつかの類似点がありますが、実際には、サーバーレス コンピューティングの方法論として定義される要件を満たしていません。
Backend-as-a-service (BaaS):クラウド ベンダーがデータのストレージなどのバックエンド サービスを提供するサービス モデルであり、開発者はフロントエンド コードの開発により集中できます。 ほとんどのサーバーレス アプリケーションは完全にイベント ドリブンであり、エッジで実行されますが、BaaS アプリケーションはサーバーレス コンピューティング方法論の要件を完全に満たすとは限りません。
サービスとしてのプラットフォーム (PaaS):これは、開発者がアプリケーションのすべてのコンポーネントをクラウド サービス プロバイダーから取得して、ベンダーのクラウド サーバー上でアプリケーションを開発および展開するモデルです。 ただし、PaaS アプリケーションはサーバーレス アプリケーションのように簡単にスケールアップできないという大きな欠点があります。 もう 1 つの要因は、PaaS アプリケーションがエッジで実行されず、アプリケーションの起動時に顕著な遅延があることです。
サービスとしてのインフラストラクチャ (IaaS):基本的には、サーバーレス コンピューティングとほぼ同じ意味で使用されるバズワードですが、2 つの用語は決して同義ではありません。 IaaS は、インフラストラクチャ ベンダーが顧客の代わりにアプリケーションをホストする場合に使用される用語です。
サーバーレス コンピューティングの未来
サービス プロバイダーがあらゆる種類の欠点を排除するための新しい革新的な方法を考え出すにつれて、この方法論は継続的に進化しています。その 1 つがコールド スタートです。
これは、特定のサーバーレス アプリケーションがかなり長い間呼び出されていない場合、プロバイダーはサーバーをシャットダウンしてエネルギーを節約し、あらゆる種類の過剰な割り当てを回避することを意味します。 次にアプリケーションがユーザーによって呼び出されると、サービス プロバイダーは最初からやり直して、その機能のホスティングを再開する必要があります。
関数が起動して実行されるとすぐに、次の一連のリクエストでより迅速に処理されるため、高速に実行されます。 ただし、関数が要求されていない場合は、再び停止します。 これは基本的に、関数を要求する次のユーザーがコールド スタートに直面することを意味します。
最終的な考え
サーバーレス コンピューティングの欠点がますます解消され、エッジ コンピューティングの人気が高まっていることから、サーバーレス コンピューティングが開発者やユーザー コミュニティの間で広く普及することが予想されます。
その他の役立つリソース:
Web サーバー脆弱性攻撃: 組織を保護する方法
サーバー メッセージ ブロックとは何か、およびそのしくみ
Web アプリケーション – 知っておくべきことすべて
エッジコンピューティングとは? – あなたが知る必要があるすべて