Amazon RDS for SQL Server の tempdb データベースに対するインスタンスストアのサポート
インスタンスストアは、DB インスタンスに一時ブロックレベルのストレージを提供します。このストレージは、ホストコンピュータに物理的にアタッチされたディスク上にあります。これらのディスクには、ソリッドステートドライブ (SSD) に基づく不揮発性メモリエクスプレス (NVMe) インスタンスストレージがあります。このストレージは、低レイテンシー、非常に高いランダム I/O パフォーマンス、高いシーケンシャル読み取りスループットを実現するために最適化されています。
tempdb
データファイルと tempdb
ログファイルをインスタンスストアに配置することで、Amazon EBS に基づく標準ストレージと比べて、読み取りおよび書き込みのレイテンシーを低く抑えることができます。
注記
SQL Server データベースファイルとデータベースログファイルは、インスタンスストアに配置されません。
インスタンスストアの有効化
RDS が次のいずれかのインスタンスクラスを使用して DB インスタンスをプロビジョニングすると、tempdb
データベースは自動的にインスタンスストアに配置されます。
-
db.m5d
-
db.r5d
-
db.x2iedn
インスタンスストアを有効にするには、次のいずれかの操作を行います。
-
これらのインスタンスタイプの 1 つを使用して SQL Server DB インスタンスを作成します。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。
-
既存の SQL Server DB インスタンスを変更して、そのうちの 1 つを使用します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
インスタンスストアは、これらのインスタンスタイプの 1 つ以上がサポートされているすべての AWS リージョンで使用できます。db.m5d
と db.r5d
インスタンスクラスの詳細については、「 DB インスタンスクラス」を参照してください。Amazon RDS for SQL Server でサポートされるインスタンスクラスの詳細については、Microsoft SQL Server の DB インスタンスクラスのサポート を参照してください。
ファイルの場所とサイズに関する考慮事項
インスタンスストアがないインスタンスでは、RDS は tempdb
データとログファイルを D:\rdsdbdata\DATA
ディレクトリに保存します。デフォルトでは、どちらのファイルも 8 MB から始まります。
インスタンスストアがあるインスタンスでは、RDS は tempdb
データとログファイルを T:\rdsdbdata\DATA
ディレクトリに保存します。
tempdb
にデータファイル (tempdb.mdf
) とログファイル (templog.ldf
) が 1 つしかない場合、templog.ldf
はデフォルトでは 8 MB から始まり、tempdb.mdf
はインスタンスのストレージ容量の 80%以上から始まります。ストレージ容量の 20% または 200 GB のどちらか小さい方を、無料で起動できます。複数の tempdb
データファイルは 80% のディスク領域を均等に分割しますが、ログファイルの初期サイズは常に 8 MB です。
例えば、DB インスタンスクラスを db.m5.2xlarge
から db.m5d.2xlarge
に変更すると、tempdb
データファイルのサイズはそれぞれ 8 MB から合計 234 GB に増加します。
注記
インスタンスストア (tempdb
) の T:\rdsdbdata\DATA
データとログファイルに加えて、データボリューム (tempdb
) に追加の D:\rdsdbdata\DATA
データとログファイルを作成することもできます。これらのファイルの初期サイズは常に 8 MB です。
バックアップに関する考慮事項
バックアップを長期間保持する必要がありますが、時間の経過とともにコストがかかる場合があります。tempdb
データブロックとログブロックは、ワークロードに応じて非常に頻繁に変更されることがあります。これにより、DB スナップショットのサイズが大幅に増加する可能性があります。
tempdb
がインスタンスストアにある場合、スナップショットに一時ファイルは含まれません。つまり、EBS のみのストレージと比べて、スナップショットのサイズが小さくなり、空いたバックアップ割り当ての使用量が少なくなります。
ディスクがいっぱいになるエラー
インスタンスストア内の使用可能な領域をすべて使用すると、次のようなエラーが表示されることがあります。
-
データベース「tempdb」のトランザクションログは「ACTIVE_TRANSACTION」のため、いっぱいになりました。
-
PRIMARY」ファイルグループがいっぱいであるため、データベース「tempdb」のオブジェクト「dbo.SORT の一時実行ストレージ: 140738941419520」に領域を割り当てられませんでした。不要なファイルの削除、ファイルグループ内のオブジェクトの削除、ファイルグループへのファイルの追加、またはファイルグループ内の既存のファイルの自動拡張を有効に設定して、ディスク領域を作ります。
インスタンスストアがいっぱいになると、次の項目のうちから 1 つまたは複数を実行できます。
-
ワークロードや
tempdb
の使用方法を調整します。 -
より多くの NVMe ストレージを持つ DB インスタンスクラスを使用するように拡張します。
-
インスタンスストアの使用を停止し、EBS ストレージのみを持つインスタンスクラスを使用します。
-
EBS ボリューム上の
tempdb
のセカンダリデータまたはログファイルを追加して、混合モードを使用します。
インスタンスストアの削除
インスタンスストアを削除するには、インスタンスストアをサポートしないインスタンスタイプ (db.m5、db.r5、db.x1e など) を使用するように SQL Server DB インスタンスを変更します。
注記
インスタンスストアを削除すると、一時ファイルは D:\rdsdbdata\DATA
ディレクトリに移動され、8 MB に縮小されます。