プライベートプレビュー中の Aurora Limitless Database の API がパブリックに公開されはじめたので使えるか試してみた

2024.01.27

いわさです。

先日 AWS CLI や AWS API で Amazon Aurora Limitless Database に関するコマンドや API が公開されました。

Aurora Limitless Database というのは、re:Invent 2023 で発表された Amazon Aurora の新しい機能です。

この機能、現在はプライベートプレビューというステータスで、プレビュー利用の申込みをして承認された人しか使えない状態です。

Aurora Limitless Database については公式ドキュメント上にもまだ何も情報が無いのですが、気になっている方は多いと思います。

今回 API が公開されたことで「もしかしてもう使えたりする?」と思ったので、試してみました。
まぁ結果としてはまだ使えませんでした。

ただ、公開されている CLI や API のドキュメントなどから少し仕様が推測出来る部分もあったので紹介したいと思います。
ちなみに私は re:Invent 直後に申し込みをしたけどまだ承認されていません。
プライベートプレビューに参加していないけど API は公開されたようなので使えるか試してみたという趣旨の記事となります。

こちらは本日時点の情報です。プライベートプレビュー中の機能のため公開情報が変更される可能性もあります。

クラスターの有効化は出来てそうだが、シャードグループの追加に失敗

数少ない情報ソースである以下の公式ブログを見る限りだと、東京リージョンの Aurora PostgreSQL 15 で利用出来そうなので、同じ環境で試してみます。

コンソールから確認してみたが設定箇所はない

コンソールを確認してみたところそれっぽいオプションがありません。マネジメントコンソール上は未実装のように思えました。

試しにクラスターを作成してみましたが、公式ブログのようにシャードグループを追加するアクションメニューもありません。

PostgreSQL のシャード機能を使っていると聞いたので、何かしらのパラメータグループの変更が必要でデフォルトだと操作しても失敗するだろうなとは思ったのですが、コンソール上に何も表示されていないところを見ると未実装かなと思いました。

AWS CLI から

マネジメントコンソールだとダメそうだったので、次に AWS CLI などから試してみます。

まずは API や CLI のドキュメントから使い方を推測してみましょう。
次は AWS API の更新情報です。
今回のアップデートでシャードグループを操作する API が新規追加されています。(緑色の文字の API)

そして、DB クラスター操作系の API が更新されています。(青色の文字の API)

ここで API の変更差分も見れるのですが、私の Chrome 環境だとなぜかこの AWS API 更新履歴のページはハングアップするので、AWS CLI のドキュメントを見てみます。

「limitless」とかで検索すると新しいオプションが追加されていることが確認出来ました。
おそらく、Data API とか Babelfish のように「Aurora Limitless Database を有効化する」みたいなチェックボックスで有効化するイメージなのではないでしょうか。

このフラグですがmodify-db-clusterでも設定出来るようなので、既存のクラスターに対して Limitless Database 機能の有効化・無効化が出来るのかもしれません。

create-db-clusterを試してみたのですが、エラーにはなりませんでしたがレスポンスに Limitless Database に関する情報が含まれていませんでした。ドキュメントを見ると含まれるはずなのですが。

設定パラメータEnableLimitlessDatabaseが無視されている気配を感じますね。

% cat hoge.json
{
    "DBClusterIdentifier": "hoge0127auroralimitless",
    "Engine": "aurora-postgresql",
    "EngineVersion": "15.4",
    "EnableLimitlessDatabase": true,
    "MasterUsername": "postgres",
    "MasterUserPassword": "****************"
}

:

% aws-v1 rds create-db-cluster --cli-input-json file://hoge.json
{
    "DBCluster": {
        "AllocatedStorage": 1,
        "AvailabilityZones": [
            "ap-northeast-1c",
            "ap-northeast-1a",
            "ap-northeast-1d"
        ],
        "BackupRetentionPeriod": 1,
        "DBClusterIdentifier": "hoge0127auroralimitless",
        "DBClusterParameterGroup": "default.aurora-postgresql15",
        "DBSubnetGroup": "default",
        "Status": "creating",
        "Endpoint": "hoge0127auroralimitless.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com",
        "ReaderEndpoint": "hoge0127auroralimitless.cluster-ro-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com",
        "MultiAZ": false,
        "Engine": "aurora-postgresql",
        "EngineVersion": "15.4",
        "Port": 5432,
        "MasterUsername": "postgres",
        "PreferredBackupWindow": "18:54-19:24",
        "PreferredMaintenanceWindow": "fri:14:50-fri:15:20",
        "ReadReplicaIdentifiers": [],
        "DBClusterMembers": [],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-ea2297a6",
                "Status": "active"
            }
        ],
        "HostedZoneId": "Z24O6O9L7SGTNB",
        "StorageEncrypted": false,
        "DbClusterResourceId": "cluster-KFF5Y7U4ZPG3LTCZOK2SNR53YI",
        "DBClusterArn": "arn:aws:rds:ap-northeast-1:123456789012:cluster:hoge0127auroralimitless",
        "AssociatedRoles": [],
        "IAMDatabaseAuthenticationEnabled": false,
        "ClusterCreateTime": "2024-01-26T20:52:17.822Z",
        "EngineMode": "provisioned",
        "DeletionProtection": false,
        "HttpEndpointEnabled": false,
        "CopyTagsToSnapshot": false,
        "CrossAccountClone": false,
        "DomainMemberships": [],
        "TagList": [],
        "AutoMinorVersionUpgrade": true,
        "NetworkType": "IPV4"
    }
}

マネジメントコンソールで作成したクラスターに対してmodify-db-clusterも試してみたのですが結果は同様でした。

つづいてシャードグループの作成などをやってみます。
ドキュメントは以下になります。

クラスターを指定して、シャードグループの識別子を指定します。
必須パラメータとしてmax-acuを指定する形のようです。Aurora Serverless の ACU ですね。シャードグループにも最大値を設定しておくようです。

また、オプションでcompute-redundancyというパラメータが指定出来るようです。
シャードグループ向けの冗長構成オプションで、物理シャードごとに追加のスタンバイインスタンスを作成するかどうか設定出来るようです。

プレビュー時点では 0 のみ指定出来ることが補足されています。

このコマンドを実行してマネジメントコンソール上にシャードグループが作成されたらおもしろいですね。やってみましょう。

% cat create-db-shard-group.json 
{
    "DBShardGroupIdentifier": "hoge0127shard1",
    "DBClusterIdentifier": "hoge0127limitless",
    "ComputeRedundancy": 0,
    "MaxACU": 2.0,
    "PubliclyAccessible": true
}

% aws-v1 rds create-db-shard-group --cli-input-json file://create-db-shard-group.json         

An error occurred (InvalidParameterValue) when calling the CreateDBShardGroup operation: Access Denied to API Version: APILimitless

エラーとなりました。

その後、権限の見直し、リージョンを変更、AWS アカウントを別のもので試したりとしてみたのですがどれも同じ結果となりました。
プレビュー許可されている場合は成功するのかもしれません。

さいごに

本日は、プライベートプレビュー中の Aurora Limitless Database の API がパブリックに公開されはじめたので使えるか試してみました。

結果は、使えませんでした。

プライベートプレビュー中のユーザーに向けた API 公開だったのかもしれませんが、AWS の What's New やマネジメントコンソールより少し早く API や CLI などの情報が公開されることが早いので、近いうちに公開されないかな?とちょっと期待しています。