スマートスタイル TECH BLOG

Amazon Aurora MySQL5.7互換版さわってみました

はじめに

1ヶ月程前にAmazon Aurora MySQL5.7互換版(以下Aurora2系、MySQL5.6互換版をAurora1系と記載)がついにリリースされました。
遅くなってしまいましたが、少しさわって見ましたので簡単に書きます。

特徴

以下の公式サイトに記載されています。
Amazon Aurora: MySQL 5.7互換をリリース(Amazon Web Services ブログ)

機能的特徴抜粋

JSONサポート、空間インデックス、generated columnsなどをご利用頂け、MySQL 5.7より最大5倍高速です。
Amazon Auroraの空間インデックスの作成は、MySQL 5.7よりも20倍以上の書き込みパフォーマンスと10倍以上の読み込みパフォーマンスとなっています

詳細については下記にあります。
Amazon Aurora MySQL の使用(ユーザーガイド)

またクラスメソッドさんがリリースから秒速でブログ書かれていたのでそちらのリンクも非常にわかりやすいです。
Amazon AuroraのMySQL 5.7互換が正式リリースされました

詳細ページからAurora1系、MySQL5.7との機能比較抜粋(Aurora2系でサポート外となった機能)

Aurora1系からのサポート外機能

  • Asynchronous Key Prefetch (AKP)
  • ハッシュ結合
  • AWS Lambda 関数を同期的に呼び出すためのネイティブ関数
  • スキャンバッチ処理
  • Amazon S3 バケットを使用した MySQL からのデータ移行

MySQL 5.7からのサポート外機能

  • グローバルトランザクション ID (GTID)
  • グループのレプリケーションプラグイン
  • ページサイズの増加
  • 起動時の InnoDB バッファプールのロード
  • InnoDB フルテキストパーサープラグイン
  • マルチソースレプリケーション
  • オンラインバッファプールのサイズ変更
  • パスワード検証プラグイン
  • クエリ書き換えプラグイン
  • レプリケーションフィルター処理
  • CREATE TABLESPACESQL ステートメント
  • X プロトコル

MySQL5.7との比較ではアーキテクチャが違うのでサポート対象外が多くなるのはそうかなと思いましたが、Aurora1系からサポート外になったものも結構ありますね。(現時点での話ですが)

実際に起動させてみた

Aurora version1.14以降のスナップショットであればAurora1系からでも復元可能のようなので、今回は手元で稼働していた1.16のスナップショットから復元して見ました。

特に引っかかるところはないのですが、エンジン名が「aurora」->「aurora-mysql」に変わっているので、DBエンジンを変更しないとエンジンバージョン「5.7.12」が選択できません。

ダッシュボードだとAurora1系も2系も同様にエンジンは「Aurora MySQL」と表示されるので、ダッシュボードで確認する際は、エンジンバージョンを表示して確認しましょう

無事起動。SecurityGroupをdefaultから変えて手元の環境から接続

Aurora2系で起動してますね。
ついでにJSONも使えるのか確認

Json形式でテーブルが作成出来ました。

パラメータも確認

デフォルトのパラメータグループについても確認してみました。

上記で取得したデータからAurora1系からAurora2系での差分は下記です

default-parameters

追加パラメータ 削除パラメータ
innodb_adaptive_hash_index_parts timed_mutexes
innodb_status_output
innodb_status_output_locks
internal_tmp_disk_storage_engine
log_error_verbosity
log_slow_admin_statements
log_slow_slave_statements
max_execution_time
max_points_in_geometry
range_optimizer_max_mem_size
show_compatibility_56

MySQL5.7からだけでなくMySQL5.6からの追加パラメータも含まれていますね。
「internal_tmp_disk_storage_engine」では「INNODB」だけでなく「MYISAM」も選択可能でした。

default-cluster-parameters

追加パラメータ 削除パラメータ
binlog_error_action なし
check_proxy_users
default_password_lifetime
innodb_default_row_format
innodb_fill_factor
log_builtin_as_identified_by_password
mysql_native_password_proxy_users
slave_parallel_type
tls_version

「default_password_lifetime」の値はdefault 0でした。360じゃなくてよかったです。
また「innodb_default_row_format」の設定可能値に「COMPRESSED」が含まれていたので、一応試したところ

やっぱりダメでした。

変更パラメータ Aurora1系 Aurora2系 備考
log_output TABLE FILE デフォルト値の変更
optimizer_switch 設定可能値の変更。多数のため割愛
performance_schema true false 設定変更の可否

「performance_schema」の有効化がAurora2系では出来なくなってました。
なかなか思い切った変更ですね。

システム変数(GLOBAL)

パラメータグループで「engine-default」となっているものについては上記のやり方では確認出来ないため、接続して「SHOW GLOBAL VARIABLES」で確認しようと思ったのですが。。
項目が多すぎるため、申し訳ありませんが割愛させて頂きます。
個人的に気になっていた下記の値は変更されていました。

変更パラメータ名 Aurora1系 Aurora2系
innodb_file_format Antelope Barracuda
innodb_large_prefix OFF ON
innodb_strict_mode OFF ON

まとめ

今回確認出来たのは一部の点だけでしたが、それだけでも大きな変更がいくつかあった様に感じます。
使用可能となった機能に意識を向けすぎると、思わぬ落とし穴にハマってしまうケースもありますので、導入前にはしっかりとしたテストを行いましょう。


AWS

 

Return Top