こんにちは。テクニカルサポート課の森本です。 私は今、re:Invent 2024 に初参加しております。
このページでは、本日の Keynoteで発表のあった Amazon Aurora DSQL (Public Preview)の起動を試してみたので、その内容をまとめます。 なお、本日(2024年12月3日(太平洋標準時間:PST))時点の動作となります。
以降のプレビュー期間、および GA 時には動作が変更となっている可能性がある点、ご留意ください。
Amazon Aurora DSQL とは
大事なところはKeynoteで話された内容、およびドキュメントにまとまっているので、一旦割愛します。
このブログで大切なのはとりあえず動かしてみたという内容です。
Distributed SQL Databases - Amazon Aurora DSQL - AWS
What is Amazon Aurora DSQL? - Amazon Aurora DSQL
Introducing Amazon Aurora DSQL | AWS Database Blog
起動方法
ドキュメントの内容に従い、進めていきます。
IAMユーザ/ロールの作成
起動や接続を行う最低限の権限として、マネジメントコンソールへのアクセス権限があること、Aurora DSQL に対するフルアクセス権限があることが必要です。
Your IAM identity must have permissions to sign in to the AWS Management Console.
Your IAM identity must have access to perform any action on any resource in your AWS account, or you must be able to get access to the following IAM policy action: dsql:*.
Getting started with Aurora DSQL - Amazon Aurora DSQL
検証した時点で既に DSQL 用のマネージドポリシーは用意されていたので、AmazonAuroraDSQLFullAccess のポリシーをアタッチしたIAMロールを使用します。
Aurora DSQL クラスターの作成
Aurora DSQL クラスターを作成します。正直、拍子抜けするほど簡単です。
まずは、先に作成したロールで DSQL のコンソールを開きます。独自のコンソール、いいですね。
Create cluster をクリックします。
必要情報を入力します。 RDS や Aurora と違って、DBインスタンスクラス、ストレージ容量、VPC、セキュリティグループ、パラメータグループなどの設定項目が一切ありません。 シングルリージョンで使用する場合はNameタグのみ、マルチリージョンで使用する場合はNameタグに加え、Linked cluster Region名、および Witness Region 名が必要です。
全ての項目を入力したら、Create cluster をクリックします。
作成が完了すれば、Status が Active になります。
接続
Aurora DSQL クラスターに接続します。ドキドキします。特に VPC が必須なわけでもなさそうなので、同一リージョンの VPC を指定しない CloudShell から接続します。
まずは先程の画面から DSQL クラスターを選択して Connect をクリックします。
接続情報を確認します。マスクしているので若干わかりづらいですが、上の方にエンドポイント、下の方に自動生成されたパスワードが表示されます。
CloudShell 上で以下のコマンドを実行します。 また、パスワードを要求されるので、接続情報にて自動生成されたパスワードを入力します。
PGSSLMODE=require \ psql --dbname <データベース名> \ --username <ユーザ名> \ --host <エンドポイント名>
正しく情報が入力されると、接続に成功します。今まで何百回、何千回もみてきた画面なのに、なぜか感動しました笑
[cloudshell-user@ip-xx-xx-xx-xx ~]$ PGSSLMODE=require \ > psql --dbname postgres \ > --username admin \ > --host xxx.dsql.us-east-1.on.aws Password for user admin: psql (15.8, server 16.5) WARNING: psql major version 15, server major version 16. Some psql features might not work. SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, compression: off) Type "help" for help. postgres=>
以下のとおり適当にクエリも実行してみましたが、特に普通の psql と変わりなく実行できます。
postgres=> create schema test; CREATE SCHEMA postgres=> create table test.test (id int primary key, note varchar(256)); CREATE TABLE postgres=> insert into test.test values (1,'test1'); INSERT 0 1 postgres=> select * from test.test; id | note ----+------- 1 | test1 (1 row)
注意事項
検証済みの Aurora DSQL クラスターを削除する際、削除保護が有効になっているとエラーが発生する場合があります。その際は、リンクリージョン内の全てのクラスターで削除保護を無効化したのち、クラスターの削除を実行する必要があります。
エラー例
An error occurred (ValidationException) when calling the DeleteMultiRegionClusters operation: Cannot delete a resource which has deletion protection enabled
まとめ
本日プレビュー版でリリースされた Amazon Aurora DSQL の起動から接続、クエリ実行までを実行してみました。
まずは動かしてみることが大事と思ったので、無事に動かせて良かったです。
追って、DSQL 特有のトランザクション記載方法なども検証してまとめたいと思っています。
この記事がどなたかの参考になれば幸いです。