以下の内容はhttps://onk.hatenablog.jp/entry/2026/02/28/141259より取得しました。


Amazon Aurora DSQL を個人サービスのデータストアとして使う

データストアというかインフラ費が安くないと継続運用できないので、色んな (とはいえある程度メンテコストの低い) データストアを試しています。以前は SQLite3 + Litestream + S3 を試していました。

Aurora DSQL とは

PostgreSQL 互換の分散 DB です。マルチリージョンでのアクティブ・アクティブ構成ができる自動シャーディングされるデータストアで、イメージとしては Spanner みたいなヤツですね。

PostgreSQL との違い

公式ドキュメント に書いている以上にたくさん違います。(私が見ていた頃 (半年ぐらい前) からドキュメントだいぶ増量されている!)

書いてあるものとして

  • postgres database しか使えない
  • TRUNCATE が無い
    • DELETE FROMDROP TABLE を使え
  • 外部キー制約無い
  • Sequences が無い
  • CREATE INDEX が無い
    • CREATE INDEX ASYNC がある
  • 3,000行ずつ制限がある
    • A transaction can modify up to 3,000 rows, regardless of the number of secondary indexes

    • The 3,000-row limit applies to all DML statements (INSERT, UPDATE, DELETE)

他にも ALTER TABLE は制限がキツくて色々動かない。

  • ERROR: unsupported ALTER TABLE ALTER COLUMN ... DROP NOT NULL statement
    • NOT NULL 制約を後から外そうとしたらエラーになった
  • ERROR: unsupported ALTER TABLE DROP COLUMN statement
    • DROP COLUMN できない!!

ので、新しいスキーマでテーブルを作って、データを移して、RENAME TABLE するのがデフォルトかなーって所感です。

データを移そうとしたらこれもまた制限に引っかかったので、試行錯誤するのには本当に向いていないなと思います。オペレーションは慣れたら行けそうとも思う。実際そんなに困ってない。

  • 3000行制限: ERROR: transaction row limit exceeded
  • 10MB 制限: ERROR: transaction size limit 10mb exceeded

DSQL の先人としては以下のブログがありそうです。

ActiveRecord から扱う

幾つか違いはあるものの概ね postgres なので postgresql_adapter を拡張します。

特に困るものとしては

  • 接続時に IAM 認証が必須
  • DDL で CREATE INDEX が無くて CREATE INDEX ASYNC である
  • PK が……?

で、軽く探したらあったのでありがたく使わせて貰っています。

特に primary_keys は自分で対応を思いつけなかったので助かりました。

あと公式のサンプル。

面倒なのになんで使うの?

異常に安い。

まず無料枠がある。

https://aws.amazon.com/rds/aurora/dsql/pricing/#Free_tier

Each month, your first 100,000 DPUs and 1 GB of storage are free and automatically applied to your monthly bill.

DPU は多少しっかり使うと (毎時データをゴリッと読み書きするような Job 動かすとか) お金が掛かりますが、そうでないリクエスト数の少ないサービスなら無料なんじゃないか。

そして従量課金です。

私は普段は 無料〜$0.1 で、割とゴリゴリと使った月でも $5 とかで暮らしています。RDS や Aurora で postgres を立てるとこうはいかないので、少ないリクエストで動いている限りは従量課金は最高。

分散 DB の良いところ (マルチマスタを実現する技術) はまったく気にしていなくて 1 node として使っている目的外利用だろうから、今後どこかで値段が上がってウワーってなる気はしている。

まとめ

  • 安い DB を探していて Aurora DSQL に辿り着きました
  • 分散 DB なので高いかと思ったら逆に従量課金で安い
  • 幾つか非互換や制限はあるものの、まぁ乗りこなせる範囲じゃないか
  • 実際に私は運用できています



以上の内容はhttps://onk.hatenablog.jp/entry/2026/02/28/141259より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14