Amazon Aurora DSQL について調べてみた (構築編)

こんにちは、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 はプレビュー版のみ公開されています。
 プレビュー版に対応しているリージョンは、バージニア または オハイオ のみです。

  1. AWS コンソールにログイン
      
  2. 「DSQL」で検索し、 「Amazon Aurora DSQL」のページへ移動

      
  3. バージニア または オハイオ リージョンを選択
    東京リージョンで DSQL のページへ移動した場合リージョン変更を求められるため、バージニア または オハイオを選択します。

      
  4. 「Create cluster」をクリック

      
  5. 初期設定後、「Create cluster」をクリックし DSQL を構築
    設定項目はマルチリージョンの有無とタグ設定のみです。 
                              

    1. 「Cluster settings」 でマルチリージョンの有無を設定
      マルチリージョン構成にする場合、「Add linked Regions」にチェックを入れます。 本件では以下を選択しています。                   

      Linked cluster Region us-east-2(Ohio)
      Witness Region us-west-2(Oregon)

      「Deletion protection」はデフォルトでチェックが入っているため、そのままの設定にします。

    2. 「Tags」に任意のタグを設定
    3. 「Create cluster」を実行
      Aurora DSQL のコンソールへ画面が推移します。
      「Status」が「Active」に変化したら、構築完了です。
        
      【構築中】

        
      【構築完了】
                        

       

  6. 状態確認
    マルチリージョンで構築した場合、バージニアとオハイオ それぞれに DSQL が構築されます。
    双方のクラスタ状態について以下の方法で確認します。                              

    1. 構築元(今回の場合バージニア) :表示されている 「Cluster ID」 をクリック


         
    2. マルチリージョン先(今回の場合オハイオ):オハイオリージョンへ移動し、Aurora DSQL 画面を確認
      構築直後の場合は、メッセージに表示されている「us-east-2(Ohio)」のリンクから直接移動が可能です。  

                          

      上記のメッセージを消している場合は、リージョン オハイオを選択し DSQL の画面へ移動し、対象DSQLの「Cluster ID」 を選択します。


        

  7. 接続確認
    対象リージョンの AWS CloudShell から簡易接続テストを行います。                              

    1. AWS CloudShell を表示
      画面上部の CloudShell アイコンをクリックし、CloudShell 画面を表示します。

        
    2. DSQL の「Connect」をクリックし、エンドポイントをコピー
                        


        

    3. AWS CloudShell から psql 接続 (パスワード入力前まで進める)
      psql のオプションには以下を指定します。  

      –dbname postgres
      –username   admin
      –host Ⅱでコピーしたエンドポイント


         

    4. DSQL の「Connect」をクリックし、パスワードをコピー
                        


        

    5. AWS CloudShellにパスワードを入力
      ※PostgreSQL バージョンの関係で WARNING が出力されていますが、DSQL 環境に接続出来ている状態です。

        
    6. 同様の確認をマルチリージョン先でも実施 (手順は省略)

なお本件では AWS CloudShell から簡易検証していますが、プログラムから接続することも可能です。
各プログラムから接続を行うサンプルコードは以下マニュアルに記載されています (本件では詳細は割愛します)
Programming with Aurora DSQL 

以上で DSQL の構築は完了です。

まとめ

設定項目はマルチリージョンの有無のみであることがわかりました。
Database に対するスキルがない状態でも、非常に簡単に構築できる点にメリットを感じました。

プレビュー版を使用できる機会に触れてみるのはいかがでしょうか。

次回以降のシリーズでは、PostgreSQL と比較した制限や、本件で構築した環境を使用してアーキテクチャの差異を深堀していきます。ご興味のある方は引き続きご確認いただければ幸いです。

タイトルとURLをコピーしました