3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Lambda MicroVMsを試す

3
Posted at

AWS Lambda MicroVMs

  • AIエージェントの文脈で、isolatedでありながらステートを長い期間保持したい、というニーズに応えるものとして紹介されているように読める
  • HTTPをしゃべるコンテナイメージが動かせるようなものとして読める
  • pricingを読むとインスタンス時間による課金に読める(リクエスト数はなし?)

AWS Lambda is a serverless compute service that charges you only for what you use. Lambda Functions are priced per request and execution duration. Lambda MicroVMs are priced per instance-second.

AWS MicroVMsを味見してみよう

マネジメントコンソールでLambdaを見ると、MicroVMsというのが追加されている

Screenshot 2026-06-23 at 8.40.48.png

「MicroVM イメージ」を作り、MicroVMを実行するということらしい。

MicroVM イメージを作成する

MicroVM イメージは、インスタンスタイプなどを指定して作るのだが、「Dockerfileを含むzipファイル」をS3に置いておくことが必要。

Screenshot 2026-06-23 at 8.42.21.png

今回は筆者がメンテしているタイルサーバーのコンテナイメージをベースとしたDockerfileをzip化して配置しておく。

Screenshot 2026-06-23 at 8.49.40.png

なお、UIがバグっているのか、環境変数を設定していると、「ライフサイクルフックがどうたら」というエラーが出てイメージの作成が失敗してしまった(なので環境変数は使わないことにした

すると作成中…となる。コンテナイメージをビルドしているのだろうか?1,2分待つと「作成済み」となった。

Screenshot 2026-06-23 at 8.55.01.png

MicroVMを実行する

Screenshot 2026-06-23 at 8.58.10.png

今回は全部デフォルトとするが、実行時間はさておき、アイドル期間を設定できるようになったことが従来のLambdaと大きく違う点と言えるかもしれない。

疎通確認

パブリックアクセスを許可できる設定はなさそうで、ドキュメントによれば以下のように認証ヘッダーを追加する必要がある。認証トークンはUIから吐ける。

curl 'https://<microvm-endpoint>' \
  -H 'X-aws-proxy-auth: <TOKEN>' \
  -H 'X-aws-proxy-port: 8080'

chiitilerは3000番ポートを利用していて、/debugでデバッグページを返却するので:

curl 'https://<uuid>.lambda-microvm.ap-northeast-1.on.aws/debug' \
   -H 'X-aws-proxy-auth: <suppressed>' \
   -H 'X-aws-proxy-port: 3000'

とすると

<!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>MapLibre GL JS</title>
            <!-- maplibre gl js-->
            <script src="https://unpkg.com/maplibre-gl@^4.0/dist/maplibre-gl.js"></script>
            <link
                rel="stylesheet"
                href="https://unpkg.com/maplibre-gl@^4.0/dist/maplibre-gl.css"
            />
以下略

というレスポンスが得られる。200ms前後のレスポンスタイムだった。

chiitilerは本来、地図画像をレンダリングするサーバーなのでそのエンドポイントも試したが、そこは正常に動作しなかった。本筋ではないので掘り下げないが、おそらくエラーを起こしていて、そうなるとVM自体が勝手に終了してしまった。

終わりに

これまでもLambda Web Adapterを利用することで、HTTPをしゃべるコンテナならLambda基盤で動かせたが、今回のMicroVMsはLWAなしに好きなコンテナを動かせるもので、サーバーレスなコンテナ環境の選択肢となるポテンシャルを感じました。ただし以下の点でまだ実践投入は憚られるかんじです

  • 認証方法が、一時アクセストークンをヘッダに載せるものしか提供されていなさそう
  • zipファイルじゃなくてECRなどのコンテナイメージからVMを起動したい
  • エラー時?にVMが終了してしまうのは厳しい

AIエージェントのための何か、というよりはLambdaより揮発性が低いコンテナ環境と捉えたら楽しそうなので、その方向に強化されることを期待します。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?