0
会員になると、いいね!でマイページに保存できます。
近年のインフラストラクチャのクラウド化が進む中で、「サーバレス」というクラウドネイティブな概念が広がりを見せている。これまでに、Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure(Azure)など、さまざまなクラウドベンダーでサーバレスをうたうサービスが誕生している。そして今、このサーバレスは黎明期を過ぎ成長期に入ったことで、多種多様な領域で活用され始めている。今回、このサーバレスの今とこれからについて、そのトレンドを解説する。
改めて、サーバレスとは
まず、サーバレスという概念について確認しておこう。
サーバレスはその言葉の通り「サーバを持たない」という考えが基底にある。サーバを持たないことでサーバの管理を不要とし、高次のレイヤーのみに集中するシステム開発を実現するという概念である。これは、クラウドの特性をフル活用したクラウドネイティブな考え方である。
現在、サーバレスにはBaaS(Backend as a Service)と FaaS(Function as a Service)の2つの側面がある。
BaaSでは、アプリケーションに必要なさまざまなバックエンドの機能が、REST APIやクライアントライブラリを通じて提供される、APIベースのサービスである。FaaSは任意のアプリケーションコードをイベント駆動で実行できる、イベント駆動のコンピューティングサービスである。コンピューティングサービスの中でも、最上位に抽象度が高いという特性がある。
これらを組み合わせて構成するのがサーバレスアーキテクチャと呼ばれる。
以下に、サーバレスのメリット/デメリットをまとめる。
AWS におけるサーバレスを例としながら、サーバレスのトレンドを確認しよう。
サーバレスの進化
ここ1年でサーバレスがどう進化したのか、例としてAWS Lambdaのアップデート情報を まとめる。
これらのアップデートにより、よりサーバレスでできることが多くなった。たとえば、タイムアウト制限が5分から15分まで伸びたことでより多くのデータを一度のLambda実行で処理することが可能となった。また、SQS(Simple Queue Service)がトリガーに追加されたことで、データ量に応じたより柔軟なスケーリングとパラレル処理が実現可能となった。
イベント駆動型のコンピューティングの可能性が広がる中、コンテナの実行環境のサーバレス化が始まっている。
コンテナもサーバレスへ
まさに今、コンテナの実行環境のサーバレス化が始まっている点を説明しよう。
これまで、サーバレスといえばFaaSであったが、CaaS(Container as a Service)の領域でもサーバレスが登場しており、ホストマシンの管理を必要としないコンテナ型アプリケーションの運用が実現される。
これにより、サーバー管理不要というサーバレスのメリットと従来のコンテナのメリットを生かしたシステム開発、運用が可能となる。ただし、FaaSと違いアイドル時間の課金は発生するなど、従来のサーバレスのメリットはある程度制限される。
これまでのCaaSとの違いは、コンテナの実行環境がサーバレスであるということだけで、従来のコンテナのオーケストレーション(注1)やサービスメッシュ(注2)などのツールは変わらず使用可能である利点がある。
注1:オーケストレーション……ここでは、複数のコンテナの展開や監視および管理をする一連の作業のこと。ツールとして「Kubernetes」や「Amazon ECS」などがある
注2:サービスメッシュ……マイクロサービスアーキテクチャにおける多数のサービス間通信を統合的に管理する考え方のこと。ツールとして「Istio」や「Linkerd」などがある
CaaSの抽象度はFaaSよりも低いが、その分、ユーザーがコントロールできる領域も広がる。そして、コンテナ型はイベント駆動型よりも標準化が進んでいるためベンダー依存も少ない。FaaSよりもサーバレスとしてのメリットは限られてしまうが、FaaSを使った構成よりもリフト&シフトがしやすいため、その選択肢として活用されることも期待される。
【次ページ】サーバレスの標準化は数年以内?
関連タグ