ablog

不器用で落着きのない技術者のメモ

Aurora ストレージの自動リサイズについて

投稿日: Oct 15, 2020

Amazon Aurora データベースクラスターに割り当てられたストレージスペースは、クラスターからデータを削除すると動的に減少するようになりました。ストレージスペースは、既に最大サイズの 128 テビバイト (TiB) まで自動的に増加するようになっていて、これでデータが削除されると自動的に減少するようになりました。お支払いいただくのは、実際に使用したストレージの分だけです。ストレージスペースの動的サイズ変更は、2020 年 9 月 21 日以降、Aurora MySQL バージョン 1.23 と 2.09、および Aurora PostgreSQL バージョン 10.13 と 11.8 向けにリージョンごとに有効になり、2020 年 11 月末までにすべての Aurora リージョンで有効になる予定です。

以前は、テーブルやパーティションを削除するなどして Aurora クラスターからデータを削除しても、割り当てられたストレージスペース全体はそのままでした。これは、後でデータが追加された場合に自動的に再利用するために空き領域を解放しなかったためです。動的サイズ変更では、データを削除すると、割り当てられたストレージスペースが自動的に減少します。

Amazon Aurora で、データベースストレージスペースの動的なサイズ変更が可能に

Amazon Aurora クラスターボリュームは、データベース内のデータ量が増えると自動的にスケールアップします。これは、Aurora バージョン 1.23.0 以降、および 2.09.0 以降では最大 128 テビバイト (TiB) までスケールアップできます。それ以前のバージョンでは、最大 64 TiB までスケールアップできます。Aurora クラスターで使用しているストレージを確認するには、次の Amazon CloudWatch メトリクスを使用します。

  • AuroraVolumeBytesLeftTotal は、クラスターボリュームに残っている使用可能な容量 (バイト単位) です。クラスター内でデータが増加すると、 auroraVolumeBytesLeftTotal の値が減少します。この値は、クラスターのサイズ上限に近づいている時期を特定するのに役立ちます。

注意: AuroraVolumeBytesLeftTotal メトリクスは、Aurora バージョン 1.19.5 以降、およびオーロラバージョン 2.04.5 以降でのみ使用できます。

  • VolumeBytesUsed は、Aurora DB クラスターが使用するストレージの容量 (バイト単位) です。クラスターでデータが増加すると、VolumeBytesUsed の値が増加します。
Amazon Aurora DB クラスターのストレージ使用量を表示する

Dynamic resizing applies to operations that physically remove or resize data files within the cluster volume. Thus, it applies to SQL statements such as DROP TABLE, DROP DATABASE, and TRUNCATE TABLE. It doesn't apply to deleting rows using the DELETE statement. If you delete a large number of rows from a table, you can run the Aurora MySQL OPTIMIZE TABLE statement or the Aurora PostgreSQL VACUUM statement afterward to reorganize the table and dynamically resize the cluster volume.

Note
For Aurora MySQL, the innodb_file_per_table affects how table storage is organized. When tables are part of the system tablespace, dropping the table doesn't reduce the size of the system tablespace. Thus, make sure to use the setting innodb_file_per_table=1 for Aurora MySQL clusters to take full advantage of dynamic resizing.

Managing performance and scaling for Aurora DB clusters - Amazon Aurora