サーバレスアーキテクチャの利用例

サーバレスアーキテクチャの代表例として知られているAWS Lambda。今回はそんなLambdaがどんな目的で使われているか紹介します。

CI

継続的インテグレーションをLambdaで行う方法です。昔はCIサーバを用意するのが基本でしたが、開発用途のサーバを構築、メンテナンスするのは手間なのでLambdaで代用することで運用コストを減らせるようになります。

この時に使われるのがWebHookです。GitHubなどのリポジトリサービスはコードアップデート時のWebHook通知に対応していますので、その通知先をLambdaにすることでテストが自動的に行われるようになります。

テキスト処理

テキストの分かち書き処理であったり、大量のテキストを一気に処理する場合にLambdaが使われます。一定期間だけ大量の処理能力が必要な場合、クラウドサーバを立ち上げるのがこれまでのやり方でしたが、これでは料金が高くなってしまいます。

処理範囲が限定的な場合、Lambdaを使うことで料金を大幅に下げられるようになります。サーバを立ち上げる前に、これはLambdaでもできるのではないかという考えは今後大事かも知れません。

チャットボット

最近事例が多いのがチャットボットです。ロジックについてはあまり書かず、メッセージを受け取ったらAI系、テキスト処理系のAPIに送信します。そして、その結果をチャットとして返却します。仕組みは単純で、テキストメッセージ向きの仕組みと言えるでしょう。

ただしインタラクティブな対話を行おうと思うと多少面倒かも知れません。データの保存場所も残しておく必要があるでしょう。

問い合わせフォーム

Webサイトによくあるお問い合わせフォームですが、Lambdaを使うことでサーバ側のロジックレスで構築できます。仕組みとしてはAmazon S3のJavaScript SDKによってお問い合わせ内容をAmazon S3上に保存します。そして、それをフックとしてLambdaを実行してメール送信します。

Lambdaの場合、単独での利用もさることながら、S3や○といった他のAWSのサービスと組み合わせて使えるのが魅力的ではないでしょうか。

APIサーバ

Lambdaを使ったAPIサーバとしては、まずフロントにAPI Gatewayを使ってアクセスを一手に行います。そして、リクエスト内容に応じてLambdaを実行して結果を返却します。Lambdaを使うことで相当数のアクセスが来ても安心なアーキテクチャになります。API Gatewayによってアクセス数を制限することもできるでしょう。

APIサーバとしてのデータソースはデータベースを使うこともできますし、Amazon S3上に保存したCSVファイルを使うこともできます。後はファイルを差し替えるだけでAPIデータの更新も実現できます。


サーバレスアーキテクチャが最近の注目ワードですが、すべてのサーバ環境が置き換えられるものでは決してありません。向き不向きがあることを認識する必要があります。特性が分かれば、システムの一部はサーバレスアーキテクチャに、一部はこれまでのサーバを使うと言ったハイブリッドな構成が有効になるのが分かるはずです。

© NTT Communications Corporation All Rights Reserved.