はじめに
先日開催されたAWS re:Invent 2024では数多くのサービスアップデートや新サービスが発表されました。Aurora DSQLの発表は特に注目されたサービス発表の一つではないでしょうか。
本記事では、新サービスAmazon Aurora DSQLについてハンズオンでの使用感含めてご紹介します。
Aurora DSQLについて
Amazon Auroraは、高パフォーマンスなリレーショナルデータベースサービスであり、MySQLおよびPostgreSQL互換のエンジンを提供しています。この度、Aurora DSQLが新たに発表されプレビュー版として提供が開始されました。
Aurora DSQLには以下のような特徴があります。
スケーラビリティ
Aurora DSQLはスケールアップとスケールダウンの両方に対応しています。読み取り操作と書き込み操作を分離し、個別にスケール可能なアーキテクチャが採用されています。1日数件から毎秒数百万件以上まで、あらゆる規模のアプリケーションに適したスケーラビリティが特徴的です。ストレージ層は分散ストレージを使用しており、ダウンタイムを伴わずに自動的に拡張します。
サーバレス構成
サーバレスで運用できるため、サーバレベルでのインフラ管理の必要がありません。Aurora DSQLの設計思想として、アプリケーションエンジニアがスケーラブルなデータベースを簡単に用意するといったユースケースを想定されているそうです。そのような背景から、クラスターの作成は設定が少なくとても簡単で、インフラ管理も自動化されており、パッチ適用やフェイルオーバ管理なども必要ありません。
最大 99.999%のマルチリージョン可用性を実現
マルチリージョンのActive/Active構成により99.999%の可用性を実現します。シングルリージョン構成でも構築可能で、書き込みトランザクションを分散トランザクションログにコミットして3AZに同期されます。
マルチリージョン構成の場合は、次の図のように、データをレプリケーションするためのリージョンと、障害時の可用性を担保するためのウィットネスリージョンの計3リージョン構成になります。
ウィットネスリージョン自体はデータを保持せず、分散合意アルゴリズムにおける合意の役割を担います。また、ウィットネスリージョンでは、クラスターや関連するエンドポイントは作成されません。暗号化されたトランザクションログを限られた期間分を保存します。
PostgreSQL互換
Aurora DSQLはPostgreSQL互換です。PostgreSQLクラアントやORMをそのまま利用可能で、データベースへの接続はPostgreSQLの通常のドライバーで接続できます。 ただし、認証はパスワード認証ではなく、AWS CLIなどを利用し生成できる一時的なIAM認証トークンです。
2024年12月時点ではPostgreSQLとは異なる部分が多く、非対応の機能や制約があります。詳細は下記をご確認ください。
楽観的同時実行制御
多くのリレーショナルデータベースでは、悲観的同時実行制御(PCC:Pessimistic Concurrency Control)と呼ばれる手法が主流ですが、Aurora DSQLはデフォルトで楽観的同時実行制御(OCC:Optimistic Concurrency Control)が採用されています。楽観的同時実行制御(OCC)は、トランザクションがデータをロックせずに処理を行い、最終的にコミットする前に他のトランザクションとの競合がないかを確認します。このアプローチでは、同時実行性が高い環境で競合が少ない場合に効率的に動作し、ロックの管理にかかるオーバーヘッドを削減できます。