「Cloudflare Meet-up Tokyo Vol.6」に参加してきました

Rails vs Node.js 戦争・最終章「Prisma

Rails vs Node.js

  • 2010年
    • ES3
    • 遅い
    • 片手間jQueryのための言語
    • イケてる会社はRails
    • Nodeは枯れてなくて使われない
    • モノリスな環境ではNodeは使われずRails
  • Nodeのチェックポイント
    • 2012年:TS
    • 2013年:React
      • Reactを動かすためのツールチェイン
    • 2016年:Next
    • 2023年:RSC

Next視点のRails

  • Rails Guideの完成度がすごい
    • Webフレームワークを理解できる
    • RESTの思想でいろんなものを理解できる
  • RailsはDBが起点
  • Nextはルーティングが起点
  • REST APIを相手にするとN+1が頻発する
    • 複合的なViewのためのエンドポイントを毎回作ってられない
    • GraphQLの登場
  • UI最適しようとするとCQRSで叩きたい
  • Railsでは複雑なUIを作ることを想定してなさそう
  • Railsから見るとNextの学習コストはものすごく高い
    • 疎結合で小さなライブラリを組み合わせる文化

Prisma

  • NodeがRailsと同じ土俵に立つにはORMは必要
  • インラインのSQLは危険
  • TypedSQL
    • insertを元に型作れるとか
  • 枯れきっていない
  • 生成されるSQLの品質
  • RSC+PrismaででフルスタックTSでいける
    • CQRSするのに相性がいい
  • RSCとGraphQLは被ってるので長い目で見ると共存しなさそう
    • モバイル向けという意味でGraphQLの価値はある

Zenn のCDNとWAFを Cloudflare へ載せ替えた手順とトラフィック制限ルールの例

  • Classmethod 和田祐介さん

Cloudflareの導入

  • NextとRails
  • インフラはGoogleCloud
    • WAFもCDN
    • →ここをcloudflareで
  • 移行前の課題感
    • DDoSが不定期で来ていた
    • Cloud Armorでは期待するほど検知できなかった
    • 手動でIPごとのアクセス集計してブロックしていた
      • 深夜や休日は厳しい
    • スケールはさせるもののユーザからみると遅くなってしまっていた
  • Cloudflareの導入
    • 導入コストが低い
    • DDoSの機能はProプラン
    • DDoS検知の機能とIP単位で指定のリクエスト超えたらブロックする機能も入れてる
  • 副次効果でCloud CDNからのCDNも移行したら利用費が下がった
  • いろんなセキュリティ機能もある
    • htmlにメールアドレスが含まれていたら書き換える機能とかも

BirthdayWeek re:Cap + Zaraz

  • Cloudflare japan 亀田治伸さん

Cloudflareの新機能

  • ATO(Account takeover detection)
    • 漏洩してるID/パスワードだと検知できる
    • 無償でも使えるように鳴った
  • API Schema Validation
    • 許可されてないメソッドやパラメータをブロックする機能
    • 無償でも使えるように鳴った
    • 有償ではレスポンスの内容チェックもできる
  • JS Script Monitoring
    • ブラウザで実行されるJSのチェック機能
      • マルウェア検知
      • OSSが汚染された時の検知とかで
      • サンプリングして検知結果を通知するだけ
    • 無償でも使えるように鳴った
    • 有償版では全量検知やブロックも
  • Turnstile with Google Firebase
    • CAPTCHAの代替サービス
    • ロゴを置けば無償で使える
  • AI Audit
    • 生成AI用のデータ収集ボットからコンテンツを守る
    • 著作権コンテンツなど
  • CDN cache/Instant Purge
    • パージがはやくなった
  • Speed Brain
    • 過去データを元にした独自のルールでアセットを先読みする機能
    • Speculation Rules APIを使ってる
    • LCPの改善につながってる
    • CDNキャッシュされたものだけに適用
      • オリジンに負荷かけないように
  • SQL Lite in kyDurable Object
    • Durable Object
      • ずっと起動しっぱなしのサーバーレス基盤
      • メモリが保持される
  • Workers Persistent logs
    • エッジでのトレース情報などがとれるようになった
  • Hyperdrive Private Access
    • エッジからDBへのコネクションプールや実行結果を保持してくれる
    • 今はpostgresだけ
    • mysqlは開発中

ShopifyとCloudflareで始める爆速ECサイト構築

  • Shopify Japan 岡村純一さん