HOME  -  スタッフコラム

<< 戻る コラム最新コラムへ >>
☆スタッフITコラム☆
  サーバレスコンピューティング FaaSについて
 By やま 2018/06/18

「サーバレス」と聞くと、サーバを使用しないコンピューティングのように理解してしまいますが、この「サーバーレス」とは「開発者はサーバのことを一切考慮しなくてよい」といった意味で使われています。
開発者はアプリの実行に必要なサーバなどのインフラはクラウドに管理を任せ、開発者はシステム開発、プログラミングに専念できるようになります。

こういった開発者はプログラミングに専念できるようにしようという流れは、2000年代後半からクラウドが出てきて発展していっています。

まずは、IaaS(Infrastructure as a Service)、これはサーバやネットワークなどのハードウェアはクラウドの運営者側に任せ、開発者はOSから管理するといったものです。
なので、ハードウェア故障が発生した場合も運営者側で対処して頂けます。

次にPaas(Platform as a Service)はハードウェアだけでなく、OSの管理についてもクラウド運営者側に任せることができます。開発者は開発したアプリケーションをビルドして所定の方法でクラウドにアップロードするだけで、OSのセキュリティアップデートや設定などを気にする必要がなくなります。

これらの究極として最近出てきたのは、FaaS(Function as a Service)です。
Function:日本語に訳すと「関数」や「機能」といった意味になりますが、FaaSでは開発者はハードウェアやOSの管理を行う必要がなく、PaaSと異なるのは、FaaSはリクエストの送受信についても自動で行ってくれます。開発者はある機能、関数を開発して紐づけるだけで、対象のリクエストが来たら自動で紐づいている関数が起動し、処理が終われば自動でレスポンスが返り、関数が終了するといったものです。

AWSでは「AWS Lambda」、Googleでは「Google Cloud Funcitons」、Microsoftでは「Microsoft Azure Functions」といったサービスで提供されています。

FaaSのメリットとしては、リクエストがあって初めて起動されるので、リクエストがあるまでの待機時間は料金がかからないということです。
なので常時リクエストがあるような大規模なシステムには向きませんが、小規模なシステムにとっては低コストかつシンプルに開発・管理できるようになります。

一つのシステムアプリケーションを実行させるためには、サーバなどのハードウェア、ネットワーク、アプリケーションプログラム、データベースと色々なものがかかわっています。
どれもすべて自前で管理しようとすると大変な労力と人材が必要になってきます。
開発者はより良いアプリケーション(プログラミング)を作ることに注力し、その他の管理はクラウドにお任せするという傾向は今後も広まっていくと思います。


<< 戻る コラム最新コラムへ >>