AuroraからS3にエクスポートしてみる
2022/10/27に新しく発表されたということで、やってみました。
Amazon Aurora supports cluster export to S3
- Auroraのクラスターを直接S3にエクスポート
- 直接 => snapshotを作らないという意味
- Parquetフォーマット
- エクスポートすることで、DBのパフォーマンスに影響は無い
- Console、CLIで実行できる
やってみる
Auroraの準備
エクスポート用にDBを作ります。Aurora MySQL、サイズはsmallです。
MySQLのチュートリアルから作成して、
database: mem
table: pet
としました。(何でもOK)
Export設定
クラスターをチェックして、右上のActionsからExport to Amazon S3を選択
- Export identifier にエクスポートの名前をつける(S3バケット内のフォルダ名になる)
- Export data formatでは、Allも選べますが今回は1つのデータベースの1つのテーブルのみにしました。mem.petと指定しています。
続いてS3、IAM、Encryptionの設定をします。
- S3バケットを指定
- prefixで中のフォルダ構成を設定できます
- IAM roleは自動で作ってくれるものを使いました
- KMS keyはカスタマーマネージドのみ使えます 「only customer managed keys are allowed.」というエラーが出ます
開始後に出てくる画面。Startingから変わりませんでした。終了しても固まったままだったので使いにくいかもしれません。
左側のメニューからも状況を見ることができます。
上のメニューと同じ情報はCLIでも見ることができます。
aws rds describe-export-tasks
以下は終了後にCLI出力したものです。項目がxxxxとなっている部分はダミーですが、TaskStartTime、TaskEndTimeは実データです。10行のレコードで、3分30秒ほどで終わっています。"TotalExtractedDataInGB": 1は切り上げられています(あとで詳細な値が出てきます)。
{
"ExportTasks": [
{
"ExportTaskIdentifier": "xxxx",
"SourceArn": "arn:aws:rds:ap-northeast-1::cluster:xxxx",
"TaskStartTime": "2022-10-30T00:50:15.066000+00:00",
"TaskEndTime": "2022-10-30T00:53:45.845000+00:00",
"S3Bucket": "xxxx",
"S3Prefix": "",
"IamRoleArn": "xxxx",
"KmsKeyId": "xxxx",
"Status": "COMPLETE",
"PercentProgress": 100,
"TotalExtractedDataInGB": 1
}
]
}
イベント通知
エクスポート終了時に"RDS-EVENT-0236"、"Export task completed"というEventが発行されていました(EventBridgeでトリガーしてSNS通知していたもの。)timeを見ると終了後2秒くらいでEventが出ているようです。
{
"time": "2022-10-30T00:53:47Z",
"resources": ["arn:aws:rds:ap-northeast-1::cluster:xxxx"],
"EventID": "RDS-EVENT-0236",
"Message": "Export task completed"
}
S3の中身
- 指定したバケットにExportIdentifier/database/.. という階層で入っている
- Parquetファイルを確認するには、.gz.parquetを選択してObject Actions -> Query with S3 Selectでみるとよさそう
-
export_info...json
にエクスポートの情報、export_tables_info...json
にスキーマ情報がある。- どちらにも "totalExportedDataInGB" というエクスポートデータ量の項目がある。今回は、6.154179573059082E-6 (=> 6KB ) だった。
まとめ
- AuroraのS3直接エクスポートをやってみました
余談: MySQLでエクスポートが速くなったらしい
投稿日: Oct 20, 2022
AWS は本日、MySQL 5.7 および 8.0 の Amazon Aurora MySQL 互換エディションで Amazon S3 へのスナップショットのエクスポートが最大 10 倍の速度になったことをお知らせします。パフォーマンスの向上は、手動スナップショット、自動システムスナップショット、AWS Backup サービスで作成したスナップショットを含む、すべてのタイプのデータベーススナップショットをエクスポートする際に自動的に適用されます。
Discussion