Amazon RDS での MySQL
Amazon RDS では、MySQL の複数のバージョンを実行する DB インスタンスがサポートされています。以下のメジャーバージョンを使用できます。
MySQL 8.0
MySQL 5.7
MySQL 5.6 (2022 年 2 月 1 日に非推奨化を予定)
マイナーバージョンのサポートの詳細については、「Amazon RDS での MySQL のバージョン」を参照してください。
まず、Amazon RDS の管理ツールまたはインターフェイスを使用して Amazon RDS for MySQL DB インスタンスを作成します。その後、DB インスタンスのサイズ変更、DB インスタンスへの接続の許可、バックアップやスナップショットの作成やそれらからの復元、マルチ AZ セカンダリの作成、リードレプリカの作成、DB インスタンスのパフォーマンスのモニタリングが可能になります。スタンダード的な MySQL のユーティリティとアプリケーションを使用して、DB インスタンスに対してデータを保存したりデータにアクセスしたりします。
Amazon RDS for MySQL は、多くの業界スタンダードに準拠しています。例えば、RDS for MySQL データベースを使用して、HIPAA 準拠のアプリケーションを構築し、AWS との事業提携契約 (BAA) に基づき、保護医療情報 (PHI) などの医療関連情報を保存できます。Amazon RDS for MySQL は、AWS GovCloud (US) リージョンにおいて、Federal Risk and Authorization Management Program (FedRAMP) のセキュリティ要件を満たしており、FedRAMP Joint Authorization Board (JAB) から Provisional Authority to Operate (P-ATO) の FedRAMP HIGH ベースラインでの認定を受けています。サポートされるコンプライアンススタンダードの詳細については、AWS クラウドコンプライアンス
MySQL のバージョン別の機能の詳細については、MySQL ドキュメントの「MySQL の主な機能
Amazon RDS for MySQL の一般的な管理タスク
RDS for MySQL DB インスタンスで実行する一般的な管理タスクと、各タスクの関連ドキュメントへのリンクを以下に示します。
タスク領域 | 関連資料 |
---|---|
Amazon RDS を理解する DB インスタンス、AWS リージョン、アベイラビリティーゾーン、セキュリティグループ、パラメータグループ、オプショングループなど、Amazon RDS の主要コンポーネントについて解説します。 |
|
Amazon RDS を初めてセットアップして使う Amazon Web Services (AWS) で MySQL DB インスタンスを作成できるように、Amazon RDS をセットアップします。 |
|
Amazon RDS DB インスタンスを理解する AWS で実行する仮想 MySQL サーバーインスタンスを作成します。DB インスタンスは Amazon RDS の構成要素であるため、その原則を理解してください。 |
|
本稼働用の DB インスタンスの作成 本稼働用の DB インスタンスを作成します。インスタンスの作成には、適切な処理能力とメモリ容量を備えた DB インスタンスクラスを選択することと、データベースの想定される使用方法をサポートするストレージタイプを選択することが含まれます。 |
|
DB インスタンスのセキュリティの管理 デフォルトでは、DB インスタンスが作成されると、アクセスを禁止するファイアウォールが設定されます。DB インスタンスにアクセスするために、正しい IP アドレスとネットワーク構成を備えたセキュリティグループを作成する必要があります。AWS Identity and Access Management (IAM) ポリシーを使用してアクセス許可を割り当てることで、RDS リソースの管理を許可するユーザーを指定することもできます。 |
|
DB インスタンスへの接続 MySQL コマンドラインユーティリティや MySQL Workbench などのスタンダードの SQL クライアントアプリケーションを使用して DB インスタンスに接続します。 |
|
本稼働 DB インスタンスの高可用性の設定 別のアベイラビリティーゾーンにおけるスタンバイの同期レプリケーション、自動フェイルオーバー、マルチ AZ 配置を使用する DB インスタンスの耐障害性、およびリードレプリカで高可用性を提供します。 |
|
Amazon Virtual Private Cloud での DB インスタンスの設定 Amazon VPC サービスで Virtual Private Cloud (VPC) を設定します。Amazon VPC は、他の AWS の仮想ネットワークから論理的に隔離された仮想ネットワークです。 |
|
MySQL データベースの特定のパラメータと機能の設定 多数の DB インスタンスと関連付けることができるパラメータグループを使用して MySQL データベースの特定のパラメータを設定します。また、多数の DB インスタンスと関連付けることができるオプショングループを使用して MySQL データベースの特定の機能を設定することもできます。 |
|
MySQL データベースエンジンを実行する DB インスタンスの変更 ストレージの追加や DB インスタンスクラスの変更などのタスクを完了するために、DB インスタンスの設定を変更します。 |
|
データベースのバックアップと復元の設定 DB インスタンスを設定して自動バックアップを作成します。完全バックアップファイルを使用して、データベースを手動でバックアップおよび復元することもできます。 |
|
データのインポートとエクスポート 他の MySQL DB インスタンス、Amazon RDS の外部で動作する MySQL インスタンス、およびその他の種類のデータソースからデータをインポートし、Amazon RDS の外部で動作する MySQL インスタンスにデータをエクスポートします。 |
|
MySQL DB インスタンスのモニタリング Amazon CloudWatch RDS メトリクス、イベント、および拡張モニタリングを使用して、MySQL DB インスタンスをモニタリングします。MySQL DB インスタンスのログファイルを確認します。 |
|
データのレプリケーション 同じ AWS リージョンまたは別のリージョンで、MySQL リードレプリカを作成します。ロードバランシング、災害対策、読み取りの多いデータベースワークロードの処理 (分析や報告などの目的) のためにリードレプリカを使用できます。 |
さらに、MySQL DB インスタンスの使用に役立つ情報を以下のセクションで提供しています。
Amazon RDS での MySQL のバージョン
MySQL のバージョン番号は、バージョン = X.Y.Z の形式で記述されています。Amazon RDS の用法では、X.Y はメジャーバージョン番号を、Z はマイナーバージョン番号を示します。Amazon RDS 実装では、メジャーバージョン番号が変更された場合 (—5.7 から 8.0 へなど)、そのバージョン変更はメジャーと考えます。マイナーバージョン番号のみが変更された場合 (—5.7.16 から 5.7.21 へなど)、そのバージョン変更はマイナーと考えます。
Amazon RDS は、現在、MySQL の以下のバージョンをサポートしています。
メジャーバージョン | マイナーバージョン |
---|---|
MySQL 8.0 |
|
MySQL 5.7 |
|
MySQL 5.6 |
|
新しい DB インスタンスを作成するときは、現在サポートされているいずれかの MySQL バージョンを指定できます。メジャーバージョン (MySQL 5.7 など) と、指定したメジャーバージョンでサポートされている任意のマイナーバージョンを指定できます。バージョンを指定しない場合、Amazon RDS では、サポートされているいずれかのバージョン (通常最新のバージョン) がデフォルトで設定されます。マイナーバージョンではなく、メジャーバージョンを指定した場合は、Amazon RDS では、お客様が指定したメジャーバージョンの最新リリースにデフォルトで設定されます。サポートされているバージョンのリストと、新しく作成された DB インスタンスのデフォルトを表示するには、AWS CLI の describe-db-engine-versions
コマンドを使用します。
デフォルトの MySQL バージョンは、AWS リージョンによって異なる場合があります。特定のマイナーバージョンで DB インスタンスを作成するには、DB インスタンスの作成中にマイナーバージョンを指定します。次の AWS コマンドを使用して、AWS CLI リージョンのデフォルトのマイナーバージョンを確認できます。
aws rds describe-db-engine-versions --default-only --engine mysql --engine-version
major-engine-version
--regionregion
--query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text
major-engine-version
をメジャーエンジンバージョンに置き換え、リージョン
を AWS リージョンに置き換えます。例えば、次の AWS CLI コマンドは、5.7 メジャーバージョンの デフォルト MySQL マイナーエンジンバージョンと、米国西部 (オレゴン) AWS リージョン (us-west-2) を返します。
aws rds describe-db-engine-versions --default-only --engine mysql --engine-version 5.7 --region us-west-2 --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text
Amazon RDS を使用して、Amazon RDS でサポートされている新しいメジャーバージョンに MySQL インスタンスをアップグレードするタイミングを制御します。特定の MySQL バージョンとの互換性を維持したり、本番稼動用環境にデプロイする新しいバージョンを事前にアプリケーションでテストしたり、自分のスケジュールに最適なタイミングでメジャーバージョンのアップグレードを実行したりできます。
マイナーバージョンの自動アップグレードを有効にすると、DB インスタンスは Amazon RDS でサポートされる新しい MySQL マイナーバージョンに自動的にアップグレードされます。このパッチ適用は、予定されたメンテナンスウィンドウ内で行われます。DB インスタンスを変更して、マイナーバージョンの自動アップグレードを有効または無効にすることができます。
スケジュールされた自動アップグレードを解除している場合は、サポートされているマイナーバージョンリリースに手動でアップグレードできます。その手順はメジャーバージョンの更新の場合と同じです。詳細については、「DB インスタンスのエンジンバージョンのアップグレード」を参照してください。
Amazon RDS では、現在、MySQL バージョン 5.6 からバージョン 5.7 へ、MySQL バージョン 5.7 からバージョン 8.0 へのメジャーバージョンアップグレードがサポートされています。メジャーバージョンアップグレードは、何らかの互換性のリスクを伴うため、自動的には行われません。DB インスタンスを変更するリクエストを行う必要があります。本稼働インスタンスのアップグレード前に、どのアップグレードも完全にテストする必要があります。MySQL DB インスタンスのアップグレードの詳細については、「MySQL DB エンジンのアップグレード」を参照してください。
DB インスタンスを新しいバージョンに対してテストできます。そのためには、既存の DB インスタンスの DB スナップショットを作成し、DB スナップショットから復元して新しい DB インスタンスを作成した後、その新しい DB インスタンスのバージョンアップグレードをスタートします。その後で、オリジナルの DB インスタンスをアップグレードするかどうかを決める前に、コピーした DB インスタンスで安全性を確かめることができます。
MySQL バージョン 5.6 の廃止
2022 年 2 月 1 日、Amazon RDS は、アップグレードの推奨事項を含め、以下のスケジュールで MySQL 5.6 のサポートを終了する予定です。できるだけ早い時期に、すべての MySQL 5.6 DB インスタンスを、MySQL 5.7 以降にアップグレードすることをお勧めします。詳細については、「MySQL DB エンジンのアップグレード」を参照してください。
アクションまたは推奨事項 | 日付 |
---|---|
MariaDB 5.6 DB インスタンスを選択したバージョンに手動でアップグレードすることをお勧めします。 |
2022 年 2 月 1 日まで |
MariaDB 5.6 スナップショットを選択したバージョンに手動でアップグレードすることをお勧めします。 |
2022 年 2 月 1 日まで |
新しい MySQL 5.6 DB インスタンスを作成することはできません。 既存の MySQL 5.6 DB インスタンスのリードレプリカを作成し、シングル AZ 配置からマルチ AZ 配置に変更することはできます。 |
2022 年 2 月 1 日 |
Amazon RDS は、MySQL 5.6 DB インスタンスのバージョン 5.7 への自動アップグレードをスタートします。 |
2022 年 3 月 1 日 |
Amazon RDS は、スナップショットから復元された MySQL 5.6 DB インスタンスに対して、バージョン 5.7 への自動アップグレードをスタートします。 |
2022 年 3 月 1 日 |
Amazon RDS でサポートされていない MySQL の機能
現在、Amazon RDS では MySQL の以下の機能はサポートされていません。
-
認証用プラグイン
-
システムログへのエラーログ記録
-
グループのレプリケーションプラグイン
-
InnoDB テーブル領域の暗号化
-
パスワード強度用プラグイン
-
永続的システム可変
-
準同期レプリケーション
-
トランスポータブルテーブルスペース
-
X プラグイン
グローバルトランザクション ID は、MySQL 用の RDS 5.7.23 および 5.7 以降のバージョンと、MySQL 8.0.26 および 8.0 以降のバージョンでサポートされています。グローバルトランザクション ID は、MySQL 用の RDS 5.6 ではサポートされていません。
マネージドサービスエクスペリエンスを提供するために、Amazon RDS は DB インスタンスへのシェルアクセスを提供していません。また、高度な特権を必要とする特定のシステムプロシージャやテーブルへのアクセスを制限しています。Amazon RDS は、任意のスタンダード SQL クライアントアプリケーションによる、DB インスタンス上のデータベースへのアクセスがサポートされています。Amazon RDS では、Telnet、Secure Shell (SSH)、または Windows のリモートデスクトップ接続を使用しての、DB インスタンスに対するダイレクトホストアクセスは行えません。DB インスタンスを作成するユーザーには、そのインスタンス上のすべてのデータベースに対する db_owner ロールが割り当てられ、(バックアップ用を除き) すべてのデータベースレベルのアクセス許可が付与されます。バックアップは、Amazon RDS により自動的に実行されます。
RDS for MySQL のサポートされているストレージエンジン
MySQL では、さまざまな機能を備えた複数のストレージエンジンがサポートされていますが、それらのすべてのエンジンが、回復性やデータ耐久性の高いのために最適化されているわけではありません。Amazon RDS は、MySQL DB インスタンス用の、InnoDB ストレージエンジンを完全にサポートしています。Amazon RDS でのポイントインタイムの復元とスナップショット復元機能には、回復可能なストレージエンジンが必要であり、InnoDB ストレージエンジンのみがサポートされています。InnoDB memcached
インターフェイスを使用するには、MySQL 5.6 以降のインスタンスを実行している必要があります。詳細については、「MySQL の memcached サポート」を参照してください。
Federated ストレージエンジンは、現在、Amazon RDS for MySQL ではサポートされていません。
ユーザーが作成したスキーマの場合、MyISAM ストレージエンジンでは、信頼性の高い回復がサポートされておらず、エンジンの回復後に MySQL が再起動したとき、ポイントインタイム復元またはスナップショット復元が意図したとおりに機能せず、データが紛失または破損する場合があります。それでも Amazon RDS で MyISAM を使用する場合は、スナップショットがいくつかの条件下で役立つことがあります。
mysql
スキーマのシステムテーブルを MyISAM ストレージにできます。
既存の MyISAM テーブルを InnoDB テーブルに変換する場合、ALTER TABLE
コマンド (例: alter table TABLE_NAME engine=innodb;
) を使用できます。MyISAM と InnoDB の長所と短所は異なっているため、アプリケーションで切り替えた際の影響を切り替え前に十分に評価しておく必要があることを念頭に置いてください。
MySQL 5.1 および 5.5 は、Amazon RDS でサポートされなくなりました。ただし、既存の MySQL 5.1 および 5.5 スナップショットは復元できます。MySQL 5.1 または 5.5 スナップショットを復元すると、DB インスタンスが MySQL 5.6 に自動的にアップグレードされます。
Amazon RDS for MySQL のストレージ全体の動作
MySQL DB インスタンスのストレージがいっぱいになると、メタデータの不一致、ディクショナリの不一致、孤立テーブルが発生する可能性があります。これらの問題を回避するために、Amazon RDS は storage-full
状態に達する DB インスタンスを自動的に停止します。
MySQL DB インスタンスは、次の場合に storage-full
状態に達します。
-
DB インスタンスのストレージは 20,000 MiB 未満で、使用可能なストレージは 200 MiB 以下です。
-
DB インスタンスのストレージは 102,400 MiB 超で、使用可能なストレージは 1024 MiB 以下です。
-
DB インスタンスのストレージは 20,000 MiB~102,400 MiB で、使用可能なストレージの 1% 未満です。
DB インスタンスが storage-full
状態に達したために Amazon RDS がそのインスタンスを自動的に停止した後でも、そのインスタンスを変更できます。DB インスタンスを再起動するには、次のうち少なくとも 1 つを実行します。
-
DB インスタンスを変更して、ストレージのオートスケーリングを有効にします。
ストレージのオートスケーリングの詳細については、Amazon RDS ストレージの自動スケーリングによる容量の自動管理 を参照してください。
-
ストレージ容量を増やすには、DB インスタンスを変更します。
ストレージ容量の引き上げの詳細については、DB インスタンスストレージの容量を増加する を参照してください。
これらの変更のいずれかを行うと、DB インスタンスは自動的に再起動します。DB インスタンスの変更については、Amazon RDS DB インスタンスを変更するを参照してください。
Amazon RDS での MySQL のセキュリティ
MySQL DB インスタンスのセキュリティは以下の 3 つのレベルで管理されます。
-
AWS Identity and Access Management では、どのユーザーが DB インスタンスに対して Amazon RDS の管理アクションを実行できるかを制御します。IAM 認証情報を使用して AWS に接続している場合、IAM アカウントには、Amazon RDS の管理オペレーションを実行するためのアクセス許可を付与する IAM ポリシーが必要です。詳細については、「Amazon RDS での Identity and Access Management」を参照してください。
-
DB インスタンスを作成するときは、VPC セキュリティグループまたは DB セキュリティグループのいずれかを使用して、どのデバイスまたは Amazon EC2 インスタンスが DB インスタンスのエンドポイントとポートへの接続を開くことができるかを制御します。これらの接続は、Secure Sockets Layer (SSL) を使用して作成できます。さらに、会社のファイアウォールルールでも、社内のどのデバイスが DB インスタンスへの接続を開くことができるかを制御できます。
-
MySQL DB インスタンスに対するログインとアクセス権限を認証するには、次の方法のいずれか、または組み合わせて行います。
MySQL のスタンドアロンインスタンスと同じ方法を使用することもできます。
CREATE USER
、RENAME USER
、GRANT
、REVOKE
、SET PASSWORD
などのコマンドは、オンプレミスデータベースでの方法と同様に、データベーススキーマテーブルを直接変更します。詳細については、MySQL ドキュメントの「Access Control and Account Management」を参照してください。 IAM データベース認証を使用することもできます。IAM データベース認証を使用する場合は、IAM ユーザーまたは IAM ロールおよび認証トークンを使用して、DB インスタンスを認証します。認証トークン は、署名バージョン 4 の署名プロセスを使用して生成されている一意の値です。IAM データベース認証では、同一の認証情報を使用して AWS リソースおよびデータベースへのアクセスを制御できます。詳細については、「MariaDB、MySQL、および PostgreSQL の IAM データベース認証」を参照してください。
Amazon RDS DB インスタンスを作成すると、マスターユーザーには以下のデフォルト権限が付与されます。
alter
alter routine
create
create routine
create temporary tables
create user
create view
delete
drop
event
execute
grant option
index
insert
lock tables
process
references
replication client
replication slave (MySQL 5.6 and later)
select
show databases
show view
trigger
update
DB インスタンスのマスターユーザーを削除できますが、お勧めしません。マスターユーザーを再作成するには、ModifyDBInstance RDS API オペレーションまたは modify-db-instance AWS CLI コマンドを使用して、新しいマスターユーザーのパスワードを該当するパラメータで指定します。インスタンスに既存のマスターユーザーがない場合、指定したパスワードを使用してマスターユーザーが作成されます。
各 DB インスタンスに管理サービスを提供するために、DB インスタンスの作成時に rdsadmin
ユーザーが作成されます。rdsadmin
アカウントの権限をドロップ、名前変更、パスワード変更、または変更しようとするとエラーになります。
DB インスタンスの管理を可能にするために、スタンダード的なコマンド kill
と kill_query
の使用は制限されています。代わりに、Amazon RDS のコマンド rds_kill
と rds_kill_query
が用意されており、DB インスタンスでのエンドユーザーセッションやクエリを終了させるために使用できます。
パスワード検証プラグインを使用する
MySQL では、セキュリティを高めるための validate_password
プラグインが提供されています。このプラグインでは、MySQL DB インスタンスの DB パラメータグループでパラメータを使用してパスワードポリシーを適用します。プラグインは、MySQL バージョン 5.6、5.7、および 8.0 を実行している DB インスタンスでサポートされています。validate_password
プラグインの詳細については、MySQL ドキュメントの「パスワード検証プラグイン
MySQL DB インスタンスの validate_password プラグインを有効にするには
-
MySQL DB インスタンスに接続し、次のコマンドを実行します。
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
-
DB インスタンスで使用される DB パラメータグループでプラグインのパラメータを設定します。
パラメータの詳細については、MySQL ドキュメントの「パスワード検証プラグインオプションおよび可変
」を参照してください。 DB インスタンスのパラメータの変更の詳細については、「DB パラメータグループのパラメータの変更」を参照してください。
password_validate
プラグインをインストールして有効にしたら、新しい検証ポリシーに準拠するように、既存のパスワードをリセットします。
Amazon RDS では、パスワードは検証されません。MySQL DB インスタンスでは、パスワード検証が実行されます。AWS Management Console、modify-db-instance
AWS CLI コマンド、または ModifyDBInstance
RDS API オペレーションでユーザーパスワードを設定する場合は、パスワードがパスワードポリシーに準拠していなくても、変更することができます。ただし、新しいパスワードは、パスワードポリシーに準拠している場合にのみ、MySQL DB インスタンスに設定されます。この場合、Amazon RDS は、次のイベントを記録します。
"RDS-EVENT-0067" - An attempt to reset the master password for the DB instance has failed.
Amazon RDS イベントの詳細については、「Amazon RDS イベント通知の操作」を参照してください。
MySQL DB インスタンスで SSL を使用する
Amazon RDS では、MySQL データベースエンジンを実行する DB インスタンスとの Secure Sockets Layer (SSL) 接続がサポートされています。
Amazon RDS によって、Amazon RDS によるインスタンスのプロビジョニング時、SSL 証明書が作成され、DB インスタンスにインストールされます。これらの証明書は認証局によって署名されます。SSL 証明書には、なりすまし攻撃から保護するために、SSL 証明書の共通名 (CN) として DB インスタンスのエンドポイントが含まれています。
Amazon RDS によって作成された SSL 証明書は信頼されたルートエンティティであり、ほとんどの場合は使用できますが、アプリケーションが証明書チェーンを受け入れていない場合は使用できない可能性があります。アプリケーションが証明書チェーンを受け入れていない場合は、AWS リージョンに接続している中間証明書の使用が必要になる場合があります。例えば、SSL を使用して AWS GovCloud (US) リージョンに接続するには、中間証明書を使用する必要があります。
証明書のダウンロードについては、SSL/TLS を使用した DB インスタンスへの接続の暗号化 を参照してください。MySQL での SSL の使用の詳細については、「新しい SSL/TLS 証明書を使用して MySQL DB インスタンスに接続するようにアプリケーションを更新する」を参照してください。
MySQL は以下のバージョンで安全な接続のため yaSSL を使用します。
-
MySQL バージョン 5.7.19 および 5.7 以前のバージョン
-
MySQL バージョン 5.6.37 および 5.6 以前のバージョン
MySQL は以下のバージョンで安全な接続のため OpenSSL を使用します。
-
MySQL バージョン 8.0
-
MySQL バージョン 5.7.21 以降の 5.7 バージョン
-
MySQL バージョン 5.6.39 以降の 5.6 バージョン
Amazon RDS for MySQL は Transport Layer Security (TLS) バージョン 1.0、1.1、1.2 をサポートしています。次の表は、MySQL バージョンの TLS サポートを示しています。
MySQL のバージョン | TLS 1.0 | TLS 1.1 | TLS 1.2 |
---|---|---|---|
MySQL 8.0 |
サポート対象 |
サポート対象 |
サポート対象 |
MySQL 5.7 |
サポート対象 |
サポート対象 |
MySQL 5.7.21 以降でサポートされます |
MySQL 5.6 |
サポート対象 |
MySQL 5.6.46 以降でサポートされます |
MySQL 5.6.46 以降でサポートされます |
デフォルトの mysql
クライアントを使用して接続を暗号化するには、以下の例のように、--ssl-ca
パラメータを使用して mysql クライアントを起動し、公開鍵を参照します。
次の例は、MySQL 5.7 以降で --ssl-ca
パラメータを使用してクライアントを起動する方法を示しています。
mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=
[full path]
global-bundle.pem --ssl-mode=VERIFY_IDENTITY
次の例は、MySQL 5.6 以前で --ssl-ca
パラメータを使用してクライアントを起動する方法を示しています。
mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=
[full path]
global-bundle.pem --ssl-verify-server-cert
証明書バンドルのダウンロードについては、「SSL/TLS を使用した DB インスタンスへの接続の暗号化」 を参照してください。
特定のユーザーアカウントに対して SSL 接続を要求できます。例えば、MySQL バージョンに応じて以下のいずれかのステートメントを使用し、ユーザーアカウント encrypted_user
に対する SSL 接続を要求できます。
MySQL 5.7 以降では、次の文を使用します。
ALTER USER 'encrypted_user'@'%' REQUIRE SSL;
MySQL 5.6 以前では、次の文を使用します。
GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;
MySQL での SSL 接続の詳細については、MySQL ドキュメントで「暗号化された接続の使用
MySQL での memcached およびその他のオプションの使用
ほとんどの Amazon RDS DB エンジンでは、DB インスタンスの追加機能を選択できる、オプショングループをサポートしています。MySQL バージョン 5.6 以降の DB インスタンスは、シンプルなキーベースのキャッシュである memcached
オプションをサポートします。memcached
およびその他のオプションの詳細については、「MySQL DB インスタンスのオプション」を参照してください。オプショングループの操作方法の詳細については、「オプショングループを使用する」を参照してください。
InnoDB キャッシュウォームアップ
InnoDB キャッシュウォームアップでは、DB インスタンスがシャットダウンされたときのバッファープールの最新の状態を保存し、DB インスタンスが起動されたときに保存された情報からバッファープールを再ロードすることによって、MySQL DB インスタンスのパフォーマンスを向上させることができます。これにより、通常のデータベースの使用からバッファープールを「ウォームアップする」必要がなくなり、既知の一般的なクエリのページを使用してバッファープールを事前にロードします。保存されたバッファープール情報を格納するファイルには、バッファープールのページ自体ではなく、バッファープール内のページのメタデータのみが格納されます。そのため、このファイルは多くのストレージ領域を必要としません。ファイルサイズは、キャッシュサイズの約 0.2% となります。例えば、64 GiB のキャッシュでは、キャッシュのウォームアップファイルのサイズは 128 MiB です。InnoDB キャッシュウォームアップの詳細については、MySQL ドキュメントの「バッファプールの状態の保存とリストア
Amazon RDS での MySQL は、MySQL バージョン 5.6 以降の InnoDB キャッシュウォームアップをサポートします。InnoDB キャッシュウォームアップを有効にするには、DB インスタンスのパラメータグループで innodb_buffer_pool_dump_at_shutdown
および innodb_buffer_pool_load_at_startup
パラメータを 1 に設定します。パラメータグループのこれらのパラメータ値を変更すると、パラメータグループを使用するすべての MySQL DB インスタンスに影響します。特定の MySQL DB インスタンスの InnoDB キャッシュウォームアップを有効にするには、それらのインスタンスの新しいパラメータグループを作成することが必要になる場合があります。パラメータグループについては、「パラメータグループを使用する」を参照してください。
InnoDB キャッシュウォームアップは、主に、スタンダードストレージを使用している DB インスタンスにパフォーマンス上のメリットをもたらします。PIOPS ストレージを使用する場合、一般的に大きなパフォーマンス上のメリットは見られません。
フェイルオーバー時など、MySQL DB インスタンスが正常にシャットダウンしなかった場合、バッファープールの状態はディスクに保存されません。この場合、DB インスタンスが再開されるときに、MySQL は利用可能なバッファープールファイルをロードします。特に害はありませんが、復元されたバッファープールは、再開前のバッファープールの最新の状態を反映していない可能性があります。起動時に InnoDB キャッシュをウォームアップするために、バッファープールの最新の状態が利用できるようにするには、定期的に「オンデマンド」でバッファープールをダンプすることをお勧めします。DB インスタンスが MySQL バージョン 5.6.19 以降を実行している場合、バッファープールをオンデマンドでダンプまたはロードできます。
自動で定期的にバッファープールをダンプするイベントを作成できます。例えば、次のステートメントは、1 時間ごとにバッファープールをダンプする periodic_buffer_pool_dump
という名前のイベントを作成します。
CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();
MySQL のイベントの詳細については、MySQL ドキュメントの「イベントの構文
オンデマンドでのバッファープールのダンプとロード
MySQL バージョン 5.6.19 以降の場合、InnoDB キャッシュを「オンデマンド」で保存およびロードできます。
バッファープールの現在の状態をディスクにダンプするには、mysql.rds_innodb_buffer_pool_dump_now ストアドプロシージャを呼び出します。
バッファープールの保存された状態をディスクからロードするには、mysql.rds_innodb_buffer_pool_load_now ストアドプロシージャを呼び出します。
進行中のロードオペレーションをキャンセルするには、mysql.rds_innodb_buffer_pool_load_abort ストアドプロシージャを呼び出します。
MySQL DB インスタンスのローカルタイムゾーン
デフォルトでは、MySQL DB インスタンスのタイムゾーンは協定世界時 (UTC) です。代わりに、DB インスタンスのタイムゾーンをアプリケーションのローカルタイムゾーンに設定できます。
DB インスタンスのローカルタイムゾーンを設定するには、DB インスタンスのパラメータグループの time_zone
パラメータを、このセクションで後述するサポートされている値のいずれかに設定します。パラメータグループの time_zone
パラメータを設定すると、そのパラメータグループを使用しているすべての DB インスタンスとリードレプリカは、新しいローカルタイムゾーンを使用するように変更されます。パラメータグループのパラメータの設定については、「パラメータグループを使用する」を参照してください。
ローカルタイムゾーンを設定した後、データベースへのすべての新しい接続にその変更が反映されます。ローカルタイムゾーンを変更するときにデータベースへの接続を開いている場合、その接続を閉じて新しい接続を開くまで、ローカルタイムゾーンは更新されません。
DB インスタンスとそのリードレプリカには異なるローカルタイムゾーンを設定できます。そのためには、DB インスタンスとレプリカに異なるパラメータグループを使用し、各パラメータグループの time_zone
パラメータを異なるローカルタイムゾーンに設定します。
AWS リージョン間のレプリケーションを実行する場合は、ソース DB インスタンスとリードレプリカに異なるパラメータグループ (パラメータグループは AWS リージョンに固有のもの) を使用します。各インスタンスに同じローカルタイムゾーンを使用するには、インスタンスとリードレプリカのパラメータグループの time_zone
パラメータを設定する必要があります。
DB スナップショットから DB インスタンスを復元すると、ローカルタイムゾーンが UTC に設定されます。復元が完了したら、タイムゾーンをローカルタイムゾーンに更新できます。DB インスタンスをある時点まで復元する場合、復元された DB インスタンスのローカルタイムゾーンは、復元された DB インスタンスのパラメータグループに設定されているタイムゾーンです。
ローカルタイムゾーンは以下のいずれかの値に設定できます。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Amazon RDS for MySQL の既知の問題と制限
Amazon RDS for MySQL で MySQL を使用する際の既知の問題と制限は、以下のとおりです。詳細については、「Amazon RDS for MySQL の既知の問題と制限」を参照してください。
Amazon RDS for MySQL の非推奨バージョン
Amazon RDS for MySQL バージョン 5.1 および 5.5 は非推奨です。
MySQL の Amazon RDS 廃止ポリシーについては、「Amazon RDS についてのよくある質問