omuronの備忘録

個人的な備忘録

クラスメソッド主催の「サーバーレスLT大会 in 肥後橋」 #サーバーレスLT大会 に参加しました

classmethod.connpass.com

3年振りぐらいにクラスメソッドのオフラインイベントに参加してきました!
クラスメソッドの中の人に久しぶりに会えたり、オンラインでしか会えてなかった人に会えたりとても楽しいイベントでした。

オープニング

おにぎりやお茶、これ以外にもパンやビールまで置いてある!
仕事が終わってお腹が空いた状況ですばらしくありがたいですね!
ビールはセッションが終わるまで我慢しました。

セッション

サーバーレスRDBの選択肢

CM 西田さん

  • サーバーレスの DB といえば
    • Lambda + DynamoDB
      • o : フルマネージド
      • x : 柔軟な検索難しい、トランザクションが弱い
        • DDB Stream で OpenSearch に転送して受難な検索処理を行うとか対応が複雑になる
    • Lambda + VPC + RDS
      • o : 柔軟な検索
      • x : VPC 必要、RDBの運用がいる
  • サーバーレス RDB
    • フルマネージド、RDB の柔軟な検索、便利機能あり
    • 対象サービス
      • Supabase
        • Firebase の置き換えを狙ってる BaaS
        • PostgreSQL が使える
        • Front から SQL 実行可能
        • RLS(Row Level Security) 対応なので自分のデータのみ処理できる制限ができる
      • PlanetScale
        • MySQL 互換のサーバーレス DB
        • Vitess ベース
        • シャーディング対応、ノンブロッキングスキーマ変更、コネクション無制限
        • ブランチ機能あり、スキーマに対してブランチ切って開発できる
    • Lambda や Vercel, Cloudflare のバックエンドの DB として使える

SnapStartの未来についての期待と妄想

CM 岩田さん

  • SnapStart 概要
    • Lambda のコールドスタートを改善
      • Init 処理後の Lambda の状態をスナップショットする
      • Restore が代わりに入って、その後に Invoke になるので早い
    • ランタイムフック
      • beforeCheckpoint
      • afterRestore
        • DB の情報を SM からとったりとか
    • Provisioned Concurrency との違い
      • Provisioned Concurrency はコールドスタートを発生させない技術
    • ランタイムは Java11 のみ
  • SnapStart 機能
    • Firecracker が Lambda の基盤で、Firecracker の SnapShot 機能を使って microVM を保存している
    • Full と差分で VM を保存していく
    • S3 にキャッシュが保存されている
      • チャンク単位で分割して高速化している
        • /tmp は起動時にいらないから分けるなどなど

サーバーレスキャッシュをMomentoで実現する

Momento サープさん

  • Momento 概要
    • サーバーレスのキャッシュサービス
      • Elasticache と似たサービスだがサーバーレスで実現
    • Java や Go, Rust などの SDK を準備
    • 5行程度のコードで動作
    • DynamoDB や S3 のキャッシュとして活用するなど
    • 50GB/月 無料、データ送受信 $0.15/GB
  • サーバーレスの大原則を実現
    • プロビジョン不要、管理不要
    • 最低料金なし
    • API で呼び出し可能
    • 計画停止無し
    • インスタンス無し

サーバーレス環境でKongをフル活用

Kong 山本さん

  • Kong
    • 世界で最も採用されているオープンソースAPI ゲートウェイ
    • API 管理、トラフィック制御、セキュリティなどのマイクロサービスベースのアプリケーションを構築/管理/拡張を支援する
    • Kong 経由で Lambda や Azure Functions などさまざまな API の前段における
    • プロキシ、ルーティング、ロードバランシング、ヘルスチェック、認証などの機能

ゲーム開発とサーバレス

カプコン 筑紫さん

  • 運営系ゲームだとスパイクがよくある
    • ガチャメンテ後にスパイク
      • 手動で暖気が必要だが予測つく
        • 全自動できないのは辛い
    • どこかで取り上げられる
      • EKS が追いつかずエラーや DB のレコード増大で性能劣化が発生したり
    • スケールアウトも上限がある
    • DB の水平分散は後でするのは大変
  • サーバーレスだと費用がかかる場合がある
    • Lambda + DynamoDB 使いたいが ALB + Fargate + Redis で自分で分散など
      • Redis はサーバーレスがないので辛い
  • 無限で高速でリーズナブルな DB が出てほしい
    • 外部 SaaS で解決するケースも...

所感

いやーオフライン素晴らしいですね。
久しぶりのクラスメソッドさんのオフィスで中の人達に会えて交流できてとても楽しかったイベントでした。
会いたかった中の人にもついに会えたしとても満足度の高いイベントでした。
懇親会も久しぶりでしたね。やっぱり勉強会は懇親会からが本番です。

Momento の話を聞いて、たしかに ElastiCache はサーバーレス版が無いなと...
サードパーティSaaS を使うのはハードルが高い状況ですが、キャッシュサーバーは落ちても困らない実装を考えがちなので、そこまでは困ってはいないかな。
そのうち AWS が実装しそうな気もしますがどうなんでしょうか?

Kong については、複数の SaaS を使ってない現状だと、使うメリットは今のところ少ない気もしました。

どちらも、必要な人には刺さるサービスだと思いますが、AWS 以外の SaaS を使うのって結構ハードルが高いので、メリット・デメリットを考えて検討していきたいと思いました。