AWS RDS ストレージ
- RDS ストレージは、エラスティックブロックストア (EBS) ボリュームを使用して、データベースとログのストレージを行います。
- RDS は、要求されたストレージの容量に応じて、複数の EBS ボリューム間で自動的にストライプ化され、IOPS のパフォーマンスが向上します。
RDS ストレージタイプ
- RDS ストレージには、マグネティック、汎用 (SSD)、プロビジョニングド IOPS (1 秒あたりの入出力操作) の3種類のストレージが用意されています。
- これらのストレージ・タイプはパフォーマンス特性と価格が異なるため、ストレージのパフォーマンスとコストをデータベースのニーズに合わせて調整できます。
- プロビジョニングド IOPS と汎用 (SSD) ストレージタイプを使用する場合、MySQL、MariaDB、PostgreSQL、および Oracle RDS DB インスタンスを最大6TB のストレージおよび SQL Server RDS DB インスタンスと共に、最大4TB のストレージと共に作成できます。
- 既存の MySQL、PostgreSQL、および Oracle RDS データベースインスタンスは、ダウンタイムなしで、これらの新しいデータベースストレージの制限にスケーリングすることができます。
マグネティック (標準)
- 標準ストレージとも呼ばれる磁気ストレージは、光またはバースト I/O の要件を持つアプリケーションに最適なコスト効率の高いストレージを提供します。
- 平均で約 100 IOPS を提供し、最大数百 IOPS のバースト機能を備えており、DB インスタンスエンジンに応じて、5 GB から 3 TB までのサイズを指定できます。
- 磁気ストレージは1つの DB インスタンス用に予約されていないため、他のユーザーが共有リソースに配置した要求によってパフォーマンスが大きく変わる可能性があります。
汎用 (SSD)
- 一般的な目的は、gp2 とも呼ばれる SSD によってバックアップされたストレージであり、ディスク・ベースのストレージよりも高速のアクセスを提供できます。
- 1桁のミリ秒のレイテンシを実現し、1ギガバイトあたり 3 IOPS の基本性能と、最大 1万 PIOPS までの長時間にわたって 3000 IOPS にバーストする機能を備えています。
- gp2 のボリュームのサイズは、MySQL、MariaDB、PostgreSQL、および Oracle DB インスタンスの場合は 5 GB から 6 TB、SQL Server DB インスタンスの場合は 20 GB ~ 4 TB の範囲で指定できます。
- gp2 は、小規模から中規模のデータベースに最適です。
プロビジョンド IOPS
- プロビジョニングド IOPS ストレージは、I/O 負荷の高いワークロード (特にデータベースワークロード) のニーズに応えるように設計されており、ストレージのパフォーマンスとランダムアクセス I/O スループットの一貫性に敏感です。
- プロビジョニングド IOPS ストレージは、高速で予測可能で一貫性のあるスループットパフォーマンスを実現するストレージタイプです。
- 高速で一貫性のある I/O パフォーマンスを必要とする本番アプリケーションでは、プロビジョニングド IOPS (1 秒あたりの入出力操作) ストレージが推奨されます。
- プロビジョニングド IOPS ストレージは、一貫性のあるパフォーマンス要件を持つ、オンライントランザクション処理 (OLTP) ワークロードの I/O を集中的に最適化します。
- プロビジョニングド IOPS はパフォーマンスのチューニングに役立ちます。
- プロビジョニングド IOPS ボリュームは、MySQL、MariaDB、PostgreSQL、および Oracle DB エンジンの 100 GB から 6 TB までのサイズで指定できます。SQL Server Express および Web エディションのサイズは 100 GB から 4 TB までの範囲で、SQL Server Standard および Enterprise エディションのサイズは 200 GB から 4 TB の範囲で指定できます。
- DB インスタンスが作成されるときに、専用の IOPS レートとストレージ領域の割り当てが指定されます。RDS では、DB インスタンスの有効期間中または変更されるまでの間、IOPS レートとストレージをプロビジョニングします。
- RDS は、プロビジョニングド IOPS パフォーマンスの 10% 以内で、特定の年における時間の 99.9% を提供します。
EBS ボリュームタイプの詳細については「EBS ボリュームタイプ」を参照
ストレージの追加とストレージタイプの変更
- DB インスタンスは、追加のストレージを使用して別のストレージタイプに変換するように変更できます。
- ただし、DB インスタンスに割り当てられたストレージを減らすことはできません。
- MySQL、MariaDB、PostgreSQL、および Oracle DB インスタンスは、ストレージ用にスケールアップすることができ、I/O 容量の向上に役立ちます。
- Windows server 環境に接続されたストライプストレージの拡張性の制限により、SQL server DB インスタンスのストレージ容量もストレージの種類も変更できます。
- スケーリング処理中に、DB インスタンスは読み取りおよび書き込みに使用できますが、パフォーマンスの低下が発生する可能性があります。
- ストレージの追加には数時間かかる場合があります。プロセスの期間は、負荷、記憶域のサイズ、ストレージの種類、プロビジョニングド IOPS の量 (ある場合)、および以前のスケールストレージ操作の数など、いくつかの要因によって異なります。
- ストレージが追加されている間、毎晩のバックアップは中断され、変更、再起動、削除、リードレプリカの作成、DB スナップショットの作成など、他の RDS オペレーションは実行できません。
パフォーマンスメトリック
- Amazon RDS には、DB インスタンスの実行方法を決定するために使用できるいくつかのメトリックスが用意されています。
- IOPS
- 1秒間に完了した I/O 操作の数。
- これは、特定の時間間隔の平均 IOPS として報告されます。
- RDS は、1分間隔で個別に読み取りおよび書き込みの IOPS を報告します。
- 合計 IOPS は、読み取りおよび書き込みの IOPS の合計です。
- IOPS の一般的な値は、1秒間にゼロから数万までの範囲です。
- レイテンシ
- I/O 要求の送信と完了の間の経過時間
- これは、特定の時間間隔の平均待ち時間として報告されます。
- RDS は、秒単位で1分間隔で読み取りおよび書き込みの待ち時間を個別に報告します。
- 待ち時間の一般的な値はミリ秒 (ミリ秒) です
- スループット
- ディスクとの間で転送された1秒あたりのバイト数
- これは、特定の時間間隔の平均スループットとして報告されます。
- RDS は、1秒あたりのメガバイト単位 (MB/秒) を使用して、読み取りおよび書き込みのスループットを個別にレポートします。
- スループットの一般的な値は、ゼロから I/O チャネルの最大帯域幅まで多岐にわたります。
- キューの深さ
- サービスを待機しているキュー内の I/O 要求の数。
- これらは、アプリケーションによって送信されたが、デバイスが他の I/O 要求の処理にビジーであるため、デバイスに送信されていない I/O 要求です。
- これは、特定の時間間隔の平均キューの深さとして報告されます。
- RDS は、キューの深さを1分間隔でレポートします。キューの深さの一般的な値は、ゼロから数百までの範囲です。
- キューで待機している時間は、待ち時間とサービス時間のコンポーネントです (メトリックとしては使用できません)。
- IOPS
Amazon RDS ストレージファクト
- 初めて DB インスタンスが起動され、ディスク領域に初めてアクセスするとき、プロセスは、同じディスク領域への後続のすべてのアクセスよりも長くかかることがあります。これは、“first tuch penalty” として知られています。ディスクの領域に first touch penalty が発生した場合、そのディスク領域は、DB インスタンスが再起動、再始動、または DB インスタンスクラスが変更された場合でも、インスタンスの寿命に対して再びペナルティを負うことはありません。スナップショット、ポイント・イン・タイム・リストア、またはリードレプリカから作成された DB インスタンスは新しいインスタンスであり、この first touch penalty が発生することに注意してください。
- RDS は DB インスタンスを管理し、インスタンスのオーバーヘッド領域を確保します。リザーブドストレージの容量は DB インスタンスクラスやその他の要因によって異なりますが、この予約スペースはストレージ全体の 1 ~ 2% に相当します。
- プロビジョンド IOPS は、IOPS を指定して I/O 容量を予約する手段を提供します。他のシステム容量属性と同様に、負荷時の最大スループットは、最初に消費されるリソースによって制限され、これは IOPS、チャネル帯域幅、CPU、メモリ、またはデータベース内部リソースとなります。
- 現在使用可能な最大チャネル帯域幅は、4000 Mbit/秒 (Mbps) の全二重です。読み取りおよび書き込みのスループットメトリックに関しては、これは各方向の毎秒約210メガバイト (MB/s) に相当します。50% の読み取りと 50% の書き込みの完全にバランスの取れたワークロードは、プロトコルのオーバーヘッドを含む 420 MB/秒の最大結合スループットを達成する可能性があるため、実際のデータスループットは少なくなる可能性があります。
- プロビジョニングド IOPS は、I/O 要求サイズ 32 KB で動作します。プロビジョニングド IOPS の消費量は、32 KB を超える I/O 要求サイズの線形関数です。32 KB より小さい I/O 要求は、1つの I/O として処理されます。(たとえば、1000 16 KB の I/O 要求は、1000 32 KB 要求と同じように処理されます。32 KB を超える I/O 要求は、複数の I/O 要求を消費します。一方、48 KB の I/O 要求は、ストレージ容量の 1.5 I/O 要求を消費します。64 KB I/O 要求は、2つの I/O 要求を消費します。)
ストレージのパフォーマンスに影響する要因
- インスタンス構成、I/O 特性、ワークロード要求など、DB インスタンスのパフォーマンスに影響する要因はいくつかあります。
- システム関連のアクティビティでも I/O 容量が消費され、進行中にデータベースインスタンスのパフォーマンスが低下する場合があります。
- DB スナップショットの作成
- 毎晩のバックアップ
- マルチ AZ ピアの作成
- レプリカの作成の読み取り
- ストレージのスケーリング
- システムリソースは、DB インスタンスのスループットを制限できますが、ボトルネックには他の理由があります。データベースが問題になる可能性があります。
- チャネルのスループット制限に達していません
- キューの深さは一貫して低い
- CPU 使用率は 80% 以下
- 空きメモリ
- スワップ活動なし
- 十分な空きディスク容量
- アプリケーションは、データベースがそれらを取るように迅速にトランザクションを送信するすべてのスレッドの数十を持っていますが、明らかに未使用の I/O 容量がある
AWS認定試験の練習問題
- 質問はインターネットから収集され、答えは自分の知識と理解に基づいてマークされます(これはあなたと異なる場合があります)。
- AWSサービスは毎日更新され、回答と質問はすぐに時代遅れになる可能性がありますので、それに応じて調査してください。
- AWSのアップデートのペースを追うためにAWS試験の質問は更新されないため、基礎となる機能が変更されても質問が更新されないことがあります。
- さらなるフィードバック、ディスカッション、修正を可能にします。
- 標準の RDS ストレージでプロビジョンド IOPS を選択する必要があるのはいつですか。
- バッチ指向のワークロードがある場合
- 運用オンライントランザクション処理 (OLTP) ワークロードを使用する場合
- 一貫性のあるパフォーマンスに依存しないワークロードがある場合
- DB インスタンスのストレージサイズを小さくすることはできますか?
- 使用する RDMS によって異なります
- はい
- いいえ
- Windows Server に接続されたストライプストレージの拡張性の制限により、Amazon RDS は現在、___ DB インスタンスでのストレージの増加をサポートしていません。
- SQL Server
- MySQL
- Oracle
- Amazon インスタンスでデータベースを実行する場合は、Amazon のストレージオプションとして最も推奨されるものはどれですか。
- Amazon インスタンスストレージ
- Amazon EBS
- Amazon インスタンス内でデータベースを実行することはできません。
- Amazon S3
- 各 DB インスタンスクラスについて、関連するストレージ容量の最大サイズは何ですか。
- 1TB
- 2TB
- 500GB
- 6TB (現在4TB の SQL Server を除く)
リファレンス
Jayendra’s Blog
この記事は自己学習用に「AWS RDS Replication – Multi-AZ & Read Replica – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。
コメントを残す