🐟

AWSでテストする前に事前確認をしよう

2023/01/30に公開

みなさんはAWSでネットワーク負荷テストやペネトレーションテストを実施したことはあるでしょうか?
AWSでは侵入テストに記載してある通り、テスト内容によってはAWSへの事前申請が必要になってきます。
いつの間にかテストポリシーが変更になっていることもあるので、テストをする前には毎回確認した方が安全かと思います

これだけでは注意喚起だけで終わってしまうので、今回は実際にiPerf テストで申請を行った際のTipsを共有します。

iPerfテストとは?

iPerfテストとは以下に記載の通りです。

AWSドキュメントより引用

iPerf は、ネットワークパフォーマンスの測定と調整のためのツールです。これは、任意のネットワークについて、標準化されたパフォーマンス測定値を生成できるクロスプラットフォームツールです。

iPerfのバージョンによる違い

iPerf2iPerf3が存在していますが、バージョンにより大きな違いがあります。
差異はIperf 2 & Iperf 3 Comparison Tableの記載通りなのですが、私が利用している中で最も大きな違いだと思ったのは-P, --parallel nオプションの挙動です。
具体的には、iPerf2で-P 10オプションを付与するとThreads単位でテストが行われるため、マルチスレッドCPUを利用していた場合はマルチスレッドで10多重テストが実行されますが、iPerf3で-P 10オプションを付与するとProcesses単位でのテストとなり、マルチスレッドCPUを利用していた場合もシングルスレッドで10多重テストが実施される点です。

この点は測定する帯域幅や条件にもよりますが、iperf3ではCPU処理がボトルネックとなる可能性があります。
iPerf3で40Gbps以上の帯域測定をする際には、iperf3 at 40Gbps and aboveに記載されているようにサーバーとクライアントをバックグラウンドで複数実行するのが良いようです。

iPerfテストの申請方法

Simulated Event Submissions Formに沿って申請すれば、AWSさんから確認のメールがきます。
基本的には申請してから2営業日以内に初回のレスポンスがあるようです。

私の場合はiPerfテスト内容の詳細や必要性(ビジネスニーズ)などをメールで5往復やりとりし、無事にiPerfテストを承認してもらうことができました。AWSさんの該当チームのレスポンスもとても良く、全ての返信は1営業日以内にはお返事いただけました。
(iPerfテストを実施したい10営業日くらい前には申請を出せばテスト実施できるのではないかと思いますが、個々のケースにより承認までの所要日数は異なると思いますので、参考までに私のケースの承認までの時間を記載しておきます)

iPerfの導入方法

今回はAmazon Linux2へyumコマンドを利用して、iPerf2 or iPerf3を導入する方法を共有します。
Amazon Linux2以外のOSで利用したい方や、yumコマンドを利用したくない方はiPerf公式からご自身の環境に合ったものをご選択ください。

iPerf2

iPerf2はAmazon Linux2のデフォルトyumリポジトリには存在しないためepelリポジトリ追加することでyumコマンドを用いて簡単にインストールできます。

iPerf2 インストールコマンド

$ sudo amazon-linux-extras install -y epel && sudo yum install -y iperf

iPerf3

iPerf3はAmazon Linux2のデフォルトyumリポジトリに存在しているため、yumコマンド一発で簡単にインストール可能です。

iPerf3 インストールコマンド

$ sudo yum install -y iperf3

その他 tips

  • クオータは事前に確認しましょう
    今回はテスト前に気づけたのでよかったですが、テストするリソースに応じたクオータを増やしておきましょう。
    2019年にAWS Service Quotasがリリースされたことにより、以前はAWSサポート経由でクオータの上限緩和申請をする必要があったのですが、AWS Service Quotaにリストされているものであれば、AWS Service Quotasから上限緩和申請をすることができるようになりました。

参考までに私の場合はvCPU数がEC2/Fargate共に6となっており、事前にクオータを増やしていなければ計画通りにテスト実施できなかった可能性がありました。
2023年1月に以下内容でAWS Service Qutotaにて上限緩和したところが、テスト前に慌てないためにも事前にクオータを増やしておくことをお勧めします、1時間程度でクオータを増やしてもらうことができました。

EC2 vCPU数のクオータ上限緩和申請内容

  • Quota name
    Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances
  • Description
    Maximum number of vCPUs assigned to the Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances.
  • AWS default quota value
    5
  • Requested quota value
    128

おわりに

クラウドは従量課金という特性から、オンプレミスと比べて実際に環境を構築して計測するコスト(時間/費用 etc..)は格段に低いと思います。
一方で容易に計測できるため、事前の検討や確認が不十分のままクラウド利用規約に抵触するようなテストを実施してしまう場合もあるかもしれません。
今回の記事は知らず知らずのうちに利用規約に抵触してしまわないように十分注意しましょうという注意喚起を含めた記事となっております。

この記事を読んでくださった皆様が少しでもAWSに興味を持ってくれると幸いです。

ここまで読んでくださってありがとうございました。

Discussion