サーバーレスアーキテクチャーは、サーバーありのシステムと異なる特徴がいくつもある。システムを構築する際にも、サーバーありのシステムとは別の注意点がある。主なものを四つ示そう。(1)同時実行数に制限がある、(2)実行時間に制限がある、(3)コードが実行されないことがある、(4)監視できる範囲が限られる、である(図6)。構築時には、これらの落とし穴にはまらないようにしたい。

図6●サーバーレスアーキテクチャーの主な注意点
[画像のクリックで拡大表示]

同時実行数や実行時間に注意

 (1)は、1秒間に実行できる関数の合計に対する上限のこと。関数単位ではなく、アカウント単位で設定される。上限を超過すると、関数呼び出し時にエラーが発生したり、他の関数の実行が終了するまで待たされて処理性能が劣化したりする。

 AWS Lambdaの場合は、ユーザーが制限緩和を申請すると同時実行数を増やせるときがある。ただし、必ず認められるわけではない。

 対策の一例は、クラウドストレージの活用だ。静的データに対するリクエストは、静的データのWebサーバーとしても機能するクラウドストレージ「Amazon S3(Simple Storage Service)」で対処する。これによって、AWS Lambdaの実行回数を減らせる。

 (2)の実行時間の制限は、AWS Lambdaであれば5分以内と決まっている。大量の処理をしたいときには要注意だ。例えば、S3に蓄積したデータの大量コピーなどは時間がかかる。MBS動画イズム444のサイトでも、データを格納するS3のバックアップを取るために課題となった。

 対策として、AWS Lambdaでの処理を分けて並列度を高めた。マスターのAWS Lambdaでコピー対象を決めた後に、その数に応じてワーカーのAWS Lambdaでコピーを並列実行する。

ここからは会員の登録が必要です。