#chiroito ’s blog

Java を中心とした趣味の技術について

Hot Function でファンクションのレスポンス時間を短縮 @ Fn

リクエストを処理するために新たなコンテナを作成し、処理終了後にはそのコンテナを停止します。これをリクエストのたびに繰り返します。

コンテナの作成処理は非常に時間が掛かるため、レスポンス時間がとても長くなってしまいます。また、コンテナの作成処理や終了処理に CPU などのリソースを使うため、無駄なリソースが消費されます。

Hot Function という機能を使うことで、一定期間コンテナを再利用します。これにより、一定期間の間に同一のファンクションへリクエストがあると、前回と同じコンテナがリクエストを処理します。これにより、コンテナの作成処理や停止処理の回数が減少するため、レスポンス時間の短縮や、無駄なリソースの消費を抑えられます。

私の環境では、ノートパソコン上に VirtualBox で Linux として Docker Host を実行しています。その環境下でも、Hot Function を使わない場合はレスポンス時間が 2000~3000ms 程度かかりましたが、Hot Function を使うと 40~50ms になりました。

続きを読む

AWS Lambda のファンクションを Fn へ変換する

Fn Project では AWS 社が提供する Lambda からファンクションをインポートできます。今回の例では、Lambda でファンクションを作成する際に記載されているコードを FnProject のファンクションへ変換します。 f:id:chiroito:20171014123039p:plain

インポートにはARR・AWSのリージョンが必要です。ARN はAWSのコンソールから確認できます。

Lambdaのインポート

AWS Lambda をファンクションとしてインポートするにはfn lambda aws-importコマンドを実行します。コマンドの引数はARN、リージョン、Dockerイメージ名を指定します。

続きを読む