サーバーレス構成の簡単な説明

11月になるということで、そろそろ気温が下がってきました。季節の変わり目ということで、体調を崩さないよう注意したいところです。


さて、表題の件ですが、現在自分はクラウドサービス(AWS)を使用して、サーバーレスでのWebサイト構築を試みています。その構成や、サーバーレスではない場合との違いなどを簡単にまとめてみました。

・サーバーレスではない構成例

クラウド上に仮想サーバーを構築する構成ですね。

仮想サーバー上でLinuxが動いており、nodejsやmySQLなどのインストールも可能と、レンタルサーバーと同じような感覚で使えます。

・サーバーレス構成例

AWSで用意されているサービスを組み合わせて使用します。

API Gatewayで外部からのアクセスを受け付け、その際の処理をLambdaでプログラムし、プログラム内でDynamoDBなどのデータベースを使用したり、ストレージにファイルを保存したりする、といった流れになります。


この説明だけだと、今までのノウハウをそのまま使える前者の方が良いのでは、となりそうなところです。

しかし、サーバーレス構成にはいくつかのメリットがあります。一番分かりやすく大きなメリットは、料金でしょうか。

AWSの料金は「従量制料金」となっており、サービスを使用した分だけ払う形となります。

EC2を使用する仮想サーバー構成だと、使用するためにはインスタンスが常に起動されている必要があり、その間ずっと料金が発生することになります。レンタルサーバーと同じと考えると当然ですね。電源が落ちていたら使えないですから。

しかしサーバーレスの場合、動作したタイミングでのみ料金が発生し、それ以外は料金が発生しません。Webサイトの場合、外部からのアクセスとその応答時以外は基本的に料金が発生しないことになります。

無論デメリットもあります。

今までの資産をそのまま使うのは難しかったり、初めて利用する分にはとっつきが悪かったり、AWSのサービスに依存する以上、実現したいシステムの内容によってはサーバーレスに出来ないパターンもあり得ます。

サーバーレス構成を検討する場合、システム内容に合っているかが重要になるでしょう。おそらく、小規模なプロジェクトに向いているように思います。

以上