サーバーレスフレームワークとは、DevOpsチームがアプリケーション開発に必要な基盤インフラを管理することなくコードを構築して記述できるようにする一連のサービスです。サーバーレス開発に関与しているサーバーはまだありますが、それらはクラウドサービスプロバイダーによってプロビジョニング、設定、保守、更新されます。
サーバーレスフレームワークは自動的にスケーリングされます。お客様は一定数のサーバーを予約して料金を支払うのではなく、必要な計算量に基づいて課金されます。コンテナに展開されたサーバーレスアプリケーションは、呼び出されるたびに自動的に起動します。クラウドサービスプロバイダーは、アプリケーションに必要なリソースを確保し、DevOpsチームが自由にソフトウェアを構築して実行できるようにする責任を負います。
一般的なサーバーレスフレームワークには、AWS Lambda、Microsoft Azure Functions、Google Cloud Functionsなどがあります。
サーバーレスコンピューティングの仕組み
サーバーレスフレームワークでは、開発者はフロントエンドのアプリケーションコードとビジネスロジックを記述し、クラウドサービスプロバイダーによって管理されるコンテナに展開します。クラウドプロバイダーは、いつアプリケーションのコードが実行されても必要なリソースをオンデマンドで起動してプロビジョニングし、実行が終了するとスケールバックしてリソースをゼロにする責任を負います。また、プロバイダーは、サーバーの設定、パッチの適用、負荷の分散、基盤となるサーバーインフラのセキュリティ管理に関連するすべてのタスクを処理します。
一般的なサーバーレスのユースケースには、ビジネスプロセスの自動化、チャットボット、メディア処理、モノのインターネット(IoT)、Webアプリケーション用のAPIの構築などがあります。
Functions as a Service(FaaS)とは?
FaaSはクラウド・コンピューティング・サービスの一種であり、開発者が基盤となるインフラを管理することなく、モジュール化されたコードを機能として構築、実行、管理できるようにします。FaaSを使用すると、開発者はイベントトリガーされたアプリケーションをエッジとオンデマンドで実行でき、アプリケーションの実行中にのみサーバープロセスに料金を支払います。これらの機能により、コードのスケーリングやマイクロサービスの実装をコスト効率よく容易に行えるようになります。
サーバーレスフレームワークのメリットとは?
サーバーレスフレームワークは、代替環境よりもDevOpsチームに大きなメリットをもたらします。
- コストの削減。サーバーレスフレームワークでは、アプリケーションの実行に必要なコンピューティング時間に対してのみ課金されるため、常に稼働するサーバーを継続的に管理する必要がある他のクラウドベースサービスよりもコストが低くなります。
- スケーラビリティの向上。サーバーレスフレームワークは、需要の急増や新たなビジネスチャンスに合わせて簡単にスケーリングできます。DevOpsチームは、運用の拡大に伴うサーバーやセキュリティの管理を心配する必要はありません。
- 市場投入までの時間の短縮。サーバーレス環境は数分または数時間でプロビジョニングできるため、市場投入までの時間を短縮できます。
- レイテンシーの低減。サーバーレスアーキテクチャでは、エンドユーザーに近いエッジサーバーなど、あらゆるサーバーでコードを実行してレイテンシーを最小限に抑えることができます。
- より高い柔軟性。サーバーレスプラットフォームにより、DevOpsチームはあらゆる言語や開発フレームワークでアプリを構築できます。
サーバーレスフレームワークの欠点とは
- セキュリティに関する懸念。サーバーレス環境のセキュリティを維持する責任はクラウドサービスプロバイダーが負うため、組織はセキュリティを完全に可視化できない可能性があります。
- テストとデバッグが困難。開発者はバックエンドプロセスを可視化できないため、コードのテストとデバッグはより複雑になる可能性があります。
- 長時間実行されるプロセス。サーバーレスは、サービスを実行して停止する短時間のアプリケーションを実行するのに理想的です。しかし、サーバーレスフレームワークでは、アプリケーションを長時間実行することはコスト効率に優れない場合があります。
- ベンダーロックイン。クラウドサービスプロバイダーに基盤となるすべてのインフラに対する責任を負わせると、必要に応じてプロバイダーを変更することが困難になる可能性があります。
サーバーレスとIaaS、PaaS、BaaSの違い
サーバーレスフレームワークには、他のクラウドサービスモデルといくつかの類似点がありますが、サーバーレスを特定の状況に適したものにする大きな違いがあります。
- Infrastructure as a Service(IaaS):IaaS サービスでは、組織は将来のクラウドリソースのニーズについて、知識に基づいて事前に推測する必要があります。その結果、過剰なプロビジョニング、不十分な利用、コストの増加につながる可能性があります。一方、サーバーレスフレームワークのキャパシティは、アプリが起動されたときにのみ消費され、アプリが終了したときに組織は支払いを停止します。
- Platform as a Service(PaaS):サーバーレスフレームワークと同様に、PaaSサービスでは、開発者がバックエンドを管理することなく、アプリケーション開発ツールにアクセスできます。しかし、PaaSソリューションの価格設定はサーバーレスほど正確ではなく、PaaSサービスは簡単にはスケーリングできない場合があります。
- Backend as a service(BaaS)。サーバーレスフレームワークと同様に、BaaSソリューションを使用すると、開発者はサーバーやバックエンドインフラの管理をクラウドサービスプロバイダーにアウトソーシングすることで、これらのタスクを回避できます。しかし、サーバーレスフレームワークとは異なり、BaaSソリューションは自動的にスケーリングできません。また、BaaSサービスはサーバーレスソリューションのようにイベント駆動型ではないため、より多くのサーバーリソースを消費し、コストが増加する可能性があります。
よくある質問(FAQ)
サーバーレスコンピューティングは、クラウドサービスプロバイダーがサーバー、ストレージ、ネットワーキングなどのコンピューティングインフラを管理し、インターネット経由で組織にアクセスを提供するクラウドコンピューティングモデルの一種です。お客様は、オンデマンドで従量制の料金でクラウドリソースを消費します。クラウドプロバイダーは、サービスの保守、更新、セキュリティ確保の責任を負います。しかし、ビジネスニーズやアプリケーション要件が変化すると、お客様はキャパシティの拡大を手配する責任があります。サーバーレスコンピューティングでは、クラウドプロバイダーがクラウドインフラとキャパシティプランニングの両方を担い、お客様が必要に応じてアプリケーションをスケーリングできる十分なキャパシティを確保できるようにします。
サーバーレスセキュリティとは、サーバーレスコンピューティングアーキテクチャを保護するために組織が展開する一連のプラクティス、プログラム、テクノロジーです。サーバーレスセキュリティでは、アプリケーションセキュリティに対する組織の考えを変えるとともに、アクセスを制御してデータを次のようなものから保護するための新しいアプローチが必要です。
- 入力が悪性かどうかを判断せずに入力を配信するイベントデータインジェクション
- 攻撃者によって侵害される可能性のある過剰な権限
- IT環境を攻撃にさらす誤設定
- 攻撃者が認証メカニズムの弱点を悪用して不正アクセスできるようにする、認証の不備
- ハッカーが悪用できる脆弱性をもたらす安全でないコード
- 可視性を得ることを困難にする大きなアタックサーフェス
- 機微な情報やリソースにリスクをもたらすサードパーティへの依存
Akamai が選ばれる理由
Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。