Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hono × AWS Lambda で実現するサーバーレスDX / Serverless DX...

Hono × AWS Lambda で実現するサーバーレスDX / Serverless DX with Hono and AWS Lambda

JAWS-UGおおいた 新年LT大会 && o11yワークショップ(2026-02-07)での発表資料です。

Hono は日本発の超軽量Webフレームワークで、バンドルサイズはわずか12KB、ゼロ依存です。handle(app) の1行で AWS Lambda ハンドラーに変換でき、Lambdalith パターンで全ルーティングを1つの Lambda にまとめられます。@hono/zod-openapi でスキーマ定義がそのまま OpenAPI 定義になり、Hono RPC で型がクライアントまで素通しになります。ローカル開発も @hono/node-server で同じ Hono インスタンスのまま動かせるので、開発と本番を両立できます。

Avatar for shiro seike

shiro seike PRO

February 07, 2026

More Decks by shiro seike

Other Decks in Programming

Transcript

  1. OSEKKAI × TECHNOLOGY Hono × AWS Lambda で実現す るサーバーレスDX JAWS-UGおおいた

    新年LT大会&&o11yワークショップ 2026.02.07 Fusic Co.,Ltd. 清家 史郎 (@seike460)
  2. 自己紹介 OSEKKAI × TECHNOLOG Y 清家 史郎 (@seike460) SHIRO SEIKE

    Principal Engineer / Evangelist ・AWS Community Builder (Serverless) — コミュニティ ・JAWS-UG 福岡 運営 2 ©Fusic Co., Ltd.
  3. handle(app) — たった1行でLambda対応 Lambdalithパターンで全ルーティングを1つのLambdaに import { handle } from 'hono/aws-lambda'

    import { OpenAPIHono } from '@hono/zod-openapi' const app = new OpenAPIHono() .route('/menu', menuRoutes) .route('/categories', categoryRoutes) たった 行で ハンドラーに変換! // 1 Lambda export const handler = handle(app) Lambdalith: 1つのLambdaで全エンドポイントを処理 ローカル開発も 同じHonoインスタンス で動作 コールドスタートは 1回だけ 4 ©Fusic Co., Ltd.
  4. CDKデプロイ × ローカル開発 同じコードで本番もローカルも // CDK Stack const fn =

    new NodejsFunction(this, 'Api', { entry: 'src/index.ts', }) const api = new HttpApi(this, 'HttpApi') api.addRoutes({ path: '/{proxy+}', integration: new HttpLambdaIntegration('I', fn), }) // Local dev - same app! // npx tsx watch src/dev.ts import { serve } from '@hono/node-server' serve(app) // same Hono instance CDK: NodejsFunction でesbuild自動バンドル ローカル: @hono/node-server で即座に起動 コード変更なしで 両環境で動作 5 ©Fusic Co., Ltd.
  5. エンドツーエンドの型安全 Zod + OpenAPI + Hono RPC @hono/zod-openapi: スキーマ定義 =

    OpenAPI定義 OpenAPIドキュメントが 自動生成 フロントエンドから 型安全にAPI呼び出し import { hc } from 'hono/client' import type { AppType } from '@backend' const client = hc<AppType>(API_URL) 戻り値の型が自動推論される! // const res = await client.menu.me.$get() const data = await res.json() // MyMenuData 型 6 ©Fusic Co., Ltd.
  6. まとめ: 今日からHonoを試そう Hono × Lambda が実現する4つのDX handle(app) 1行 でサーバーレス化 CDK

    × @hono/node-server で開発と本番を両立 Zod + OpenAPI でスキーマ定義が一石二鳥 Hono RPC でフロントも型安全 始め方はシンプル: npm create hono@latest 7 ©Fusic Co., Ltd.