Amazon RDSで3TB 30,000IOPSのディスクが使えるようになった
Amazon Web Services ブログ: 【AWS発表】Amazon RDS がスケールアップ! 3 TB、30,000 PIOPSまで拡張可能に
今日から、RDSで使えるディスクの上限が3TB / 30,000IOPSまで引き上げられました。
サイズや性能上限の引き上げの他にも、標準ストレージからIOPSストレージへの変更が出来るようになりました。
今までは、ダンプしてIOPSストレージにインポートしてという流れだったのでかなり楽になりました。
リリースを読むと、Multi-AZ配置をすることで可用性の低下をフェイルオーバーの時間で抑えることが出来ると書かれています。また、コンバートに数時間と書かれているので、実際にどのくらいので時間がかかるのか試してみました。
ディスクサイズは200GBで、DBの中身は空っぽです。
Apply immediatelyで即時反映を行うと、IOPSストレージへの変更準備のあと、DB Instanceの再起動が行われます。ここで、Multi-AZ配置されていない場合その間DBへのアクセスができなくなります。
DB Instance再起動後は、通常通り操作が可能となっていましたが、若干パフォーマンスの劣化がありました。
ストレージの変更完了まで約2時間程かかりました。
気になったので、パフォーマンスを軽く測ってみました。
3TB / 30,000IOPSで db.m2.4xlargeです。
前回とったパフォーマンスとの比較です(比較対象のIOPSは2,000)
The result logs which where found and the options: 1 mysql-5.5 : MySQL 5.5.30 2 mysql-5.6 : MySQL 5.6.10 3 mysql-5.6-disable_PS : MySQL 5.6.10 4 mysql-5.6-disable_PS-io_capacity : MySQL 5.6.10 5 mysql-rds : MySQL 5.5.27 log 6 mysql-rds_30000IOPS : MySQL 5.5.27 log ===================================================================================== Operation | 1| 2| 3| 4| 5| 6| |mysql-5|mysql-5|mysql-5|mysql-5|mysql-r|mysql-r| ------------------------------------------------------------------------------------- Results per test in seconds: | ------------------------------------------------------------------------------------- ATIS | 29.00| 28.00| 28.00| 28.00| 25.00| 16.00| alter-table | 26.00| 35.00| 33.00| 33.00| 22.00| 22.00| big-tables | 14.00| 14.00| 14.00| 14.00| 13.00| 12.00| connect | 329.00| 317.00| 296.00| 309.00| 310.00| 288.00| create | 724.00| 956.00| 927.00| 915.00| 639.00| 640.00| insert |2682.00|2714.00|2653.00|2759.00|2479.00|1775.00| select | 283.00| 315.00| 279.00| 281.00| 248.00| 235.00| wisconsin | 61.00| 63.00| 62.00| 64.00| 53.00| 31.00| ------------------------------------------------------------------------------------- The results per operation: | ------------------------------------------------------------------------------------- alter_table_add (100) | 12.00| 17.00| 15.00| 16.00| 10.00| 10.00| alter_table_drop (91) | 11.00| 15.00| 15.00| 14.00| 10.00| 10.00| connect (10000) | 16.00| 17.00| 17.00| 17.00| 19.00| 17.00| connect+select_1_row (10000) | 24.00| 23.00| 20.00| 22.00| 22.00| 20.00| connect+select_simple (10000) | 21.00| 20.00| 19.00| 21.00| 22.00| 20.00| count (100) | 8.00| 11.00| 8.00| 8.00| 7.00| 7.00| count_distinct (1000) | 4.00| 5.00| 5.00| 4.00| 4.00| 4.00| count_distinct_2 (1000) | 10.00| 11.00| 10.00| 11.00| 10.00| 9.00| count_distinct_big (120) | 15.00| 16.00| 16.00| 16.00| 9.00| 9.00| count_distinct_group (1000) | 9.00| 10.00| 9.00| 9.00| 7.00| 7.00| count_distinct_group_on_key (1000) | 8.00| 9.00| 8.00| 7.00| 6.00| 7.00| count_distinct_group_on_key_parts (1| 9.00| 8.00| 8.00| 8.00| 7.00| 6.00| count_distinct_key_prefix (1000) | 4.00| 4.00| 3.00| 3.00| 2.00| 2.00| count_group_on_key_parts (1000) | 6.00| 7.00| 6.00| 6.00| 6.00| 6.00| count_on_key (50100) | 75.00| 93.00| 76.00| 75.00| 58.00| 58.00| create+drop (10000) | 135.00| 194.00| 185.00| 179.00| 107.00| 104.00| create_MANY_tables (10000) | 115.00| 119.00| 111.00| 125.00| 114.00| 113.00| create_index (8) | 0.00| 0.00| 1.00| 1.00| 0.00| 1.00| create_key+drop (10000) | 435.00| 590.00| 578.00| 558.00| 392.00| 401.00| create_table (31) | 1.00| 0.00| 0.00| 0.00| 0.00| 0.00| delete_all_many_keys (1) | 10.00| 13.00| 14.00| 13.00| 18.00| 12.00| delete_big (1) | 0.00| 0.00| 0.00| 0.00| 0.00| 0.00| delete_big_many_keys (128) | 10.00| 13.00| 14.00| 13.00| 18.00| 12.00| delete_key (10000) | 11.00| 12.00| 12.00| 12.00| 10.00| 6.00| delete_range (12) | 3.00| 4.00| 2.00| 3.00| 3.00| 2.00| drop_index (8) | 1.00| 1.00| 0.00| 0.00| 0.00| 0.00| drop_table (28) | 0.00| 0.00| 0.00| 0.00| 0.00| 0.00| drop_table_when_MANY_tables (10000) | 34.00| 46.00| 47.00| 48.00| 21.00| 17.00| insert (350768) | 675.00| 675.00| 670.00| 694.00| 613.00| 329.00| insert_duplicates (100000) | 40.00| 40.00| 40.00| 41.00| 41.00| 40.00| insert_key (100000) | 216.00| 222.00| 219.00| 230.00| 167.00| 113.00| insert_many_fields (2000) | 7.00| 7.00| 6.00| 6.00| 5.00| 4.00| insert_select_1_key (1) | 3.00| 3.00| 2.00| 3.00| 2.00| 1.00| insert_select_2_keys (1) | 4.00| 3.00| 4.00| 4.00| 2.00| 2.00| min_max (60) | 4.00| 5.00| 4.00| 4.00| 4.00| 4.00| min_max_on_key (85000) | 40.00| 41.00| 38.00| 40.00| 39.00| 39.00| multiple_value_insert (100000) | 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| once_prepared_select (100000) | 46.00| 47.00| 45.00| 47.00| 45.00| 43.00| order_by_big (10) | 9.00| 8.00| 9.00| 9.00| 8.00| 8.00| order_by_big_key (10) | 8.00| 8.00| 8.00| 8.00| 7.00| 8.00| order_by_big_key2 (10) | 7.00| 8.00| 7.00| 7.00| 7.00| 8.00| order_by_big_key_desc (10) | 8.00| 8.00| 8.00| 8.00| 8.00| 8.00| order_by_big_key_diff (10) | 8.00| 8.00| 7.00| 7.00| 7.00| 7.00| order_by_big_key_prefix (10) | 9.00| 8.00| 8.00| 8.00| 8.00| 7.00| order_by_key2_diff (500) | 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| order_by_key_prefix (500) | 1.00| 0.00| 0.00| 1.00| 0.00| 0.00| order_by_range (500) | 0.00| 1.00| 1.00| 0.00| 1.00| 1.00| outer_join (10) | 9.00| 11.00| 10.00| 11.00| 9.00| 8.00| outer_join_found (10) | 10.00| 11.00| 10.00| 10.00| 8.00| 9.00| outer_join_not_found (500) | 7.00| 10.00| 9.00| 8.00| 7.00| 7.00| outer_join_on_key (10) | 6.00| 8.00| 7.00| 7.00| 5.00| 6.00| prepared_select (100000) | 49.00| 50.00| 49.00| 52.00| 50.00| 47.00| select_1_row (100000) | 43.00| 43.00| 41.00| 41.00| 42.00| 39.00| select_1_row_cache (100000) | 47.00| 43.00| 39.00| 41.00| 41.00| 38.00| select_2_rows (100000) | 45.00| 44.00| 41.00| 42.00| 41.00| 37.00| select_big (80) | 8.00| 8.00| 7.00| 7.00| 7.00| 7.00| select_big_str (10000) | 12.00| 11.00| 11.00| 11.00| 10.00| 11.00| select_cache (10000) | 42.00| 50.00| 44.00| 46.00| 37.00| 35.00| select_cache2 (10000) | 43.00| 49.00| 44.00| 44.00| 37.00| 36.00| select_column+column (100000) | 44.00| 43.00| 39.00| 41.00| 39.00| 38.00| select_diff_key (500) | 0.00| 1.00| 0.00| 0.00| 1.00| 0.00| select_distinct (800) | 3.00| 3.00| 3.00| 3.00| 2.00| 2.00| select_group (2911) | 10.00| 11.00| 10.00| 11.00| 8.00| 7.00| select_group_when_MANY_tables (10000| 5.00| 7.00| 6.00| 5.00| 5.00| 5.00| select_join (100) | 1.00| 0.00| 0.00| 0.00| 0.00| 0.00| select_key (200000) | 103.00| 100.00| 97.00| 103.00| 99.00| 97.00| select_key2 (200000) | 101.00| 105.00| 101.00| 104.00| 102.00| 98.00| select_key2_return_key (200000) | 98.00| 101.00| 98.00| 104.00| 100.00| 96.00| select_key2_return_prim (200000) | 97.00| 102.00| 99.00| 102.00| 101.00| 97.00| select_key_prefix (200000) | 101.00| 104.00| 101.00| 105.00| 102.00| 99.00| select_key_prefix_join (100) | 2.00| 2.00| 2.00| 2.00| 2.00| 2.00| select_key_return_key (200000) | 96.00| 99.00| 97.00| 99.00| 98.00| 94.00| select_many_fields (2000) | 7.00| 7.00| 8.00| 7.00| 8.00| 8.00| select_range (410) | 23.00| 17.00| 17.00| 17.00| 24.00| 23.00| select_range_key2 (25010) | 9.00| 11.00| 10.00| 8.00| 9.00| 10.00| select_range_prefix (25010) | 10.00| 9.00| 9.00| 10.00| 10.00| 9.00| select_simple (100000) | 38.00| 36.00| 34.00| 37.00| 36.00| 34.00| select_simple_cache (100000) | 39.00| 37.00| 35.00| 36.00| 37.00| 34.00| select_simple_join (500) | 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| update_big (10) | 25.00| 19.00| 19.00| 22.00| 24.00| 15.00| update_of_key (50000) | 97.00| 99.00| 99.00| 102.00| 84.00| 49.00| update_of_key_big (501) | 21.00| 8.00| 8.00| 8.00| 21.00| 17.00| update_of_primary_key_many_keys (256| 37.00| 34.00| 34.00| 35.00| 47.00| 29.00| update_with_key (300000) | 582.00| 591.00| 578.00| 604.00| 513.00| 289.00| update_with_key_prefix (100000) | 198.00| 200.00| 194.00| 203.00| 174.00| 98.00| wisc_benchmark (114) | 1.00| 2.00| 1.00| 1.00| 1.00| 2.00| ------------------------------------------------------------------------------------- TOTALS |4143.00|4439.00|4289.00|4398.00|3790.00|3017.00| =====================================================================================
Readに関してはメモリに載ってしまっているのであまり参考にならないのですが、InsertやUpdateに関しては性能の向上が見られます。
そのため、メモリに乗らないデータを扱う場合や挿入・更新が圧倒的に多いアプリケーションで使うといいのではと感じました。
しかし、通常の用途ではあまり使う機会はないかなという感じです。
何より、ストレージだけで月$4,050 とコストがかかるのでここぞという時にいかがでしょうか。
1年通すとFusion-IOの方が安い…