3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

いつも記事を読んでいただきありがとうございます!
モブエンジニア(@mob-engineer)です!

AWS reinvent:2024のアップデートで注目を浴びたAmazon Aurora DSQLをまだ触っていなかったため、何ができるのかをキャッチアップするために触ってみました。

データベース初学者でもすっと読めるように、平易な表現で執筆しておりますので、お気軽に読んでいただければ幸いです。

Amazon Aurora DSQLは現在プレビューサービスとなります

目次

  • 想定読者層
  • Amazon Aurora DSQLとは
    • 概要
    • 楽観的同時実行制御
    • 利用可能リージョン
    • ユーザ向けドキュメント
  • コンソールでの設定画面
  • 所感
    • 良いところ
    • 改善したほうがいいところ
    • ビジネス視点での活用案

想定読者層

次のような興味関心を抱いている読者の方のお役に立てていただければ幸いです。

  • Amazon Aurora DSQLについてザクっと知りたい方
  • Amazon Aurora DSQLをコンソールで操作する方法を知りたい方
  • ビジネス視点で何ができるのか知りたい方

Amazon Aurora DSQLとは

概要

Amazonサービスをキャッチアップするポイントとして公式ブログを読むことがありますので、公式から発表されているブログを読んでみましょう。

公式ブログ

本日、私たちは常時利用可能なアプリケーションに最適な、最速のサーバーレス分散 SQL データベース「Amazon Aurora DSQL」をご紹介します。Aurora DSQL は、事実上無限のスケーラビリティ、最高の可用性、そしてインフラストラクチャ管理ゼロを提供します。ワークロードの需要に合わせて、データベースのシャーディングやインスタンスのアップグレードなしにスケーリングできます。革新的なアクティブ・アクティブの分散アーキテクチャにより、シングルリージョン構成で 99.99%、マルチリージョン構成で 99.999% の可用性を実現し、高可用性アプリケーションの構築に最適です。サーバーレスの設計により、パッチ適用、アップグレード、メンテナンスダウンタイムなどの運用負荷が不要になります。Aurora DSQL は PostgreSQL 互換であり、開発者は既知のリレーショナルデータベースの概念、ドライバー、ツール、フレームワークを使ってアプリケーションを迅速に構築・デプロイできます。

すごくざっくりいうと、高可用性とスケーラビリティを最大まで追求したPostgreSQL対応のSQLデータベースサービスかと思います。

Aurora DSQL は、3 つの AZ にまたがるアクティブ/アクティブの単一リージョン クラスターを提供し、レプリケーション ラグと従来のデータベース フェイルオーバー操作を最小限に抑えます。ハードウェアまたはインフラストラクチャに障害が発生した場合、手動介入なしでリクエストを正常なインフラストラクチャに自動的にルーティングします。

image.png

アーキテクチャ構成を見る限り、3つのアベイラビリティゾーンに所属しているストレージ間でデータを分散管理しているような構成のように見えますね。

マルチリージョン対応の場合の構成として以下のようなアーキテクチャ構成になるようです。

image.png

楽観的同時実行制御

そのうえで、Amazon Aurora DSQLを利用するうえで注意が必要な要素として楽観的同時実行制御があります。

楽観的同時実行制御に関して、公式ブログでも説明がなされていました。

公式ブログ

Aurora DSQL は楽観的同時実行制御を採用しています。これは、リレーショナルデータベースよりも非リレーショナルデータベースでよく使われる手法です。楽観的同時実行制御では、同じ行を更新しようとする他のトランザクションについてあまり考慮せずにトランザクションロジックを実行します。トランザクション完了時に、データベースへの変更をコミットしようとします。その際、Aurora DSQL は他の同時実行トランザクションからの書き込みが干渉していないかを確認します。干渉がなければトランザクションは正常にコミットされますが、干渉があった場合はデータベースがエラーを返します。このような場合、ユーザーは悲観的同時実行制御を使うデータベースと同様に、どのように処理を進めるかを決める必要があります。ほとんどのユースケースでは、トランザクションをリトライするのが最善のアプローチです。

image.png

すごくざっくりいえば、データベースの変更確定(=コミット)時に競合が発生したら、エラーを返す仕様にしているといったニュアンスかと思います。

開発業務でGitを利用している方であれば、コミット時のコンフリクトをイメージすればわかりやすいかと思います。

そのうえで、注意が必要なところとして、競合が発生したらエラーが返されるため、エラー時の挙動を定義する必要があるといったことがあります。

今までのデータベースであれば、Aさん・Bさんが同じ行への更新を行おうとしたときに、ロック機能を利用することで、処理の待機時間がかかるが処理競合を防ぐことができるといった考え方でデータ更新を行えます。

データベースのロックに関しては以下ブログが分かりやすいです

https://zenn.dev/gibjapan/articles/1d8dfb7520dabc

Amazon Aurora DSQLの場合は、処理競合が発生したら、即座にエラーを返してしまい、ユーザ側でアクションを行わないといつまでたってもデータが反映されないといった状況が発生します。

そのため、Amazon Aurora DSQLを導入する場合、処理競合が発生した場合の処理方針(リトライ実行など)を考える必要があるといったことを重視する必要があります。

利用可能リージョン

本サービスは、現在プレビュー期間のため以下リージョンでしか利用できません。

  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)

ユーザ向けドキュメント

ユーザ向けドキュメントに関してもある程度そろっているので、何から始めればいいのかよくわからないといった状況にはなりにくいかと思います。

スタートガイド

開発者向けガイド

APIリファレンス

APIリファレンスがそろっているのでCDKでの構築も可能な印象を持ちました。

コンソールでの設定画面

実際にコンソール上で触ってみないとわからないので触ってみたいと思います。

  • 検索ボックスにDSQLと入力し、検索結果内のAmazon Aurora DSQLを押下

image.png

米国東部 (バージニア北部)および米国東部 (オハイオ)以外のリージョンの場合、利用不可画面が表示されます。

image.png

  • クリック後、Amazon Aurora DSQLトップ画面が表示されるためcreate Clusterボタンを押下

image.png

  • クリック後、Amazon Aurora DSQL設定画面が表示されます
  • マルチリージョン構成で設定する場合は、Multi-Regionのチェックボックスを押下(今回はマルチリージョンを試してみるのでチェックを入れておく)

image.png

Multi-Regionにチェックを入れた場合、Linked cluster Region(レプリケーション用リージョン)とWitness Region(書き込み用リージョン)を設定することができます。
ただし、Linked cluster Regionは
Ohioのみ**、Witness RegionはOregonしか選択できません。

Linked cluster Region設定画面
image.png

Witness Region設定画面
image.png

  • Tagに関してはデフォルトで値が入っているため、Create Clusterボタンを押下

image.png

設定できるタグに関しては50個までのようですね。

  • 作成したDSQL用のクラスターが表示されています
  • StatusがCreateなのでしばらく待機します

image.png

補足ですが、クラスターに設定されたエンドポイント宛にpingを実行したら、ipv6アドレスが紐づいているようですね

C:\>ping taabtygyqp4nfpj5r63ieo4z54.dsql.us-east-1.on.aws

taabtygyqp4nfpj5r63ieo4z54.dsql.us-east-1.on.aws [2600:1f18:692c:303:31c4:3b43:ed6d:d04d]に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

2600:1f18:692c:303:31c4:3b43:ed6d:d04d の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

C:\>
  • 3分ほどでStatusがActiveになったのでCluster IDのリンクを押下

image.png

  • クリック後、作成したクラスターの設定画面が表示されます

image.png

スクリーンショット 2025-01-12 153937.png

image.png

image.png

  • Connectボタンを押下すれば、Amazon Aurora DSQL接続用のコマンドが表示されます

image.png

  • Amazon Aurora DSQLが立ち上がったのは確認できたので削除します
  • 上部のDeleteボタンを押下します

image.png

deletion protectionがOnになっていた場合、変更するように依頼するポップアップが表示されます。

image.png

Modifiボタン>deletion Protectionのチェックボックスを外す>Saveボタンを押下することでdeletion Protectionが無効化されます

image.png

  • 削除ポップアップが表示されるため、入力ボックスにconfirmを入力
  • 入力後、Deleteボタンを押下

image.png

マルチリージョン構成の場合、Linked cluster Regionのdeletion Protectionも無効化させないと削除できません。

image.png

左側ペインのCluster>Linked Regionで青文字リンクで表示されている箇所をクリックすることで、Linked cluster Regionの設定画面を表示することができます。

image.png

  • 押下後、Cluster画面へ遷移します
  • StatusがDeletingになっているためしばらく待機します

image.png

  • 削除完了後、以下のような画面が表示されます
  • ポップアップ内のus-east-2 (Ohio)を押下します

image.png

  • 画面が遷移しResource was not foundが表示されています
  • Linked Region Clusterに関しても消えていることが確認できました。

image.png

上記作業でAmazon Aurora DSQLの作成から削除までを一通り実行しました。

所感

所感として良いところ改善したほうがいいところビジネス視点での活用案について簡単にまとめたいと思います。

良いところ

  • 設定箇所が少ないため初学者でも操作しやすい
  • 設定画面に関しても表示内容が少ないためすっきりしている
  • 複数クラスタのデータベースを数分で展開可能

改善したほうがいいところ

  • 設定項目が少ないがゆえにカスタマイズした設定ができない
  • マルチリージョン構成の場合の削除がややめんどくさい
  • 削除時のメッセージがイケていない(confirm=削除と認識しづらい)

ビジネス視点での活用案

あくまで一個人として思った意見となります。

  • アメリカ本土に拠点を置いている企業内のデータベース環境(情シス向け)
  • データ管理条件がそこまで厳しくない中小企業のデータ保管先
  • アメリカ本土に拠点を置いているメディア系企業のユーザデータ環境

参考サイト

簡単ではございますが、Amazon Aurora DSQLで遊んでみた感想について記事にしてみました。触ってみることで本サービスの奥深さを少し知ることができるかと思いますので、ぜひぜひ、触ってみてください。

最後まで、記事を読んでいただきありがとうございました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?