2月6日(木)に開催された、「JAWS-UG Osaka 『知ってると役立つ、AWSちょいテク祭り』」に参加して来ました。弊社のエンジニアとしてLT枠で登壇しましたので、スライドを公開します。
イベントのページはこちら
ごめんやっぱり早いよSNS/SQS
Quarkus を用いて Java ランタイムの Lambda コールドスタートによる遅延を解決したかった
上記発表に関して、Twitter 上で下記のようなご質問をいただきました。
JavaだとProvisioned Concurrencyじゃダメなんです??
— 堀江優仁/yuji horie/ゆーじ (@Yuwji) February 6, 2020
#jawsugosaka
Twitter でも回答しましたが、ここでも一応… ご指摘のあったサービスは、ブログ記事でもちらっと紹介してますが、昨年12月に紹介された。新しいサービスです(クラスメソッドさんの紹介記事)。たしかに、これを使えば(追加料金は要りますが)Java の初回起動の遅さはカバーできます。
しかしながら、Java ランタイムにはもう一つツラいポイントがあります。
初回起動の問題だけで言えばダメではないんですが、私が出くわした問題は、ライブラリをいろいろ使うと Fat Jar があっという間に 50MB を超えてしまってそもそもデプロイできない、です。工夫のしようがあるのかまで調べられてないですが…#jawsug #jawsugosaka
— ざきおかざき (@tsuchinoko0402) February 6, 2020
私も経験しましたが、AWS SDK のライブラリを使った瞬間に、デプロイしようとした jar が 200 MB ほどになってしまい、Lambda の上限である 50 MB を軽く超えてしまいました。 工夫して分割して回避する方法があるとは思いますが、まだそこまで研究できていません…
Quarkus でネイティブイメージにしたとき、コードサイズの大きさは小さくなったこともわかりました。ここにも、ネイティブイメージにコンパルするメリットは有るのではないかと思います。