こんにちは、SCSK の松山です。
2024/12/2~12/6 米国ラスベガスで開催された AWS 最大のカンファレンス re:Invent 2024 にて Amazon Aurora DSQL (以下 DSQL と略す) が発表されました。
DSQL は PostgreSQL と一部互換性を持っていると発表されています。
この点から従来の PostgreSQL との差異に焦点をあてて DSQL について調べてみました。
その結果を数回にわけてまとめていきたいと思います。
第一弾として、本件では DSQL の構築 についてまとめていきます。
※本件は 2025/2 時点の検証結果をもとに記載しています。
今後動作が変更される可能性がある旨、ご注意ください。
前提:DSQL とは
DSQL の構築を行う前に、まずは re:Invent 2024 で発表された DSQL の説明をまとめてみました。
DSQL の特徴
- 高い可用性を備えたサーバレスな分散SQLデータベース
- 障害復旧の自動化
- 事実上無制限のスケーラビリティ
- インフラ管理(パッチ適用など) が不要
- PostgreSQL と一部機能の互換性がある
Amazon RDS や Amazon Aurora においても、通常の Database 構築と比べて簡易化されていますが、DSQL ではさらに管理面を含めて自動化されています。
サーバーレスのため、DBインスタンスのエンジン選択や Database のパラメータ設定などがありません。
本来大きなコストを要する Database の設計、メンテナンス、障害復旧が自動化されている点が大きなメリットと言えるでしょう。
考慮が必要な点
- PostgreSQL と完全な互換性を保証するものではない
- 従来の PostgreSQL とはトランザクションの同時実行性管理方法が異なる
- 1トランザクションで更新可能な件数や実行時間に制限がある
PostgreSQL と互換性はありますが、アーキテクチャに違いがあるため、この点は十分に考慮が必要です。
また従来の PostgreSQL は基本的に単一インスタンスでの動作を前提としていますが、 DSQL は分散SQLデータベースです。
そのため、パフォーマンスを引き出すためには、従来の PostgreSQL とは異なるオブジェクト設計を検討する必要があります。
DSQL を構築する
※2025/3 現在、DSQL はプレビュー版のみ公開されています。
プレビュー版に対応しているリージョンは、バージニア または オハイオ のみです。
- AWS コンソールにログイン
- 「DSQL」で検索し、 「Amazon Aurora DSQL」のページへ移動
- バージニア または オハイオ リージョンを選択
東京リージョンで DSQL のページへ移動した場合リージョン変更を求められるため、バージニア または オハイオを選択します。
- 「Create cluster」をクリック
- 初期設定後、「Create cluster」をクリックし DSQL を構築
設定項目はマルチリージョンの有無とタグ設定のみです。
- 状態確認
マルチリージョンで構築した場合、バージニアとオハイオ それぞれに DSQL が構築されます。
双方のクラスタ状態について以下の方法で確認します。 - 接続確認
対象リージョンの AWS CloudShell から簡易接続テストを行います。- AWS CloudShell を表示
画面上部の CloudShell アイコンをクリックし、CloudShell 画面を表示します。
- DSQL の「Connect」をクリックし、エンドポイントをコピー
- AWS CloudShell から psql 接続 (パスワード入力前まで進める)
psql のオプションには以下を指定します。–dbname postgres –username admin –host Ⅱでコピーしたエンドポイント - DSQL の「Connect」をクリックし、パスワードをコピー
- AWS CloudShellにパスワードを入力
※PostgreSQL バージョンの関係で WARNING が出力されていますが、DSQL 環境に接続出来ている状態です。
- 同様の確認をマルチリージョン先でも実施 (手順は省略)
- AWS CloudShell を表示
なお本件では AWS CloudShell から簡易検証していますが、プログラムから接続することも可能です。
各プログラムから接続を行うサンプルコードは以下マニュアルに記載されています (本件では詳細は割愛します)
Programming with Aurora DSQL
以上で DSQL の構築は完了です。
まとめ
設定項目はマルチリージョンの有無のみであることがわかりました。
Database に対するスキルがない状態でも、非常に簡単に構築できる点にメリットを感じました。
プレビュー版を使用できる機会に触れてみるのはいかがでしょうか。
次回以降のシリーズでは、PostgreSQL と比較した制限や、本件で構築した環境を使用してアーキテクチャの差異を深堀していきます。ご興味のある方は引き続きご確認いただければ幸いです。