Amazon Auroraのアップデートを確認する(2016年4月)

2016.04.26

ウィスキー、シガー、パイプをこよなく愛する大栗です。

本日からAuroraのアップデートがメンテナンスウィンドウにスケジューリングされました。メンテナンスによるアップデート内容を確認してみましょう。

2016年4月26日05:00 JSTに起動したAuroraでは今回のアップデートは適用済となっていました。

2016年4月26日08:00 JST更新:パッチ適用のオプトインは2016年5月10日まで延長されました。それ以降のメンテナンスウィンドウでパッチが適用されるようです。

新機能

新機能は4種類あります。

Parallel Read Ahead

Parallel Read Aheadは2015年12月のアップデートで取り込まれた機能ですが、当時はlab modeで有効にする機能でした。
AuroraはMySQLと比較して、メモリに収まらないテーブルのフルスキャンが遅い傾向に有りました。この機能により論理先読みをしてスキャン速度を向上しています。

AURORA_VERSIONシステム変数の追加

AURORA_VERSIONシステム変数により、現在のAuroraのバージョンを確認できるようになりました。以下のようにバージョンを確認できます。2016年4月のアップデート適用後はバージョンが1.6となっています。
以下のクエリでAuroraのバージョンを取得できます。

mysql> select @@aurora_version;
+------------------+
| @@aurora_version |
+------------------+
| 1.6              |
+------------------+
1 row in set (0.00 sec)
mysql> select AURORA_VERSION();
+------------------+
| AURORA_VERSION() |
+------------------+
| 1.6              |
+------------------+
1 row in set (0.00 sec)
mysql> show variables like '%version';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| aurora_version   | 1.6    |
| innodb_version   | 1.2.10 |
| protocol_version | 10     |
| version          | 5.6.10 |
+------------------+--------+
4 rows in set (0.00 sec)

バイナリログの効率的なストレージ(lab mode)

Auroraは通常バイナリログを出力せずにI/Oを減すことで高速化を図っています。しかし、Auroraから別のMySQL等へレプリケーションする場合にはバイナリログが必要となります。そのため、バイナリログ出力時にはI/Oが増大してパフォーマンスの低下が見られました。 今回のアップデートにより、バイナリログを効率的に格納できるようになりました。そのためバイナリログを出力する時のパフォーマンスが向上しています。

  • この機能はlab modeで有効になります。
  • 安全にこの機能を有効にするために、始めにクラスタ内のすべてのインスタンスでパッチを適用する必要があります。その後、クラスタ内のすべてのインスタンスでlab modeを有効にして、再起動します。
  • バイナリログのマスタに設定にしている場合に、この機能を有効にして下さい。
  • 次のAuroraのバージョン(1.7)では、デフォルトで有効になります。

ロックマネージャのメモリ使用量のメトリクスの追加

ロックマネージャが使用しているメモリ使用量が取得できるようになりました。以下のクエリでロックマネージャのメモリ使用量を取得できます。

mysql> select * from INFORMATION_SCHEMA.GLOBAL_STATUS where variable_name in ( 'aurora_lockmgr_memory_used');
+----------------------------+----------------+
| VARIABLE_NAME              | VARIABLE_VALUE |
+----------------------------+----------------+
| AURORA_LOCKMGR_MEMORY_USED | 638025728      |
+----------------------------+----------------+
1 row in set (0.00 sec)

不具合修正

  • バイナリログとXAトランザクションのリカバリ中の安定性を改善。
  • 多数のコネクションから生じるメモリの問題を修正。
  • メトリクスの精度向上:Read Throughput、Read IOPS、Read Latency、Write Throughput、Write IOPS、Write Latency、Disk Queue Depth
  • 大きなインスタンスのクラッシュ後の起動が遅くなる安定性の問題を修正。
  • 同期メカニズムとキャッシュ・エビクションのデータ・ディクショナリ内の同時実行の向上。
  • Auroraリードレプリカの安定性とパフォーマンスの向上
  • MySQLのバグフィックスのバックポート

さいごに

既存のAurora DBインスタンスでは、次のメンテンナンスウィンドウでパッチが適用されます。検証環境/開発環境では、先にパッチを適用して動作検証を行いましょう。
以下のように[インスタンスの操作]-[今すぐアップグレード]をクリックすれば、すぐに適用できます。なお、5月10日以降はメンテナンスウィンドウにスケジューリングされるのでご注意下さい。

RDS_AWS_Console

パッチ適用時にAuroraのプロセスが再起動されるため5〜30秒程度のダウンタイムが発生しますが安定性やパフォーマンスが向上しますので、面倒臭がらずにパッチを検証、適用しましょう。