メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

付録: MySQL データベースエンジンのオプション

この付録では、MySQL DB エンジンを実行する Amazon RDS インスタンスで使用できるオプションまたは追加機能について説明します。これらのオプションを有効にするには、カスタムオプショングループにオプションを追加して、そのオプショングループを DB インスタンスに関連付けます。オプショングループの操作方法の詳細については、「オプショングループを使用する」を参照してください。

Amazon RDS では、以下の MySQL 用オプションがサポートされています。

オプション ID エンジンバージョン

MEMCACHED

MySQL 5.6 以降

MARIADB_AUDIT_PLUGIN

MySQL 5.6.29 以降

MySQL 5.7.11 以降

MySQL の memcached サポート

Amazon RDS は、MySQL 5.6 で導入された InnoDB テーブルに対する memcached インターフェイスの使用をサポートしています。memcached API を使用すると、NoSQL キー/値データストアと似た方法でアプリケーションが InnoDB テーブルを使用することができます。

重要

memcached インターフェイスは、MySQL バージョン 5.6.21b 以降でのみ使用することをお勧めします。これは、バージョン 5.6.21b 以降、MySQL エンジンに含まれる memcached インターフェイスに関連する多くのバグが修正されているからです。詳細については、MySQL のドキュメントの「MySQL 5.6.20 (2014-07-31) の変更点」と「MySQL 5.6.21 (2014-09-23) の変更点」を参照してください。

memcached はシンプルな、キーベースのキャッシュです。アプリケーションは memcached を使用して、キャッシュにあるキーと値のデータペアの挿入、操作、取得を実行します。MySQL 5.6 では、memcached プロトコルによって InnoDB テーブルのデータを公開するデーモンサービスを実装するプラグインが導入されました。MySQL memcached プラグインの詳細については、「InnoDB と memcached との統合」を参照してください。

Amazon RDS MySQL 5.6 以降のインスタンスの memcached サポートは、以下の手順で有効にします。

  1. memcached インターフェイスへのアクセスを制御するために使用するセキュリティグループを決定します。既に SQL インターフェイスを使用しているアプリケーションセットが memcached インターフェイスにアクセスするアプリケーションセットと同じ場合、SQL インターフェイスで使用されている既存の VPC または DB セキュリティグループを使用できます。異なるアプリケーションセットが memcached インターフェイスにアクセスする場合は、新しい VPC または DB セキュリティグループを定義します。セキュリティグループの管理方法の詳細については、「Amazon RDS セキュリティグループ」を参照してください。

  2. カスタム DB オプショングループを作成し、エンジンタイプとして MySQL、バージョンとして 5.6 以降を選択します。オプショングループの作成方法の詳細については、「オプショングループを作成する」を参照してください。

  3. オプショングループに MEMCACHED オプションを追加します。memcached インターフェイスで使用するポート、および、インターフェイスへのアクセスを制御するために使用するセキュリティグループを指定します。オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。

  4. 必要に応じてオプション設定を変更して、memcached パラメーターを設定します。オプション設定の変更方法の詳細については、「オプションの設定を変更する」を参照してください。

  5. インスタンスにオプショングループを適用します。オプショングループを適用すると、Amazon RDS でそのインスタンスの memcached サポートが有効になります。

  6. memcached インターフェイスを介して MySQL テーブルのどの列にアクセスできるかを指定します。memcached プラグインは、innodb_memcache という専用データベースに containers というカタログテーブルを作成します。containers テーブルに行を挿入して InnoDB テーブルをマッピングし、memcached を介してアクセスします。memcached キー値を格納する InnoDB テーブルの列を 1 つ指定し、キーに関連付けられたデータ値を格納する列を 1 つ以上指定します。また、memcached アプリケーションがその列セットを参照するときに使用する名前も指定します。containers テーブルに行を挿入する方法の詳細については、「Internals of the InnoDB memcached Plugin」を参照してください。InnoDB テーブルのマッピングと、memcached を介したアクセスの例については、「InnoDB + memcached アプリケーションのテーブルおよび列のマッピングの指定」を参照してください。

  7. memcached インターフェイスにアクセスするアプリケーションが、SQL インターフェイスを使用するアプリケーションとは異なるコンピュータまたは EC2 インスタンス上にある場合は、MySQL インスタンスに関連付けられた VPC または DB セキュリティグループに、そのコンピュータの接続情報を追加します。セキュリティグループの管理方法の詳細については、「Amazon RDS セキュリティグループ」を参照してください。

インスタンスの memcached サポートを無効にするには、インスタンスを変更して MySQL バージョンのデフォルトオプショングループを指定します。MySQL インスタンスの変更方法の詳細については、「MySQL データベースエンジンを実行する DB インスタンスの変更」を参照してください。

MySQL memcached のセキュリティ上の考慮事項

memcached プロトコルはユーザー認証をサポートしていません。MySQL memcached のセキュリティ上の考慮事項について、詳しくは「memcached デプロイメント」および「MySQL キャッシュ Layer としての memcached の使用」を参照してください。

以下の対策をとると、memcached インターフェイスのセキュリティを高めることができます。

  • MEMCACHED オプションをオプショングループに追加するときに、デフォルトの 11211 とは異なるポートを指定します。

  • 既知の信頼されたクライアントアドレスまたは EC2 インスタンスのみにアクセスを制限する VPC または DB セキュリティグループに、memcached インターフェイスを関連付けます。セキュリティグループの管理方法の詳細については、「Amazon RDS セキュリティグループ」を参照してください。

MySQL memcached の接続情報

memcached インターフェイスにアクセスするには、アプリケーションで Amazon RDS インスタンスの DNS 名と memcached ポート番号の両方を指定する必要があります。たとえば、インスタンスの DNS 名が my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com で、memcached インターフェイスがポート 11212 を使用している場合、PHP で指定する接続情報は次のようになります。

Copy
<?php $cache = new Memcache; $cache->connect('my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com',11212); ?>

Amazon RDS MySQL インスタンスの DNS 名と memcached ポートを確認するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. AWS マネジメントコンソールの右上隅で、DB インスタンスを含むリージョンを選択します。

  3. ナビゲーションペインの [Instances] をクリックします。

  4. MySQL データベースエンジンを実行する DB インスタンス名の左側にある矢印を選択します。説明が表示されます。[endpoint] フィールドの値を書き留めます。DNS 名は、エンドポイントのコロン (:) までの部分です。コロンとその後のポート番号は無視します。このポートは memcached インターフェイスにアクセスする際には使用されません。

  5. [Option Group(s)] フィールドに表示された名前を書き留めます。

  6. ナビゲーションペインで、[Option Groups] をクリックします。

  7. MySQL DB インスタンスで使用するオプショングループ名の左側にある矢印を選択します。説明が表示されます。[MEMCACHED] オプションの [port] 設定の値を書き留めます。

MySQL memcached のオプション設定

Amazon RDS は、MySQL memcached パラメーターを Amazon RDS MEMCACHED オプションのオプション設定として公開します。

MySQL memcached のパラメーター

  • DAEMON_MEMCACHED_R_BATCH_SIZEmemcached - COMMIT を実行して新しいトランザクションを開始する前に実行する読み取り操作 (get) の回数を指定する整数値。指定できる値は 1〜4294967295 で、デフォルトは 1 です。このオプションは、インスタンスが再開されるまで有効になりません。

  • DAEMON_MEMCACHED_W_BATCH_SIZEmemcached - COMMIT を実行して新しいトランザクションを開始する前に実行する書き込み操作 (add、set、incr など) の回数を指定する整数値。指定できる値は 1〜4294967295 で、デフォルトは 1 です。このオプションは、インスタンスが再開されるまで有効になりません。

  • INNODB_API_BK_COMMIT_INTERVALmemcached - InnoDB インターフェイスを使用するアイドル状態の接続を自動コミットする頻度を指定する整数値。指定できる値は 1〜1073741824 で、デフォルトは 5 です。このオプションは即座に反映され、インスタンスを再開する必要はありません。

  • INNODB_API_DISABLE_ROWLOCKmemcached - InnoDB インターフェイスを使用しているときに行ロックの使用を無効 (1 (true) ) または有効 (0 (false) ) にするブール値。デフォルトは 0 (false) です。このオプションは、インスタンスが再開されるまで有効になりません。

  • INNODB_API_ENABLE_MDLmemcached - ブール値。0 (false) に設定すると、InnoDB プラグインで使用するテーブルがロックされ、SQL インターフェイスを介して DDL によってそのテーブルを削除または変更できなくなります。デフォルトは 0 (false) です。このオプションは、インスタンスが再開されるまで有効になりません。

  • INNODB_API_TRX_LEVELmemcached - インターフェイスで処理されるクエリのトランザクション分離レベルを指定する整数値。指定できる値は 0〜3 です。デフォルトは 0 です。このオプションは、インスタンスが再開されるまで有効になりません。

次の MySQL memcached のパラメーターは Amazon RDS によって設定され、ユーザーが変更することはできません: DAEMON_MEMCACHED_LIB_NAMEDAEMON_MEMCACHED_LIB_PATHINNODB_API_ENABLE_BINLOG。MySQL 管理者が daemon_memcached_options を使用して設定したパラメーターは、Amazon RDS の個々の MEMCACHED オプション設定として使用できます。

MySQL daemon_memcached_options のパラメーター

  • BINDING_PROTOCOL - 使用するバインディングプロトコルを指定する文字列。指定できる値は、autoascii、または binary です。デフォルトは auto で、サーバーが自動的にクライアントとプロトコルを交渉します。このオプションは、インスタンスが再開されるまで有効になりません。

  • BACKLOG_QUEUE_LIMIT - memcached による処理待ちが可能なネットワーク接続の数を指定する整数値。この値を増やすと、クライアントが memcached インスタンスに接続できないというエラーの発生回数が減る可能性がありますが、サーバーのパフォーマンスは向上しません。指定できる値は 1〜2048 で、デフォルトは 1024 です。このオプションは、インスタンスが再開されるまで有効になりません。

  • CAS_DISABLED - 比較と交換 (CAS: compare and swap) の使用を有効 (1 (true) ) または無効 (0 (false) ) にするブール値。項目ごとのサイズが 8 バイトずつ小さくなります。デフォルトは 0 (false) です。このオプションは、インスタンスが再開されるまで有効になりません。

  • CHUNK_SIZE - 最小項目のキー、値、およびフラグに割り当てる最小のチャンクサイズ (バイト単位) を指定する整数値。指定できる値は 1〜48 です。デフォルトは 48 で、値を小さくするとメモリ効率が大幅に向上します。このオプションは、インスタンスが再開されるまで有効になりません。

  • CHUNCK_SIZE_GROWTH_FACTOR - 新しいチャンクのサイズを制御する浮動小数点値。新しいチャンクのサイズは、前のチャンクのサイズに CHUNCK_SIZE_GROWTH_FACTOR を掛けた値です。指定できる値は 1〜2 の範囲で、デフォルトは 1.25 です。このオプションは、インスタンスが再開されるまで有効になりません。

  • ERROR_ON_MEMORY_EXHAUSTED - ブール値。1 (true) に設定すると、項目を格納するメモリーが不足した場合に、memcached が項目を削除するのではなく、エラーを返します。0 (false) に設定した場合、メモリ不足になると memcached は項目を削除します。デフォルトは 0 (false) です。このオプションは、インスタンスが再開されるまで有効になりません。

  • MAX_SIMULTANEOUS_CONNECTIONS - 同時接続の最大数を指定する整数値。この値を 10 未満に設定すると、MySQL は起動できなくなります。指定できる値は 10〜1024 で、デフォルトは 1024 です。このオプションは、インスタンスが再開されるまで有効になりません。

  • VERBOSITYmemcached - サービスが MySQL エラーログに記録する情報のレベルを指定する文字列。デフォルトは v です。このオプションは、インスタンスが再開されるまで有効になりません。指定できる値は次のとおりです。

    • v - メインイベントループの実行中に発生したエラーと警告を記録します。

    • vv - v で記録する情報に加えて、各クライアントのコマンドとレスポンスも記録します。

    • vvv - vv で記録する情報に加えて、内部の状態遷移も記録します。

これらの MySQL DAEMON_MEMCACHED_OPTIONS のパラメーターは Amazon RDS によって設定され、ユーザーが変更することはできません: DAEMON_PROCESSLARGE_MEMORY_PAGESMAXIMUM_CORE_FILE_LIMITMAX_ITEM_SIZELOCK_DOWN_PAGE_MEMORYMASKIDFILEREQUESTS_PER_EVENTSOCKETUSER

MariaDB 監査プラグインのサポート

Amazon RDS では、MySQL データベースインスタンスでの MariaDB 監査プラグインの使用をサポートしています。MariaDB 監査プラグインは、データベースへのユーザーのログオンやデータベースに対して実行されたクエリなどのデータベースアクティビティを記録します。データベースのアクティビティのレコードはログファイルに保存されます。

監査プラグインのオプション設定

Amazon RDS では、MariaDB 監査プラグインのオプションの次の設定がサポートされています。

オプション設定 有効な値 デフォルト値 説明

SERVER_AUDIT_FILE_PATH

/rdsdbdata/log/audit/

/rdsdbdata/log/audit/

ログファイルの場所。ログファイルには、SERVER_AUDIT_EVENTS で指定されたアクティビティのレコードが含まれます。詳細については、「データベースログファイルを閲覧および一覧表示する」および「MySQL データベースログファイル」を参照してください。

SERVER_AUDIT_FILE_SIZE

1–1000000000

なし

このバイト数のサイズに達するとファイルがローテーションします。詳細については、「ログファイルのサイズ」を参照してください。

SERVER_AUDIT_FILE_ROTATION

0–100

なし

保存するログローテーション数。詳細については、「ログファイルのサイズ」および「データベースログファイルをダウンロードする」を参照してください。

SERVER_AUDIT_EVENTS

MariaDB では、CONNECTQUERY、および TABLE がサポートされます。

MySQL では、CONNECTQUERY がサポートされます。

CONNECTQUERY

ログに記録するアクティビティのタイプ。MariaDB 監査プラグインのインストール自体も記録されます。

  • CONNECT: データベースへ接続の成功と失敗、およびデータベースからの切断を記録します。

  • QUERY: データベースに対して実行されたすべてのクエリのテキストを記録します。

  • TABLE: データベースに対してクエリが実行された際に影響を受けたテーブルを記録します。

SERVER_AUDIT_INCL_USERS

複数のカンマ区切り値

なし

指定されたユーザーからのアクティビティのみを含めます。デフォルトでは、すべてのユーザーのアクティビティが記録されます。SERVER_AUDIT_EXCL_USERS および SERVER_AUDIT_INCL_USERS の両方でユーザーが指定される場合、そのユーザーのアクティビティが記録されます。

SERVER_AUDIT_EXCL_USERS

複数のカンマ区切り値

なし

指定されたユーザーからのアクティビティを除外します。デフォルトでは、すべてのユーザーのアクティビティが記録されます。SERVER_AUDIT_EXCL_USERS および SERVER_AUDIT_INCL_USERS の両方でユーザーが指定される場合、そのユーザーのアクティビティが記録されます。

ユーザーは 1 秒ごとにデータベースをクエリしてデータベースのヘルスチェックを行います。そのほかの設定によっては、このアクティビティによってログファイルのサイズが急激に増大する可能性があります。このアクティビティを記録する必要がない場合は、SERVER_AUDIT_EXCL_USERS リストに ユーザーを追加します。

SERVER_AUDIT_LOGGING

ON

ON

ログ記録がアクティブです。唯一の有効な値は ON です。Amazon RDS では、ログ記録の非アクティブ化はサポートしていません。ログ記録を非アクティブ化する場合は、MariaDB 監査プラグインを削除します。詳細については、「MariaDB 監査プラグインの削除」を参照してください。

MariaDB 監査プラグインの追加

MariaDB 監査プラグインを DB インスタンスに追加する一般的な手順は以下のとおりです。

  • 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更する

  • オプショングループにオプションを追加する

  • オプショングループを DB インスタンスに関連付ける

MariaDB 監査プラグインを追加した後で、DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、直ちに監査が開始されます。

MariaDB 監査プラグインを追加するには

  1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。それ以外の場合は、カスタム DB オプショングループを作成します。[Engine] で [mysql] を選択し、[Major Engine Version] で [5.6]、[5.7]、またはそれ以降を選択します。詳細については、「オプショングループを作成する」を参照してください。

  2. オプショングループに [MARIADB_AUDIT_PLUGIN] オプションを追加し、オプションを設定します。オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。各設定の詳細については、「監査プラグインのオプション設定」を参照してください。

  3. 新規または既存の DB インスタンスに、DB オプショングループを適用します。

MariaDB 監査プラグインのログの表示とダウンロード

MariaDB 監査プラグインを有効にした後は、他のテキストベースのログファイルと同様の方法でログファイル内の結果にアクセスします。監査ログログファイルは /rdsdbdata/log/audit/ にあります。コンソールでログファイルを表示する方法の詳細については、「データベースログファイルを閲覧および一覧表示する」を参照してください。ログファイルのダウンロードについては、「データベースログファイルをダウンロードする」を参照してください。

MariaDB 監査プラグインの設定の変更

MariaDB 監査プラグインを有効にした後、設定を変更できます。オプション設定の変更方法の詳細については、「オプションの設定を変更する」を参照してください。各設定の詳細については、「監査プラグインのオプション設定」を参照してください。

MariaDB 監査プラグインの削除

Amazon RDS では、MariaDB 監査プラグインのログ記録の無効化はサポートされていません。ただし、DB インスタンスからプラグインを削除することはできます。MariaDB 監査プラグインを削除した後、DB インスタンスを再起動して監査を停止する必要があります。

MariaDB 監査プラグインを DB インスタンスから削除するには、次のいずれかを実行します。

  • MariaDB 監査プラグインが所属するオプショングループからプラグインを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「オプショングループからオプションを削除する」を参照してください。

  • DB インスタンスを修正して、プラグインが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「MySQL データベースエンジンを実行する DB インスタンスの変更」を参照してください。