ECS のストレージ I/O パフォーマンスとは、Elastic Compute Service (ECS) インスタンスがアタッチされたクラウドディスクに対して読み書きできる速度を指します。主要なメトリクスは、IOPS (1 秒あたりの入出力操作数)、スループット、アクセス遅延の 3 つです。インスタンスとディスクの構成のミスマッチは、ストレージパフォーマンスのボトルネックの最も一般的な原因です。インスタンスタイプがストレージ I/O パフォーマンスにどのように上限を設けるか、また小規模なインスタンスサイズでのバーストクレジットメカニズムがどのように機能するかを理解することで、適切な組み合わせをプロビジョニングし、これらのボトルネックを回避できます。
ストレージ I/O パフォーマンスはクラウドディスクにのみ適用され、ローカルディスクには適用されません。
基本概念
I/O サイズとは、1 回の読み取りまたは書き込み操作で転送されるデータ量 (例:4 KiB) です。I/O サイズ、IOPS、スループットは、次の数式で関連付けられています。
スループット = IOPS × I/O サイズディスクタイプごとの IOPS とスループットの上限については、「ブロックストレージのパフォーマンス」をご参照ください。
適切なインスタンスとディスクの組み合わせの選択
インスタンスの実効 IOPS とスループットは、インスタンスタイプのストレージ I/O 上限、またはアタッチされたクラウドディスクの合計容量のいずれか低い方に制限されます。パフォーマンス専有型ディスクを過小なインスタンスタイプにアタッチすると、インスタンスレベルのパフォーマンスを十分に活用できません。逆に、ディスクがボトルネックである場合にインスタンスタイプをスペックアップしても、スループループットは向上しません。
ワークロードの I/O プロファイルに合わせてインスタンスファミリーを選択してください。
高スループット、大容量 I/O — オフライン分析やデータウェアハウスなどのワークロードは、高い集約スループットを提供するビッグデータインスタンスファミリーから恩恵を受けます。
高 IOPS、小規模なランダム I/O — OLTP (オンライントランザクション処理) データベースや SAP などのエンタープライズアプリケーションのような遅延の影響を受けやすいワークロードは、ESSD (エンタープライズ SSD) や標準 SSD を、IOPS 上限が高いインスタンスタイプと組み合わせることで恩恵を受けます。
負荷下での一貫したパフォーマンス — Oracle や MySQL などの大規模データベースシステム、および ERP (企業資源計画) や CRM (顧客関係管理) などのエンタープライズアプリケーションには、新世代のエンタープライズレベルのインスタンスファミリーを使用します。これらのファミリーは、インスタンスごとに専用のストレージ帯域幅を割り当て、各インスタンスの I/O を隣接するものから分離するため、ピーク時でもパフォーマンスが一貫して維持されます。
インスタンスファミリーとその仕様の完全なリストについては、「インスタンスファミリーの概要」をご参照ください。
インスタンスタイプによるストレージ I/O パフォーマンスの上限
クラウドディスクをインスタンスにアタッチした後、インスタンスの最大 IOPS は、次のいずれか低い方になります。
インスタンスタイプのストレージ I/O 上限
アタッチされたすべてのクラウドディスクの最大 IOPS の合計

ディスク IOPS がインスタンスの上限を超える場合
インスタンスは、アタッチするパフォーマンス専有型ディスクの数に関係なく、インスタンスタイプの最大 IOPS に制限されます。複数のディスクがアタッチされている場合、それらはインスタンスの I/O 予算を奪い合うため、個々のディスクスループットは動的に変動します。
例 1:
ecs.g7se.xlargeインスタンス (16 GiB メモリ、最大 60,000 IOPS) と 1 個の PL2 ESSD (パフォーマンスレベル 2 の ESSD、2,000 GiB、最大 100,000 IOPS) — インスタンスの上限は 60,000 IOPS です。例 2:
ecs.g7se.4xlargeインスタンス(64 GiB メモリ、最大 150,000 IOPS)に、3 つの PL2 ESSD(それぞれ 2,000 GiB、100,000 IOPS — 合計 300,000 IOPS)を接続した場合 — インスタンスの上限は 150,000 IOPS です。
ディスク IOPS がインスタンスの上限を下回る場合
インスタンスは、アタッチされたディスクの最大 IOPS の合計に制限されます。より大きなインスタンスタイプにスペックアップしても、ディスクもスペックアップするまでパフォーマンスは向上しません。
例:
ecs.g7se.4xlargeインスタンス(64 GiB のメモリ、最大 150,000 IOPS)に PL3 ESSD(2,000 GiB、最大 101,800 IOPS)を 1 台接続した場合 — インスタンスの上限は 101,800 IOPS に設定されています。
サイジングガイダンス: インスタンスのパフォーマンスを無駄にしないように、合計 IOPS がインスタンスタイプの上限以上になるようにディスクをプロビジョニングしてください。ディスクがすでにインスタンスの上限を超えている場合、より高いディスクティアにスペックアップしても実効 IOPS は増加しません。代わりにインスタンスタイプをスペックアップしてください。
バースト IOPS とバーストストレージ帯域幅
第 7 世代以降の小規模なインスタンスタイプ (large から 4xlarge) は、ベースラインの IOPS とストレージ帯域幅を超えるバーストをサポートします。このメカニズムは、インスタンスの起動、バッチジョブ、トラフィックの急増など、短期間に高いパフォーマンスが必要で、継続的には必要としない、スパイク状の I/O パターンを持つワークロードに使用します。
バーストクレジットの仕組み
バーストはクレジットベースです。インスタンスの実際の IOPS がベースラインを下回っている間にクレジットが蓄積され、IOPS がベースラインを超えると消費されます。バーストパフォーマンスには SLA (サービスレベルアグリーメント) のコミットメントは適用されません。
リソースはいつでも次の 3 つの状態のいずれかになります。
| 状態 | 説明 |
|---|---|
| 蓄積中 | 実際の I/O はベースラインを下回っています。クレジットが蓄積されます。 |
| バースト中 | 実際の I/O はベースラインを上回っています。クレジットが消費されます。 |
| ベースライン | 実際の I/O はベースラインと完全に一致しています。クレジットの変動はありません。 |
バースト IOPS
メトリクス:
| メトリック | 説明 |
|---|---|
| ベースライン IOPS | インスタンスタイプが SLA の下で一貫して維持できる最大 IOPS。 |
| バースト IOPS | インスタンスが一時的に到達できるピーク IOPS。時間制限があり、SLA のコミットメントはありません。 |
ピーク IOPS での最大バースト持続時間 (インスタンスサイズ別):
| インスタンスサイズ | 最大バースト持続時間 |
|---|---|
| large | 5 分 |
| xlarge | 10 分 |
| 2xlarge | 20 分 |
| 3xlarge | 30 分 |
| 4xlarge | 40 分 |
クレジット残高が低いインスタンス、または実際の IOPS がベースラインをわずかに上回るだけのインスタンスは、これらの最大値よりも長くバーストを維持します。
数式:
最大クレジット残高 = (最大バースト IOPS - ベースライン IOPS) × 最大バースト持続時間
実際のバースト持続時間 = 最大クレジット残高 / (現在の IOPS - ベースライン IOPS)例: 50,000 IOPS が可能なクラウドディスクが ecs.g7 インスタンスにアタッチされています。次の表に、ベースライン IOPS、バースト IOPS、およびバーストの持続時間を示します。
| インスタンスタイプ | クラウドディスクのベースライン IOPS | クラウドディスクの最大バースト IOPS | 最大バースト持続時間 (分) | 最大クレジット残高 | 実際のバースト持続時間 (分) |
|---|---|---|---|---|---|
| ecs.g7.large | 20,000 | 160,000 | 5 | (16 - 2) × 5 = 70 | 70 / (5 - 2) = 23 |
| ecs.g7.xlarge | 40,000 | 160,000 | 10 | (16 - 4) × 10 = 120 | 120 / (5 - 4) = 120 |
| ecs.g7.2xlarge | 50,000 | 160,000 | 20 | (16 - 5) × 20 = 220 | ディスクはベースラインにあり、バーストは不要 |
| ecs.g7.3xlarge | 70,000 | 160,000 | 30 | (16 - 7) × 30 = 270 | ディスクはベースラインを下回っており、バーストは不要 |
| ecs.g7.4xlarge | 80,000 | 160,000 | 40 | (16 - 8) × 40 = 320 | ディスクはベースラインを下回っており、バーストは不要 |
ecs.g7 インスタンスタイプの仕様については、「g7、汎用インスタンスファミリー」をご参照ください。
バーストストレージ帯域幅
メトリクス:
| メトリック | 説明 |
|---|---|
| ベースラインストレージ帯域幅 | インスタンスタイプが SLA の下で一貫して維持できる最大ストレージ帯域幅。 |
| バースト帯域幅 | インスタンスが一時的に到達できるピークストレージ帯域幅。時間制限があり、SLA のコミットメントはありません。 |
インスタンスサイズごとの最大バースト持続時間は、バースト IOPS と同じです:large で 5 分、4xlarge で最大 40 分です。
数式:
最大クレジット残高 = (最大バーストストレージ帯域幅 - ベースラインストレージ帯域幅) × 最大バースト持続時間
実際のバースト持続時間 = 最大クレジット残高 / (現在のストレージ帯域幅 - ベースラインストレージ帯域幅)例: 最大3 Gbit/sの転送速度をサポートするクラウドディスクが ecs.g7 インスタンスにアタッチされています。
| インスタンスタイプ | クラウドディスクのベースライン帯域幅 (Gbit/s) | クラウドディスクの最大バースト帯域幅 (Gbit/s) | 最大バースト持続時間 (分) | 最大クレジット残高 | 実際のバースト持続時間 (分) |
|---|---|---|---|---|---|
| ecs.g7.large | 1.5 | 6 | 5 | (6 - 1.5) × 5 = 22.5 | 22.5 / (3 - 1.5) = 15 |
| ecs.g7.xlarge | 2 | 6 | 10 | (6 - 2) × 10 = 40 | 40 / (3 - 2) = 40 |
| ecs.g7.2xlarge | 3 | 6 | 20 | (6 - 3) × 20 = 60 | ディスクはベースラインにあり、バーストは不要 |
| ecs.g7.3xlarge | 4 | 6 | 30 | (6 - 4) × 30 = 60 | ディスクはベースラインを下回っており、バーストは不要 |
| ecs.g7.4xlarge | 5 | 6 | 40 | (6 - 5) × 40 = 40 | ディスクはベースラインを下回っており、バーストは不要 |
ecs.g7 インスタンスタイプの仕様については、「汎用インスタンスファミリー g7」をご参照ください。
次のステップ
ブロックストレージのパフォーマンス — 各ディスクタイプの IOPS とスループットの仕様
インスタンスファミリーの概要 — すべての ECS インスタンスタイプの完全な仕様