AWS EC2において性能のボトルネックになるポイント

2026年6月10日

はじめに

「EC2のインスタンスタイプを選ぶとき、vCPUやメモリ以外に何を見ればいいのか分からない」——そう感じたことはないでしょうか。インスタンスタイプの一覧表にはネットワーク帯域幅やEBS帯域幅といった項目が並んでいますが、これらが実際の性能にどう影響するのかは見落とされがちです。本記事では、EC2とEBSにおいて性能のボトルネックになり得る4つのポイントを、具体的な計算方法とあわせて整理します。

スペック表の数値を実際の通信量やディスクI/Oに換算できるようになると、インスタンスタイプの選定やトラブルシューティングの精度が上がります。同じような観点でEC2の性能を見直したい方の参考になれば幸いです。

注意事項

本記事は個人で調査した内容をまとめたものです。正確な仕様は必ずAWS公式ドキュメントもあわせてご確認ください。

EC2とEBSで性能のボトルネックになり得る4つのポイント

EC2を起動する際にインスタンスタイプを選択しますが、インスタンスタイプごとの性能は通常以下のように表記されます(抜粋)。

インスタンスサイズvCPUメモリ(GiB)インスタンスストレージ(GiB)ネットワーク帯域幅(Gbps)EBS帯域幅(Mbps)
m5a.large28EBSのみ最大10最大2,880
m5a.xlarge416EBSのみ最大10最大2,880

この中で性能のボトルネックになり得るのは、EC2側のネットワーク帯域幅EBS帯域幅と、EBS側の最大IOPS最大スループットの4つです。それぞれ見ていきましょう。

1. EC2のネットワーク帯域幅を確認する

課題:EC2に対する通信量が、インスタンスタイプのネットワーク帯域幅を超えていないか分かりにくい。
解決策:通信量をMbps単位に換算し、インスタンスタイプのネットワーク帯域幅と比較する。

ネットワーク帯域幅は、該当のEC2に対して送受信するデータの帯域の上限です。例えば1秒間に合計で100MbyteのデータをEC2に送信している場合、帯域は次の式で計算できます。

100[Mbyte] * 8[bit/byte] = 800[Mbit] = 800Mbps

この計算値が、EC2のネットワーク帯域幅以下である必要があります。上記のm5a.largeであれば10Gbpsの帯域がありますので、800Mbps程度の通信量であれば問題ないということになります。

2. EC2のEBS帯域幅を確認する

課題:ネットワーク帯域幅だけでなく、EC2からEBS(ディスク)へのアクセス帯域にも上限があることを見落としやすい。
解決策:EC2-EBS間のI/O量もネットワーク帯域幅と同じ考え方で換算し、EBS帯域幅と比較する。

EBSはハードディスクやSSDにあたる記憶装置で、EC2からEBSへのアクセスにも帯域幅の上限があります。例えば、EC2が受信した通信データをすべてディスクに書き込む処理を行っている場合、ネットワーク帯域幅として800Mbpsが必要であれば、EBS帯域幅についても同様に800Mbpsの帯域が必要になると考えられます。

これはあくまでEC2インスタンスから見たEBSのボトルネックです。AWSではEC2とEBSもネットワークで接続されており、ディスクアクセスにもネットワーク帯域幅を使用しますが、本記事では深く触れません。

3. EBSボリュームの最大IOPSを確認する

課題:gp2ボリュームのスペック表に記載された「最大IOPS: 16,000」を、自分のボリュームでもそのまま使えると誤解しやすい。
解決策:最大IOPSはボリュームサイズに比例して決まることを理解し、自分のボリュームサイズで再計算する。

本記事では汎用SSDタイプの1つであるgp2を例に説明します。gp2のスペックは抜粋すると以下のとおりです。

ボリュームタイプgp2
耐久性99.8%〜99.9% の耐久性(0.1%〜0.2% の年間故障率)
ユースケース低レイテンシーのインタラクティブなアプリケーション、開発・テスト環境
ボリュームサイズ1GiB 〜 16TiB
ボリュームあたりの最大IOPS16,000
ボリュームあたりの最大スループット250 MiB/秒

IOPSとは、1秒あたりのEBSに対するリード・ライトアクセス回数のことです。表には「最大IOPS: 16,000」とありますが、すべてのgp2ボリュームで16,000のアクセスができるわけではありません。

gp2の最大IOPSは、ボリュームサイズ(GB) × 3 IOPSで決まります。つまり500GBのボリュームであれば1,500 IOPSが最大IOPSです。表の16,000という数字は、5,334GB以上のEBSを利用した場合の値になります。

ただし、バースト的なリード・ライトアクセスに対しては、1日のうち一時的に3,000 IOPSまで対応できます。バーストに耐えられる時間もボリュームサイズで決まり、100GBであれば2,000秒、500GBであれば3,600秒程度です。あくまで一時的なものなので、定常的なIOPSとしては500GBの場合1,500 IOPSと考えておくのが安全です。

4. EBSボリュームの最大スループットを確認する

課題:「最大スループット: 250MiB/秒」がどのボリュームサイズでも適用されると誤解しやすい。
解決策:スループットもボリュームサイズに応じて段階的に決まることを理解しておく。

スループットとは、EBSに対するアクセスの1秒あたりのデータ量です。例えば100MByteのデータを1秒間に書き込んでいる場合、スループットは100Mbpsとなります。

gp2の最大スループットは250Mbpsと記載されていますが、こちらもボリュームサイズによって上限が異なります。170GB以下のボリュームでは125Mbps、334GB以上のボリュームでは250Mbpsが最大スループットの目安です。

まとめ:EC2のボトルネックを把握してインスタンス選定に活かす

本記事で紹介したポイントをまとめます。

  • EC2側のボトルネック候補はネットワーク帯域幅EBS帯域幅
  • EBS側のボトルネック候補は最大IOPS最大スループット
  • gp2の最大IOPSは「ボリュームサイズ(GB) × 3」、最大スループットはボリュームサイズによって125Mbpsまたは250Mbps
  • スペック表の数値はそのまま使えるとは限らず、自分のボリュームサイズで再計算する必要がある

実際に運用しているEC2でこれらの項目がボトルネックになっていないかを確認するには、CloudWatchのメトリクスを使った監視が必要です。CloudWatchを使ったボトルネックの確認方法については、また別の記事で紹介します。