Slide 1

Slide 1 text

Lambda とSQLite でシステム構築 おがどら

Slide 2

Slide 2 text

みなさん

Slide 3

Slide 3 text

RDS 、高すぎますよね

Slide 4

Slide 4 text

小規模のアプリケーションにRDS はオーバースペ ックすぎる

Slide 5

Slide 5 text

そこで、EFS とSQLite を使ってお安くアプリを作 成したので、ご紹介します こちらは2024 年4 月に作成しました

Slide 6

Slide 6 text

背景 Next.js + Prisma のアプリケーションを作って みた ECS もRDS も 高 す ぎ る 社内システムなので、可用性とかスペック とかいらない EC2 すら高い でもDocker もRDB も使いたい

Slide 7

Slide 7 text

結論

Slide 8

Slide 8 text

コストカットのための構成 RDS -> EFS 上のSQLite ECS -> VPC Lambda ALB -> API Gateway

Slide 9

Slide 9 text

RDS -> SQLite on EFS PostgreSQL にしかない機能を SQLite 向けに 変更 概ねPrisma ORM がいい感じにしてくれる

Slide 10

Slide 10 text

Lambda から EFS にアクセス VPC Lambda として作成する EFS マウントターゲットを同一AZ に作成する

Slide 11

Slide 11 text

ECS -> Lambda Dockerfile にこの1 行を追加するだけ 👇🏻👇🏻 ( 紙面の都合上改行しています) COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.9.0 \ /lambda-adapter /opt/extensions/lambda-adapter

Slide 12

Slide 12 text

VPC Lambda はWAN に出られない ENI にEIP を割り当てる必要ががある aws ec2 associate-address \ --allocation-id $allocationId \ --network-interface-id $nicId

Slide 13

Slide 13 text

コスト削減効果 ECS / RDS を使うときに比べて90% 削減 月額 50 ドル → 4 ドル 移行前) ELB 18 ドル + RDS 21 ドル + ECS 11 ドル 移行後) EIP 3.6 ドル + EFS 0.4 ドル

Slide 14

Slide 14 text

この構成のメリット Docker の用意の手間が少ない 開発環境との差分が1 行 SQLite が使える Prisma のデフォルトDB はSQLite 初期セットアップの手間が少ない 意外と安定している 半年以上運用しているが、障害はない

Slide 15

Slide 15 text

この構成のデメリット インフラ用意はちょっと大変 個人開発にはオススメ 同時にSQLite に書き込むとSQLite が壊れる? NFS 上のファイルには書き込みロックがか からないため 書き込みがほぼないため無問題

Slide 16

Slide 16 text

まとめ 安いアーキテクチャを考えるのは楽しい!

Slide 17

Slide 17 text

ご清聴ありがとうございました Twitter: GitHub: @const_myself ogadra made by reveal.js