LambdaのJavaは遅い?初期のコード読み込みは遅いけど再利用されれば実運用にも耐えうる性能です

過日、AWSのLambdaをWebシステムで利用することになり実行するコードがJavaとなった。エンジニアが得意な言語がJavaだったのでJavaを採用した(せざるおえなかった)WebのナレッジにはJavaは処理が遅いという方が多く、本稼動前から心配していた。

結果から申しますと「案外早いよ」

でもJavaでは?

確かにしばらくリクエストがない場合は初期のコード読み込みも含め処理完了まで7秒程度の時間を要する場合もあるが、次処理は0.5秒程度で処理が完了する 0.5秒が遅いと言われるかもしれませんが、今回導入したシステム的に言えば要件を満たす時間です。


話が変わりますが、ELBもスパークアクセスには弱く事前にアクセスが増えると予想される場合はプレウォーミングしたりスケーリングさせたりする必要があるらしいのですがLambdaも同じように数分間隔でファンクションを自動実行するような仕組みを導入しておけば初期のコード読み込みで遅くなる事を解消することは出来ないまでも少なくすることは可能だと思います。
なので、LambdaのコードにJAVAを採用しても問題ないと思いますが、要件的にOKなら

サーバレス」を実際にシステム導入してみると本当に便利だなぁと思う。デメリットもあるけど、それ以上のメリットがある。

マネージドサービスなので管理 運用 や障害があればAWSさんが対応してくれるから、コードをアップしたら勝手に動く。当たり前だけどエラー処理して処理の途中で止まらないようにするループが起きないようにするを心がければ、システムに関わる者から言わせれば「エックスカリバー」的な武器を手にしたような気になる。ただ会心の一撃は出ない。ベースライン付近を行ったり来たりの性能である事は言うまでもありません。

で、また次プロジェクトでLambdaを利用して、サーバレスで組んでみたいと考えているのである。

タイトルとURLをコピーしました