Serverlessの用途
ここまでは仕組みについて解説をしてきましたが、Serverlessはどのような利用用途に向いているのでしょうか。
Serverlessはマルチティア実装を楽にするための仕組みであり、非同期実行処理を受け持つような以下に挙げるタスクが向いているといわれています。
- 画像処理 サムネイル作成、顔の検出、各プラットフォームに合わせて複数のサムネイルや縮小画像などを準備する用途など
- ドキュメント処理 ElasticsearchやApache Solar、クラウドで提供されるサーチサービスのインデックスを作る前処理などとして、WordファイルやPDFファイルから文書を抽出したりする処理など
- ウェブクローラ 並列性を生かして、指定したURLへアクセスして情報を収集するクローラなど
- プッシュ通知 非同期性を生かして、アプリで共用できる各プラットフォームにプッシュ通知するAPIを作る場合など
- 汎用テキスト処理 実行時間範囲内でテキストから特定の文字列を除いたり、チャットやボットのレスポンスに使ったりなど
- SMSの送受信 Twilioなどとの併用でAPIをコールしたら、SMSや電話を行う仕組みなど
- メールの送信 SMTP部分のWrapper APIとして、アプリからAPIをコールによって、簡単にメールが送信できる仕組みなど
- CRONなどのスケジューラの置き換え スケジューラを利用し、特定時間に実行する簡単なタスクの呼び出しや外部APIのキックなど
- Webhookのイベントの処理 外部Webhookから呼び出し先として、他のWebhookに連携する場合など
- ログ格納 ログのフォーマットの変更や整形処理、フィルタやマスク処理など
Serverlessの面白さ
筆者自身も、Serverlessの仕組みを調査しながらさまざなテストを行っているのですが、この仕組みの面白さはクラウドの各種サービスやWebhookとの併用によって、その旨味が増すところだと思っています。
クラウドベンダーも、その点を理解しているのでしょう、各ベンダーのサービスがWebhookポイントの実装を始めています。これによって、例えば、AWSのS3ではファイルが設置されたら、Webhookを介してLambdaを呼び出すことが可能になり、ログが設置されたらLambdaでフォーマットするなどの使い方が出てきています。従来では常駐プログラムなどによって、ポーリングでファイルを確認するなどしていた仕組みがトリガによる仕組みに変わることで、実装量が大幅に減らせる可能性があります。
手軽な方法でサービス同士の連携ができる、この仕組みの今後が筆者もとても楽しみです。
- 廣瀬一海
- 愛称「デプロイ王子」。1997年からOSSやLinuxを活用し、主にインターネット向けサーバシステムの設計や無停止設計、分散設計と構築などを担当する。日本医師会総合政策研究機構(日医総研)客員研究員、日本コンピューター、pnop CTO、アイレット クラウドパック事業部 シニアソリューションアーキテクトを経て、2015年12月から日本マイクロソフトのクラウドソリューションアーキテクト。2012年/2013年/2014年/2015年にMVP Award Program Microsoft Azure受賞。