A1インスタンスのネットワーク性能をS3転送で測定してみた
AWSチームのすずきです。
ARM CPUを搭載した「A1」ファミリーのネットワーク性能を確認する為、 S3へのアップロード時間を測定、IGWを経由したインターネット性能を計測する機会がありましたので、 紹介させていただきます。
構成図
環境
インスタンス
ARM CPUを搭載した「A1」(a1.medium,a1.large,a1.xlarge) と、 x86 CPU の現行インスタンスとして、「t3.small」「m5.large」、 旧世代のインスタンスとして「t2.small」「m3.small」を比較対象として用意しました。
OS
Amazon Linux2 東京リージョン提供のAMIを利用しました。
- amzn2-ami-hvm-2.0.20190823.1-arm64-gp2 (ami-024b748b625ec022a)
- amzn2-ami-hvm-2.0.20190823.1-x86_64-gp2 (ami-0ff21806645c5e492)
S3
4リージョンにテスト用のS3バケットを用意しました。
PREFIX="test-s3-123456789012" for REGION in ap-northeast-1 ap-northeast-2 us-east-1 us-west-2 ; do time aws s3 mb "s3://${PREFIX}-${REGION}" done
検証
テストファイル作成
「dd」を利用して、S3転送に利用する4GiBのファイルを用意しました。
time dd bs=1M count=4096 if=/dev/urandom of=/tmp/dummy
S3アップロード所要時間測定
「awscli」を利用して4GiBのファイルをS3へのマルチロードアップロードを実施。所要時間より転送レートを求めました。
PREFIX="test-s3-123456789012" for REGION in ap-northeast-1 ap-northeast-2 us-east-1 us-west-2 ; do time aws s3 sync /tmp/dummy "s3://${PREFIX}-${REGION}/" done
S3のマルチパートアップロードに関係する最大同時リクエスト数、max_concurrent_requests は、デフォルト(10)としています
結果
インスタンス、リージョン別のS3転送アップロード帯域(MiB/s)
インスタンス | 東京 | ソウル | バージニア | オレゴン | 4リージョンの平均 |
---|---|---|---|---|---|
a1.medium | 39.8 | 33.3 | 27.9 | 38.8 | 34.9 MiB/s |
a1.large | 53.5 | 55.0 | 42.9 | 52.4 | 50.9 MiB/s |
a1.xlarge | 63.2 | 66.0 | 49.1 | 64.1 | 60.6 MiB/s |
m5.large | 90.1 | 89.7 | 43.4 | 68.1 | 72.8 MiB/s |
t3.small | 87.3 | 85.1 | 53.8 | 64.0 | 72.5 MiB/s |
t2.small | 18.2 | 17.5 | 16.8 | 16.9 | 17.4 MiB/s |
m3.medium | 25.1 | 13.1 | 17.7 | 18.2 | 18.5 MiB/s |
比較
リソーススペックと、オンデマンド単価(1時間Unix)より、A1インスタンスの比較を試みました。
M5
インスタンス | メモリ(GiB) | vCPU | I/O | オンデマンド単価(USD) | 平均帯域(MB/s) | 1USDあたり帯域(MiB/s) |
---|---|---|---|---|---|---|
a1.medium | 2 | 1 | Up to 10 Gbps | 0.0321 | 34.9 | 1088.6 |
a1.large | 4 | 2 | Up to 10 Gbps | 0.0642 | 50.9 | 793.5 |
a1.xlarge | 8 | 4 | Up to 10 Gbps | 0.1284 | 60.6 | 471.9 |
m5.large | 8 | 2 | Up to 10 Gbps | 0.124 | 72.8 | 587.4 |
「A1」インスタンス、メモリ、CPUを必要しない場合には、1USDあたりの帯域を 「M5」より費用帯効果よく利用できる可能性が確認できました。
T3
インスタンス | メモリ(GiB) | vCPU | I/O | オンデマンド単価(USD) | 平均帯域(MB/s) | 1USDあたり帯域(MiB/s) |
---|---|---|---|---|---|---|
a1.medium | 2 | 1 | Up to 10 Gbps | 0.0321 | 34.9 | 1088.6 |
t3.small | 2 | 2 | Low to Moderate | 0.0272 | 72.5 | 2667.0 |
a1.medium は、t3.small のおよそ1/2の性能でした。
平均負荷が常時高く「T3」のバースト性能に伴うvCPU課金が発生する場合、a1.medium が費用帯効果よく利用できる可能性があります。
- t3.smallのvCPU(バースト)課金を含むオンデマンド費比較
CPU平均使用率 | t3.small | vCPU課金 |
---|---|---|
〜20% | 0.0274 | 0 |
25% | 0.0324 | 0.005 |
30% | 0.0374 | 0.01 |
50% | 0.0574 | 0.03 |
70% | 0.0774 | 0.05 |
100% | 0.1074 | 0.08 |
T2,M3
インスタンス | メモリ(GiB) | vCPU | I/O | オンデマンド単価(USD) | 平均帯域(MB/s) | 1USDあたり帯域(MiB/s) |
---|---|---|---|---|---|---|
a1.medium | 2 | 1 | Up to 10 Gbps | 0.0321 | 34.9 | 1088.6 |
t2.small | 2 | 1 | Low to Moderate | 0.0304 | 17.4 | 571.2 |
m3.medium | 3.75 | 1 | Low to Moderate | 0.096 | 18.5 | 193.1 |
a1.medium、旧世代の「T2」「M3」と比較して、2倍以上の性能を費用帯効果よく利用できる可能性が確認できました。
まとめ
ARM CPUを搭載した「A1」ファミリーのインスタンス、安定した性能をコストパフォーマンスよく利用できる可能性が確認できました。 特定CPUに依存しないサーバをEC2で構築する場合には、「A1」も候補として検討頂ければと思います。