Amazon RDS からの推奨事項のリファレンス - Amazon Relational Database Service

Amazon RDS からの推奨事項のリファレンス

Amazon RDS では、リソースが作成または変更されると、リソースの推奨事項が生成されます。次の表に、Amazon RDS からの推奨事項の例を示します。

説明 推奨事項 ダウンタイムが必要 追加情報

マグネティックボリュームが使用中です

DB インスタンスはマグネティックストレージを使用しています。ほとんどの DB インスタンスには、マグネティックストレージは推奨されません。別のストレージタイプとして、汎用 (SSD) またはプロビジョンド IOPS を選択してください。

別のストレージタイプとして、汎用 (SSD) またはプロビジョンド IOPS を選択してください。

あり

Amazon EC2 ドキュメントの旧世代のボリューム

リソースの自動バックアップは無効になっています

自動バックアップは DB インスタンスに対して有効ではありません。DB インスタンスのポイントインタイムリカバリを可能にするため、自動バックアップが推奨されます。

最大 14 日間の保存期間で自動バックアップを有効にします。

あり

自動バックアップの有効化

AWS データベースブログの「 Amazon RDS バックアップストレージコストの説明

エンジンのマイナーバージョンアップグレードが必要です

データベースリソースで最新のマイナー DB エンジンバージョンが実行されていません。最新のマイナーバージョンには、最新のセキュリティ修正プログラムやその他の改善が含まれています。

最新のエンジンバージョンにアップグレードします。

あり

DB インスタンスのエンジンバージョンのアップグレード

拡張モニタリングは無効になっています

データベースリソースでは拡張モニタリングが有効になっていません。拡張モニタリングにより、モニタリングとトラブルシューティングのためのリアルタイムのオペレーティングシステムメトリクスが提供されます。

Enhanced monitoring] を有効にします。

なし

拡張モニタリングを使用した OS メトリクスのモニタリング

ストレージの暗号化は無効になっています。

Amazon RDS では、AWS Key Management Service (AWS KMS) で管理しているキーを使用して、すべてのデータベースエンジンの保存時の暗号化をサポートしています。Amazon RDS 暗号化を使用するアクティブな DB インスタンスでは、ストレージに保存されているデータは、自動バックアップ、リードレプリカ、スナップショットのように暗号化されます。

DB インスタンスの作成時に暗号化が有効になっていない場合は、暗号化を有効にする前に、DB インスタンスの復号化されたスナップショットの暗号化されたコピーを作成および復元する必要があります。

DB インスタンスの保管中のデータの暗号化を有効にします。

あり

Amazon RDS でのセキュリティ

Amazon RDS の DB スナップショットのコピー

Performance Insights は無効になっている

Performance Insights では、DB インスタンスの負荷をモニタリングし、データベースパフォーマンスの問題の分析と解決をサポートします。Performance Insights を有効にすることをお勧めします。

Performance Insights をオンにします。

なし

Amazon RDS での Performance Insights を使用したDB 負荷のモニタリング

DB インスタンスのストレージの自動スケーリングが無効になっている

DB インスタンスのストレージ自動スケーリングが有効になっていません。RDS ストレージの自動スケーリングは、データベースのワークロードが増加したときに、ダウンタイムなしでストレージ容量を自動的にスケーリングします。

指定した最大ストレージしきい値で Amazon RDS ストレージ自動スケーリングを有効にします

なし

Amazon RDS ストレージの自動スケーリングによる容量の自動管理

RDS リソースのメジャーバージョンの更新が必須

DB エンジンの、現行メジャーバージョンのデータベースはサポートされません。新しい機能や拡張機能を含む最新のメジャーバージョンにアップグレードすることをお勧めします。

DB エンジンを最新のメジャーバージョンにアップグレードします。

あり

DB インスタンスのエンジンバージョンのアップグレード

データベース更新のために Amazon RDS ブルー/グリーンデプロイを使用する

RDS リソースのインスタンスクラスの更新が必須

DB インスタンスは、旧世代の DB インスタンスクラスで実行されています。旧世代の DB インスタンスクラスは、コスト、パフォーマンス、またはその両方が向上した DB インスタンスクラスに置き換えられました。DB インスタンスには、新しい世代の DB インスタンスクラスを使用して実行することをお勧めします。

DB インスタンスクラスをアップグレードします。

あり

DB インスタンスクラスでサポートされている DB エンジン

ライセンス付きのサポート終了エンジンエディションを使用する RDS リソース

現在のライセンスサポートを継続するには、メジャーバージョンを Amazon RDS がサポートする最新のエンジンバージョンにアップグレードすることをお勧めします。データベースのエンジンバージョンは、現在のライセンスではサポートされません。

ライセンスモデルを引き続き使用するには、データベースを Amazon RDS でサポートされている最新バージョンにアップグレードすることをお勧めします。

あり

Oracle のメジャーバージョンのアップグレード

DB インスタンスがマルチ AZ 配置を使用していない

マルチ AZ 配置を使用することをお勧めします。マルチ AZ 配置により、DB インスタンスの可用性と耐久性が向上します。

影響を受ける DB インスタンスにマルチ AZ を設定します。

なし

この変更時にダウンタイムは発生しません。ただし、パフォーマンスに影響する可能性があります。詳細については、「Amazon RDS の DB インスタンスをマルチ AZ 配置に変換する」を参照してください。

Amazon RDS マルチ AZ の料金

DB のメモリパラメータがデフォルトと異なる

DB インスタンスのメモリパラメータがデフォルト値と大きく異なります。これらの設定はパフォーマンスに影響が及び、エラーの原因となる可能性があります。

DB インスタンスのカスタムメモリパラメータを、DB パラメータグループのデフォルト値に再設定することをお勧めします。

メモリパラメータをデフォルト値にリセットします。

なし

Amazon RDS for MySQL のパラメータを設定するためのベストプラクティス (AWS データベースブログ)

最適値未満を使用する InnoDB_Change_Buffering パラメータ

変更バッファリングでは、MySQL DB インスタンスは、セカンダリインデックスを維持するために必要ないくつかの書き込みを延期することができます。この機能は、低速ディスクを使用する環境で有効でした。バッファリング設定を変更することで DB のパフォーマンスはわずかに向上しましたが、クラッシュリカバリの遅延やアップグレード中のシャットダウン時間の増加の原因となりました。

DB パラメータグループの InnoDB_Change_Buffering パラメータを 1 に設定します。

なし

Amazon RDS for MySQL のパラメータを設定するためのベストプラクティス (AWS データベースブログ)

Amazon RDS クエリキャッシュパラメータは有効になっている

変更によってクエリキャッシュの削除が必要になった場合、DB インスタンスは停止しているように見えます。通常ワークロードでは、クエリキャッシュのメリットは得られません。クエリキャッシュは、MySQL バージョン 8.0 から削除されました。query_cache_type パラメータを 0 に設定することをお勧めします。

DB パラメータグループの query_cache_type パラメータを 0 に設定します。

あり

Amazon RDS for MySQL のパラメータを設定するためのベストプラクティス (AWS データベースブログ)

log_output パラメータが table に設定されている

log_outputTABLE に設定されている場合、log_outputFILE に設定されている場合よりも多くのストレージが使用されます。ストレージサイズの制限に達しないように、パラメーターを FILE に設定することをお勧めします。

DB パラメータグループの log_output パラメータを FILE に設定します。

なし

MySQL データベースのログファイル

パラメータグループで huge pages が使用されない

Large pages はデータベースのスケーラビリティを高めることができますが、DB インスタンスは Large pages を使用していません。DB インスタンスの DB パラメータグループで、use_large_pages パラメータを ONLY に設定することをお勧めします。

DB パラメータグループの use_large_pages パラメータを ONLY に設定します。

あり

サポートされている RDS for Oracle インスタンスで HugePages をオンにする

autovacuum パラメータがオフになっている

DB インスタンスの自動バキュームパラメータは無効になっています。自動バキュームを無効にすると、テーブルとインデックスが肥大化し、パフォーマンスに影響します。

DB パラメータグループの自動バキュームを有効にすることをお勧めします。

DB パラメータグループの自動バキュームパラメータを有効にしてください。

なし

AWS データベースブログの「Amazon RDS for PostgreSQL 環境における自動バキュームについて

synchronous_commit パラメータがオフになっている

synchronous_commit パラメータを無効にすると、データベースのクラッシュでデータが失われる可能性があります。データベースの耐久性が危険にさらされます。

synchronous_commit パラメータをオンにすることをお勧めします。

DB パラメータグループの synchronous_commit パラメータを有効にします。

あり

AWS データベースブログの「 Amazon Aurora PostgreSQL パラメータ: データベースブログの「レプリケーション、セキュリティ、ログ記録

track_counts パラメータがオフになっている

track_counts パラメータが無効の場合、データベースはデータベースアクティビティ統計を収集しません。自動バキュームでは、これらの統計が正しく機能する必要があります。

track_counts パラメータを 1 に設定することをお勧めします。

track_counts パラメータを 1 に設定します。

なし

PostgreSQL のランタイム統計

enable_indexonlyscan パラメータがオフになっている

クエリプランナーまたはオプティマイザーは、インデックスのみのスキャン計画タイプが無効になっている場合は使用できません。

enable_indexonlyscan パラメータ値を 1 に設定することをお勧めします。

enable_indexonlyscan パラメータ値を 1 に設定します。

なし

PostgreSQL のプランナーメソッド設定

enable_indexscan パラメータがオフになっている

クエリプランナーまたはオプティマイザーは、インデックスのみのスキャン計画タイプが無効になっている場合は使用できません。

enable_indexscan 値を 1 に設定することをお勧めします。

enable_indexscan パラメータ値を 1 に設定します。

なし

PostgreSQL のプランナーメソッド設定

innodb_flush_log_at_trx パラメータがオフになっている

DB インスタンスの innodb_flush_log_at_trx パラメータの値は安全ではありません。このパラメータは、ディスクへのコミット操作の持続性を制御します。

innodb_flush_log_at_trx パラメータを 1 に設定することをお勧めします。

innodb_flush_log_at_trx パラメータ値を 1 に設定します。

なし

Amazon RDS for MySQL のパラメータを設定するためのベストプラクティス (AWS データベースブログ)

sync_binlog パラメータがオフになっている

DB インスタンスでトランザクションのコミットが確認される前には、バイナリログのディスクへの同期は実行されません。

sync_binlog パラメータ値を 1 に設定することをお勧めします。

sync_binlog パラメータ値を 1 に設定します。

なし

AWS データベースブログのAmazon RDS for MySQL のレプリケーションパラメータを設定するためのベストプラクティス

innodb_stats_persistent パラメータがオフになっている

DB インスタンスは、InnoDB 統計をディスクに保持するように設定されていません。統計が保存されていない場合は、インスタンスが再起動してテーブルにアクセスするたびに再計算されます。これにより、クエリ実行プランにばらつきが生じます。このグローバルパラメータの値はテーブルレベルで変更できます。

innodb_stats_persistent パラメータ値を ON に設定することをお勧めします。

innodb_stats_persistent パラメータ値を ON に設定します。

なし

Amazon RDS for MySQL のパラメータを設定するためのベストプラクティス (AWS データベースブログ)

innodb_open_files パラメータが低い

innodb_open_files パラメータは、InnoDB が一度に開くことができるファイル数を制御します。InnoDB は、mysqld の実行時にすべてのログファイルとシステムテーブルスペースファイルを開きます。

お使いの DB インスタンスは、InnoDB が一度に開くことができる最大ファイル数の値が低くなっています。innodb_open_files パラメータを少なくとも 65 に設定することをお勧めします。

innodb_open_files パラメータを最小値の 65 に設定します。

あり

MySQL 用の InnoDB オープンファイル

max_user_connections パラメータが低い

DB インスタンスは、各データベースアカウントの最大同時接続数の値が低くなっています。

max_user_connections パラメータを 5 より大きい数に設定することをお勧めします。

max_user_connections パラメータの値を 5 より大きい数にします。

あり

MySQL のアカウントリソース制限の設定

リードレプリカは書き込み可能モードで開かれている

DB インスタンスには書き込み可能モードのリードレプリカがあり、クライアントからの更新が可能です。

リードレプリカが書き込み可能モードにならないように、read_only パラメータを TrueIfReplica に設定することをお勧めします。

read_only パラメータ値を TrueIfReplica に設定します。

なし

AWS データベースブログのAmazon RDS for MySQL のレプリケーションパラメータを設定するためのベストプラクティス

innodb_default_row_format パラメータ設定が安全ではない

DB インスタンスで既知の問題が発生しました: MySQL バージョン 8.0.26 よりも前のバージョンで、row_formatCOMPACT または REDUNDANT に設定して作成されたテーブルは、インデックスが 767 バイトを超えるとアクセスできなくなり、回復できなくなります。

innodb_default_row_format パラメータ値を DYNAMIC に設定することをお勧めします。

innodb_default_row_format パラメータ値を DYNAMIC に設定します。

なし

MySQL 8.0.26 での変更

general_logging パラメータがオンになっている

DB インスタンスの一般ログ記録が有効になっています。この設定は、データベースの問題のトラブルシューティングに役立ちます。しかし、一般ログ記録を有効にすると、入出力操作の量と割り当てられるストレージ容量が増え、競合やパフォーマンスの低下につながる可能性があります。

一般ログ記録の使用状況の要件を確認してください。general_logging パラメータ値を 0 に設定することをお勧めします。

一般ログ記録の使用状況の要件を確認してください。必須ではない場合は、general_logging パラメーターの値を 0 に設定することをお勧めします。

なし

RDS for MySQL データベースログの概要

システムメモリ容量のプロビジョニングが不十分な RDS インスタンス

メモリの使用量を減らすか、メモリの割り当て量の多い DB インスタンスタイプを使用するようにクエリを調整することをお勧めします。インスタンスのメモリが不足すると、データベースのパフォーマンスに影響を及ぼします。

メモリ容量のより高い DB インスタンスを使用する

あり

AWS データベースブログの「Amazon RDS インスタンスの垂直スケーリングと水平スケーリング

Amazon RDS インスタンスタイプ

Amazon RDS の価格設定

システム CPU 容量のプロビジョニングが不十分な RDS インスタンス

より少ないメモリを使用するようにクエリを調整するか、vCPU の割り当て量がより多い DB インスタンスを使用するように DB インスタンスを変更することをお勧めします。DB インスタンスの CPU が少なくなると、データベースのパフォーマンスが低下する可能性があります。

CPU 容量がより多い DB インスタンスを使用する

あり

AWS データベースブログの「Amazon RDS インスタンスの垂直スケーリングと水平スケーリング

Amazon RDS インスタンスタイプ

Amazon RDS の価格設定

RDS リソースは接続プールを正しく利用していません。

Amazon RDS Proxy を有効にして、既存のデータベース接続を効率的にプールして共有することをお勧めします。データベースで既にプロキシを使用している場合は、複数の DB インスタンス間の接続プールと負荷分散を改善するようにプロキシを正しく設定します。RDS Proxy は、接続の枯渇やダウンタイムのリスクを軽減すると同時に、可用性とスケーラビリティを向上させるのに役立ちます。

RDS プロキシを有効にするか、既存のプロキシ設定を変更する

なし

AWS データベースブログの「Amazon RDS インスタンスの垂直スケーリングと水平スケーリング

Amazon RDS Proxy の使用

Amazon RDS Proxy の料金

RDS インスタンスが過剰な一時オブジェクトを作成している

ワークロードを調整して過剰な一時オブジェクトが作成されないようにするか、最適化された読み取りをサポートする RDS インスタンスクラスに切り替えることをお勧めします。RDS Optimized Reads は、多数の一時オブジェクトや大きな一時オブジェクトを含むワークロードのデータベースパフォーマンスを向上させます。ワークロードを評価し、インスタンスで RDS Optimized Reads を使用することで、データベースワークロードが改善されるかどうかを判断します。

RDS Optimized Reads で DB インスタンスタイプを使用する

あり

Amazon RDS インスタンスタイプ

Amazon RDS Optimized Reads による RDS for MySQL のクエリパフォーマンスの向上

Amazon RDS Optimized Reads による RDS for MariaDB のクエリパフォーマンスの向上

Amazon RDS Optimized Reads による RDS for PostgreSQL のクエリパフォーマンスの向上

システム IOPS 容量のプロビジョニングが不十分な RDS インスタンス

データベースワークロードを調整して IOPS を減らすか、デフォルトの IOPS 制限が高いタイプに DB インスタンスをスケールアップすることをお勧めします。現在の DB インスタンスではプロビジョンド IOPS をサポートできないか、データベースワークロードの IOPS 使用率が高くなっています。

より高い IOPS デフォルト制限を持つ DB インスタンスタイプを使用する

あり

Amazon RDS インスタンスタイプ

Amazon RDS DB インスタンスストレージ

データベース負荷

RDS インスタンスにプロビジョニング不足の Amazon EBS ボリュームがある

データベースワークロードを調整して IOPS を減らすか、データベースのプロビジョンド IOPS を増やすことをお勧めします。IOPS 使用率がプロビジョンド IOPS に近づくと、データベースのパフォーマンスが低下する可能性があります。

DB インスタンスにより多くの IOPS をプロビジョニングする

あり

Amazon RDS インスタンスタイプ

Amazon RDS DB インスタンスストレージ

データベース負荷

RDS インスタンスのスループットキャパシティがプロビジョニング不足

データベースワークロードを調整してスループットを減らすか、データベースのプロビジョンドスループットを増やすことをお勧めします。スループット使用率がプロビジョニングされたスループットに近づくと、データベースのパフォーマンスに影響する可能性があります。

DB インスタンスにより多くのスループットをプロビジョニングする

あり

Amazon RDS インスタンスタイプ

Amazon RDS DB インスタンスストレージ

データベース負荷

RDS インスタンスは EBS I/O のプロビジョニング不足

データベースワークロードを調整して I/O 操作を減らすか、Amazon RDS io2 Block Express ボリュームを使用するように DB インスタンスを変更することをお勧めします。このボリュームは、高パフォーマンス、高スループット、および低レイテンシーを必要とするデータベースワークロード用に設計されています。現在のワークロードでは、データベースは必要な速度で I/O 操作を処理できない可能性があり、パフォーマンスが低下する可能性があります。

RDS インスタンスに Amazon RDS io2 Block Express ボリュームを使用する

なし

Amazon RDS DB インスタンスストレージ

Amazon RDS の Amazon CloudWatch メトリクス

「Amazon EBS ユーザーガイド」の「プロビジョンド IOPS SSD ボリューム