[アップデート] RDS Data API が大阪リージョンを含む 10 のリージョンで利用可能になりました
こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。
RDS Data API が大阪リージョンを含む 10 のリージョンで利用可能になりました。
RDS Data API
RDS Data API は Aurora に対して HTTP エンドポイント経由でクエリを実行できる機能です。
Data API を利用することで、Lambda などの水平スケーリングするコンピューティングの接続数を意識せずに Aurora にアクセスできます。
詳しい辛い部分の解消については、こちらのブログがわかりやすいので、併せてご覧いただければ幸いです。
アップデート内容
今回のアップデートは、新たに大阪リージョンを含む 10 のリージョンで RDS Data API が使えるようになったといったものです。
Aurora PosgreSQL, Aurora MySQL の両方でサポートされました。バージョンに関しても従来通りの内容です。
Data API supports Aurora PostgreSQL 15.3, 14.8, 13.11 and higher versions, and Aurora MySQL 3.07 and higher versions. Customers currently using Data API for ASv1 are encouraged to migrate to ASv2 to take advantage of the new Data API. To learn more, read the documentation.
今回のアップデート前までは Aurora PosgreSQL, Aurora MySQL の両方で未サポートだったため、非常に嬉しいですね。
ドキュメントも更新されていますね。
なお、 Serverless v1 の Data API に関しては未サポートのままのようでした。
制約事項
大阪リージョンだからというわけではないのですが、 RDS Data API にはいくつか制限があります。サポートしているデータの型にも注意しておきましょう。
やってみた
それでは大阪リージョンに Aurora クラスターを立ち上げ、Data API を実行してみましょう。
クラスターが立ち上がりました。Data API の設定値が存在し、有効になっているのが確認できますね。
クエリを実行してみました。最小 ACU を 0 にしていたため、初回のクエリは再実行する形になりましたが、Data API 経由でクエリを実行できていることがわかります。
~ $ aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
> --secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
> --database 'postgres' --sql "select CURRENT_DATE"
An error occurred (DatabaseResumingException) when calling the ExecuteStatement operation: The Aurora DB instance db-Z6XJVXVWCPJUJ277K43VW5GNG4 is resuming after being auto-paused. Please wait a few seconds and try again.
~ $ aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
> --secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
> --database 'postgres' --sql "select CURRENT_DATE"
{
"records": [
[
{
"stringValue": "2025-02-27"
}
]
],
"numberOfRecordsUpdated": 0
}
aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
--secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
--database 'postgres' --sql "create table sample_table (col1 int, col2 varchar(20), col3 timestamp without time zone)"
~ $ aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
> --secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
> --database 'postgres' --sql "create table sample_table (col1 int, col2 varchar(20), col3 timestamp without time zone)"
{
"numberOfRecordsUpdated": 0,
"generatedFields": []
}
aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
--secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
--database 'postgres' --sql "insert into sample_table (col1, col2, col3) values (1, 'TEST', now())"
~ $ aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
> --secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
> --database 'postgres' --sql "insert into sample_table (col1, col2, col3) values (1, 'TEST', now())"
{
"numberOfRecordsUpdated": 1,
"generatedFields": []
}
aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
--secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
--database 'postgres' --sql "select * from sample_table"
~ $ aws rds-data execute-statement --resource-arn 'arn:aws:rds:ap-northeast-3:123456789012:cluster:database-1' \
> --secret-arn 'arn:aws:secretsmanager:ap-northeast-3:123456789012:secret:rds!cluster-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXX' \
> --database 'postgres' --sql "select * from sample_table"
{
"records": [
[
{
"longValue": 1
},
{
"stringValue": "TEST"
},
{
"stringValue": "2025-02-27 01:33:22.298824"
}
]
],
"numberOfRecordsUpdated": 0
}
クエリの参考
まとめ
以上、「RDS Data API が大阪リージョンを含む 10 のリージョンで利用可能になりました。」でした。
最近、 Amazon Bedrock が使えるようになったりしましたが、Data API のサポートにより Amazon Bedrock Knowledge bases もサポートしてくるとますます嬉しいですね。
このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!