🏋️

AWS EC2のパフォーマンス

2023/07/30に公開

インスタンスタイプ

Attribute(追加機能)

アルファベット 機能
a AMD プロセッサ
g AWS Graviton プロセッサ
i Intel プロセッサ
d インスタンスストアボリューム
n ネットワークと EBS の最適化
e 追加のストレージまたはメモリ
z 高パフォーマンス

インスタンスファミリー

ユースケース

種類 ユースケース ファミリー
汎用 アプリケーションなど A、M、Mac、T
コンピューティング最適化 ハイパフォーマンスコンピューティング (HPC)、機械学習推論、バッチ処理ワークロード、メディアトランスコーディングなど C
メモリ最適化 メモリ内の大きいデータセットを処理するワークロード R、X、Z
高速コンピューティング 浮動小数点計算、グラフィックス処理、データパターン照合など P、Trn、Inf、G、F、VT
ストレージ最適化 数万 IOPS もの低レイテンシーなランダム I/O オペレーション Im、Is、I、D、H

バーストパフォーマンスインスタンス

Tインスタンスファミリーは、ベースラインの CPU パフォーマンスを提供しながら、いつでも必要な時間だけ、能力をベースライン以上にバーストさせる機能を備えている

CPUクレジット

ベースラインを超えるとCPUクレジットを消費する、ベースラインを下回っている時にCPUクレジットが蓄積される

Unlimited(無制限) モード

  • CPU クレジット残高を使い切った場合、ベースラインを超えてバーストするには余剰クレジットを使用
  • CPU 利用率がベースラインを下回った場合、獲得した CPU クレジットを使用して、先に消費された余剰クレジットの支払いを行う(期間:24時間)
  • 24 時間で獲得できる最大クレジット以上に余剰クレジットを使用していた場合は、vCPU 時間あたりの超過の使用量に対して、均一追加料金が発生する
  • 余剰クレジットが残ったままEC2インスタンスを停止、終了した場合も追加課金が発生する

拡張ネットワーキング

  • シングルルート I/O 仮想化 (SR-IOV) を使用して、高い帯域幅、1 秒あたりのパケット (PPS) の高いパフォーマンス、常に低いインスタンス間レイテンシーが提供される
  • 追加料金なし

Elastic Network Adapter (ENA)

  • 現行世代を含むほとんどのインスタンスは、拡張ネットワークとして ENA を使用
  • EC2インスタンスを起動した際に有効になっている
  • 最大 100 Gbps のネットワーク速度をサポート

Intel 82599 Virtual Function (VF) インターフェイス

  • インスタンスタイプ C3、C4、D2、I2、M4 (m4.16xlarge を除く)、R3 では、拡張ネットワーキングに Intel 82599 VF インターフェイスが使用
  • 最大 10 Gbps のネットワーク速度がサポート

拡張ネットワーキングが有効化されているか確認(AWS CLI)

aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"

属性が設定されている場合、レスポンスは true

Amazon Linux AMI での拡張ネットワーキングの有効化(AWS CLI)

aws ec2 modify-instance-attribute --instance-id instance_id --ena-support

ジャンボフレーム

最大送信単位 (MTU) :接続を介して渡すことができる最大許容パケットサイズ (バイト単位)

すべての Amazon EC2 インスタンスタイプは1500 MTUをサポートし、ほとんどのインスタンスタイプでジャンボフレーム (9001 MTU) がサポートされている

MTU の確認

  • ip link show

    現在の MTU 値を確認
    このインスタンスにジャンボフレーム (mtu 9001) が使用されていると示している

    [ec2-user ~]$ ip link show eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 02:90:c0:b7:9e:d1 brd ff:ff:ff:ff:ff:ff
    
  • tracepath

    EC2 インスタンスと amazon.com の間のパス MTU を確認
    パス MTU : 1500

    [ec2-user ~]$ tracepath amazon.com
     1?: [LOCALHOST]     pmtu 9001
     1:  ip-172-31-16-1.us-west-1.compute.internal (172.31.16.1)   0.187ms pmtu 1500
     1:  no reply
     2:  no reply
     3:  no reply
     4:  100.64.16.241 (100.64.16.241)                          0.574ms
     5:  72.21.222.221 (72.21.222.221)                         84.447ms asymm 21
     6:  205.251.229.97 (205.251.229.97)                       79.970ms asymm 19
     7:  72.21.222.194 (72.21.222.194)                         96.546ms asymm 16
     8:  72.21.222.239 (72.21.222.239)                         79.244ms asymm 15
     9:  205.251.225.73 (205.251.225.73)                       91.867ms asymm 16
    ...
    31:  no reply
         Too many hops: pmtu 1500
         Resume: pmtu 1500
    

プレイスメントグループ

ネットワークレイテンシーを低くして、ネットワークパフォーマンスを向上

クラスタプレイスメントグループ

  • 単一のAZ内のインスタンスを論理的にグループ化したもの
  • EC2インスタンス同士の低いネットワークレイテンシー、高いネットワークスループットを実現できる
  • 最も低いレイテンシーと最も高いネットワークパフォーマンス (1 秒あたりパケット数) を実現するためには、拡張ネットワーキングをサポートするインスタンスタイプを選択する

パーティションプレイスメントグループ

  • Amazon EC2は各グループをパーティションと呼ばれる論理的なセグメントに分割し、ハードウェア障害の頻度を軽減する
  • 1つのAZに7つまでパーティションを作成
  • ラック
    • 各パーティションにそれぞれ一連のラックがある
    • 各パーティションはラックを共有しない
    • 独自のネットワーク、電源が使用される
  • HDFS、HBase、Cassandra などの大規模な分散および複製ワークロードを異なるラック間でデプロイするために使用

スプレッドプレイスメントグループ

  • それぞれ異なるハードウェアに配置されるインスタンスのグループ
  • 少数の重要なインスタンスを同じAZで起動しながらも、互いに分離して保持される必要があるアプリケーションに推奨
  • 障害時の影響を可能な限り軽減する場合に使用

Discussion