FaaS とは?
近年、さまざまなタイプのクラウド・コンピューティングが人気を集めています。これは、IT リーダーがこの柔軟なアプローチによるインフラストラクチャーマネジメントの利便性、スケーラビリティー、コスト面での利点を受け入れているためです。
クラウド・サービス・プロバイダー (CSP) は、それぞれ独自のレベルのサービスで、さまざまなサービスモデルに対応しています。最も包括的な製品の1つは、Function as a Service (FaaS)です。
FaaS モデルでは、お客様はクラウドでコード・エグゼキュートを実行し、CSP はインフラストラクチャーからアプリケーションまで、バックエンドの運用全体をホストし管理します。お客様は、ご自身のデータと実行する機能についてのみ責任を負うものとします。
通常、FaaS のお客様は、Function as a Service の「ファンクション」を実行するのに必要な実際の実行時間に対してのみ、支払いを行います。エグゼキューションは 1 秒で、FaaS システムは同時に複数のインスタンスに対応できるように迅速にスケール化できます。一つのファンクション・エグゼキューションから次のファンクションまで、アイドルタイムにかかる費用は発生しません。
このイベント主導型の価格設定は、断続的または散発的なプロセシング・ニーズを抱えたデベロッパーにとって、経済的なクラウド・サービス・モデルとなります。
FaaS の一般的な用途には、データ プロセシング、検証、並べ替え、モバイルおよび IoT アプリケーション向けのバックエンド・サポートが含まれます。
サーバー上で実行される「サーバーレス・コンピューティング」
FaaS モデルは、CSP がクラウド・インフラストラクチャー、プラットフォーム、OS、ソフトウェア・アプリケーションを管理し、すべてユーザーには不透明なものとなる場合があり、クライアントの視点から「サーバーレス」と考えられます。
しかし、「サーバーレス・コンピューティング」というのは、少し語弊があります。FaaS ユーザーはハードウェアを管理しないし、見てもいないのに、FaaS モデルはサーバー上で動作します。ハードウェアは CSP によって所有、運営、管理されているため、お客様は、ご自身のサーバーを購入またはメンテナンスすることなく、オンデマンドで機能性をフルに活用できます。
「FaaS」 の大文字の「S」の対象となる「サービス」は、クラウド「サービス」プロバイダーと同様にビジネスサービスです。そこでのサービスが、消費の単位となります。サーバーにお金を払っているのではなく、サーバーがホストするものにお金を払っているのです。」1
FaaS 向け インテル® テクノロジー
ほとんどの CSP の FaaS 製品では、プラットフォーム・コンポーネントは詳細に規定されていません。ユーザーは通常、仮想マシンに特定のハードウェア・テクノロジーを要求することはできません。Intel® AVX-512 や AVX2 アクセラレーターなどの、インテル® ハードウェアの特定の機能は、パフォーマンスの最適化やユーザー満足度の向上に役立ちます。そのため、一部の CSP は インテル® テクノロジーベースのプラットフォーム上で FaaS サービスの実行を好むものです。
ソフトウェア開発者は、FaaS エンバイロメンでインテル® テクノロジーベースの仮想マシンを指定できない場合でも、CSP にインテル® 最適化されたコード・ライブラリーへのアクセスを要求できます。これらのライブラリーは、インテル® oneAPI ツールキットのスイートで利用可能であり、複雑な数学ルーチン、圧縮、暗号化、その他のコンピューター集約型タスクを加速するパフォーマンス向上コードが含まれています。このような最適化により、ユーザーは FaaS 実装のランタイムと費用を抑えることができます。
マイクロサービスとは?
マイクロサービス は、アプリケーション・アーキテクチャーの一部であり、アプリケーション・コードのセクションは他の機能とは独立して動作します。複雑なアプリケーションを開発する際、マイクロサービス・アプローチは、互いに異なる機能を隔離するため、一つのサービスに障害が発生した場合でも、アプリケーション全体は動作を継続できます。
マイクロサービス・ベースのソフトウェア・デベロップメント・エンバイロメントは、サービス指向型アーキテクチャーのコンテキストで実現できます。複雑なアプリケーションは、プログラミング・インターフェイス (API) 経由で緩やかに統合された、ディスクリート・サービスのコレクションとして構築・維持されます。サービス指向型のソフトウェア・アプリケーションとそのコンポーネント・マイクロサービスは、維持とアップグレードが容易になります。なぜなら、個々のサービスは、アプリケーション全体を取り下げずにパッチ化またはアップグレードできるからです。
多くのマイクロサービス・モジュールは、FaaS エンバイロメントで開発・納入することができます。多くの場合、マイクロサービスはコンテナ化された、またはさらに隔離されたアプリケーションで、大規模なアプリケーションの各部分の制御を改善します。
Function as a Service は、どのように機能するのでしょうか?
ユーザーの視点から、Function as a Service は、ソフトウェアのデベロップメントや展開のための、プレビルト・エンバイロメントです。CSP はすべてのハードウェア、ミドルウェア、ソフトウェアを含む技術スタック全体を所有し、管理します。
他のクラウドサービスモデルでは、ユーザーは特定の仮想マシンやコンテナーへの継続的なアクセスのために、定められた期間にわたって支払うことができます。FaaS モデルでは、お客様は機能を生成するために必要な時間とリソースにのみ、料金を支払います。
たとえば、一つの CSP の価格構造では、機能の持続時間とリソース展開は「ギガバイト秒」で測定され、最も近いミリ秒に切り上げられます。2
FaaS の利点
FaaS ユーザーは、このタイプのクラウド・コンピューティングを他の「as a Service」モデルと区別する特典として、従量制の価格モデルを利用できます。CSP は、ハードウェアからアプリケーション・ソフトウェアやツールまで、テクノロジー・スタック全体を所有・管理し、ユーザーが自分のデータと機能のみを管理できるようにします。
ユーザーは、FaaS エンバイロメントで機能やサービスが活発に実行されている時間に対してのみ、料金を支払います。これらの活動のバーストは、多くの場合、ミリ秒で測定されます。ユーザーは、これらのバースト間のアイドル時間の料金は支払いません。
FaaS は、予測不可能で断続的なワークロードに最適です。
FaaS の課題
長時間にわたり、途切れないワークロードについては、FaaS とは異なる「as a Service」モデルの方が経済的になる可能性があります。FaaS の使用量はミリ秒単位で測定され、支払いが行われることが多いため、FssA は一般的な IaaS クラウドサービスよりもはるかに高価で、常時使用すると法外な料金になることがあります。
FaaS 実装は、デベロップメント・エンバイロメントの構造がユーザーにとって不透明なため、デバッグが困難な場合があります。広範なテストが必要な場合、異なるクラウド・コンピューティング・モデルが望ましいため、ユーザーはさまざまな標準的エコシステムを指定して制御できます。しかし、ソフトウェア・テクノロジーが成熟して完全にプラットフォームに依存していない場合、FaaS は適合することができます。
FaaS ユースケース
オンデマンド機能は、FaaS エンバイロメントに適した全体的な使用モデルです。オンデマンド設定では、フィーチャーは迅速かつ断続的に電源を供給されます。FaaS ユーザーは、フィーチャーがアクティブな時間に対してのみ支払うため、オンデマンド・モデルとは FaaS の経済的な使用法です。
インタラクティブウェブサイトは、特にバックエンド・エグゼキューションにおけるオンデマンド使用モデルの例です。FaaS は、エンドユーザーがウェブサイトをクリックして、簡単なイベントが発生した場合のみに起動します。オンライン・メディア・パブリッシャーや E コマース・サイトは、フレキシビリティーの高い FaaS モデルを利用して、ユーザーが 予測不可能なスケジュールでサイトにアクセスできます。たとえば、ストリーミング・メディア配信会社は、CSP の FaaS プランにおいて、ユーザー・メニューと推奨事項を併せて、主要サイトを管理できます。
データプロセシングと検証タスクは、FaaS モデルに正常に適応することができます。一つのモノのインターネット (IoT) インストールでは、分析のためにデータが断続的にクラウドにセンサー・データを送信します。
ソフトウェア・デベロップメントは、デベロップメント・ワークロードが断続的である場合、FaaS 設定でデプロイする場合もあります。
ソフトウェアの展開は、マイクロサービスの配信に適した FaaS モデルにできます。Software as a Service (SaaS) プロバイダーは、新規ユーザーを迅速に追加し、ソフトウェアが不規則な一進一退パターンで使用されている場合、スタートフェーズで、FaaS ベース独自のオペレーションを実行する場合もあります。
クラウド・コンピューティングの種類
クラウド・コンピューティング・サービスは、パブリックとプライベート基本設定の二つのカテゴリーに分けることができます。多くの組織は、ハイブリッドまたはマルチクラウド構成で、二つのサービス・モデルの組み合わせを展開します。
パブリック・クラウド
パブリック・クラウドのサービス・モデルでは、ユーザーは CSP のコンピューティング、ストレージ、およびネットワーク・リソースの使用に対して料金を支払います。パブリック・クラウドサービスは、オンデマンドで利用可能なため、先行投資がほとんどなく、迅速に展開して運用費用として予算を設定できます。
プライベート・クラウド
それに対して、プライベート・クラウドは、組織独自のデータセンター上で運用するため、ハードウェアへの大幅な先行投資や継続的な管理が必要です。長期的には、プライベート・クラウドは、場合によってはパブリック・クラウド・サービス・モデルよりも経済的な場合があります。
プライベート・クラウドの利点は、知的財産権と規制遵守に対してローカライズされた管理ができること、パブリック・クラウドに簡単に移行できないような、ビジネスクリティカルなワークロードやアプリケーションのサポートなどが挙げられます。
ハイブリッド・クラウド
ハイブリッド・クラウドを使用すると、組織はパブリックとプライベート両方のクラウドサービス・モデルの利点を享受できます。ハイブリッド・クラウドは、パブリックとプライベートのクラウドを接続するため、組織は二つの環境間でアプリケーションおよびデータを共有できます。ハイブリッド・クラウドは、フレキシビリティー、スケーラビリティー、制御、および潜在的なコスト削減を提供します。
マルチクラウド
マルチクラウド・モデルでは、組織はいくつかの異なる CSP のクラウド・コンピューティング・サービスを利用します。リソースの展開は、通常、ソフトウェアで管理されます。マルチクラウド戦略は非常にフレキシブルなものです。組織は、単一の CSP のサービス提供内容またはテクノロジー・スタックに縛られることなく、ワークロードのバランスをとり、コストを最適化できます。
多くの組織は、マルチクラウド展開の各 CSP において、インテル® テクノロジー・ベースのインスタンスを指定し、プロバイダー間の一貫性と互換性を可能にします。
IaaS、PaaS、および SaaS
多くの CSP は、単なるアクセスからサーバー・ハードウエアまで、FaaS などのフルスケールで包括的なオプションを含む、幅広いクラウド・コンピューティング「as a Service」の選択肢を提供します。
Infrastructure as a Service (IaaS)
最も一般的な、基本設定のクラウド・コンピューティング・サービスは、Infrastructure as a Service (IaaS) として知られています。IaaS モデルでは、CSP はネットワーキング、ストレージを含むすべてのハードウェアを所有し、管理します。ユーザーは、すべての OS やアプリケーション、および組織のデータと機能に対する契約、ライセンス、アップグレード、メンテナンスを含むソフトウェアスタックの責任を負います。
IT マネージャー IaaS は、オンプレミスやコロケーション型のハードウェアを購入・維持する代わりに IaaS を重視し、それに伴う資本コストが発生します。IaaS は、ユーザーのニーズに応じてスケールできる、フレキシブルなモデルであり、CSP の料金は、組織の予算で運用コストとして扱われます。
Platform as a Service (PaaS)
Platform as a Service (PaaS) は、より充実したデベロップメントとデプロイ・エンバイロメントを可能にするクラウドサービス・モデルです。CSP の PaaS 製品には通常、IaaS のすべてのハードウエア・インフラストラクチャーに加え、ソフトウェア・プラットフォーム (OS、ミドルウェア、デベロップメント・ツール、ある種のデータ・マネジメントおよび分析サービス) を構成するビルディング・ブロックが含まれます。
PaaS ユーザーは、IaaS 配置と同様に、ソフトウェア・スタックのアプリケーション・レイヤーと自分のデータおよび機能を継続して管理します。
Software as a Service (SaaS)
SaaS、つまり Software as a Service は、クラウド・コンピューティング・サービス・モデルとして最も普及していると思われます。SaaS 導入の例は、IaaS を拒否して、堅牢なオンプレミスのサーバー・インフラストラクチャーを所有および管理する組織も含めて、ほぼすべての組織で見られます。
電子メール、CRM、生産性スイート、ファイルストレージなど一部のアプリケーションは、SaaS モデルで便利に提供されます。組織は、特定の期間にライセンス料を支払い、アプリケーションはクラウドで利用可能になります。ユーザーと IT チームは、時間のかかるダウンロードやインストールを避けることができ、アップデートを管理する必要はありません。