1. TOP
  2. ブログ
  3. 「仮想化」「コンテナ」の次に来るもの「サーバーレス」

「仮想化」「コンテナ」の次に来るもの「サーバーレス」

サーバレスアーキテクチャは、2014年にAmazonがAWS「Lambad」を発表し、2016年にはいって、Googleの「Cloud Functions」やMicrosoftの「Azure Functions」もこの分野に参入し、注目を集めています。

サーバレスアーキテクチャは、サーバ仮想化やOSのコンテナ化に続くクラウドサービスの技術として注目されています。この、サーバレスアーキテクチャが、今までのクラウドサービスと、どのように違うのでしょうか。

「仮想」「コンテナ」「サーバレス」の違い

まずはじめに、サーバレスアーキテクチャがサーバ仮想化やOSのコンテナ化とどのように違うのかを説明します。

サーバ仮想化は、ハードウェアを含めた「サーバ」をソフトウェア上で再現する技術です。AWSのサービスで言うとEC2にあたる物であり、それがクラウド上にあったとしても物理サーバと同様に、サーバスペックの検討が必要な点で、物理サーバとの違いはありません。

OSのコンテナ化はOSを分離して複数区分に分けることによって独立したアプリケーションを実行する環境を提供します。ある意味ではOSをソフトウェアで再現した物と言えます。コンテナ化によって開発者の負担は大幅に減りました。しかし、環境について全く考えなくて良いかというと、そこまでは至っていません。ちなみにAWSにもコンテナサービスは存在しています。AWS ECSがそれにあたります。

では、サーバレスアーキテクチャとはどのような物でしょうか。それは、OSのことすら考える必要が無く、アプリケーションを実行するだけの基盤といえるものです。
サーバレスアーキテクチャでは、開発者はインフラについて考える必要がなくなり、アプリケーションの開発に集中できるというわけです。

もちろん、サーバレスアーキテクチャだからといってサーバが実在しないというわけではありません。サーバレスアーキテクチャの基盤部分の管理が全てクラウドサービス提供者の責任範囲になるために、開発者はサーバの運用やスケールについて検討する必要がなくなると言うことです。

サーバレスアーキテクチャ仕組みとメリットとは

サーバレスアーキテクチャの仕組み

サーバレスアーキテクチャの仕組みをAWS Lambdaで説明すると、開発者は、Lambdaに必要なコードを配置しておくだけで、APIリクエストなどの特定のアクションに対してLambdaが起動し、コードを実行てくれます。一般的に、このトリガーによるアプリ起動から終了を、20ミリ秒以下で実施する事のできるマイクロサービスをサーバレスアーキテクチャと呼びます。
AWS Lambdaは、AWSの各サービスをAPIによって繋ぐことによって、直接実行出来るようになっています。

サーバレスアーキテクチャのメリット

サーバレスアーキテクチャのメリットの一つ目は、コストが安句なる可能性があることです。例えば、1日数回数時間おきにバックアップを実施するプログラムや、API呼び出しに対して対応を行うプログラムをEC2で実施しようとすると、バックアップ待ちの時間や、APIの呼び出しを待つ間ずっとサーバを起動していなければならず、その間課金され続けます。

それに対して、サーバレスアーキテクチャは、Lambdaに対する呼び出しをトリガーとしてアプリケーションを起動し、終了後すぐに停止します。この呼び出しから終了の時間に対して課金される仕組みになっています。

サーバレスアーキテクチャを使えば、実施頻度の少ないアプリケーションほど、EC2などの時間課金のサービスに対してコストのメリットが大きくなります。

次のメリットは、スケールについても開発者は考える必要が無いことです。
通常、アプリケーションの負荷の増加を見越してサーバなどのスペックを決定していました。ピークに合わせてサーバを調達するのでピーク以外は資源の無駄遣いと言えました。

しかし、Lambdaのようにマイクロ秒単位で起動終了するマイクロサービスでは、呼び出し回数に対して児童にスケールされます。そのために、開発者がサーバのスペックなどを検討する必要がなくなるわけです。

サーバレスアーキテクチャのデメリット

サーバレスアーキテクチャのデメリットの一つは、利用できる言語が限られていることです。LambdaではNode.js,Python,Javaが利用できます。
二つ目にJavaはクラスの読み込みに時間がかかることがあり、Node.jsに比べるとコストがかかるというデメリットもあります。加えて、マイクロサービスではない通常のサービスをサーバレスアーキテクチャに載せることに意味はありません。

すべてをサーバレスにするのは妥当ではない

このように、サーバレスアーキテクチャは、トリガーによって比較的簡単なコードを実行するマイクロサービスやナノサービスにおいて実力を発揮します。そういうわけで、今あるアプリケーションを全てサーバレスに移行きるわけではありません。

しかし、今後はサーバレスアーキテクチャをベースにした、マイクロサービスやナノサービスを利用し、サービス間、API間をつなぐことによって、あたらしいメンテナンス性が良くて柔軟なアプリケーションやサービスを構築することができるようになっていくと思われます。

    ホワイトペーパーフォームバナー

    【DL可能な資料タイトル】

    • ・プログラムによる建築/土木設計のQCD(品質/コスト/期間)向上
    • ・BIM/CIMの導入から活用までの手引書
    • ・大手ゼネコンBIM活用事例と建設業界のDXについて
    • ・デジタルツイン白書
    • ・建設業/製造業におけるデジタルツインの実現性と施設管理への応用

    詳細はこちら>>>

    PAGE TOP