

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 使用するツール
<a name="tools"></a>

## k6
<a name="k6"></a>

[k6](https://k6.io/) は、ロードソースのサポート、ホスティング、およびロードテストを整理、実行、分析するための統合されたウェブインターフェイスを提供する無料のツールです。

k6 は Go で記述され、単一の実行可能ファイルとして出荷されます。ソースシステムのすべてのコアを使用します。JavaScript のサブセットを使用して、テストプロファイルを含む複雑なシナリオを実行します。JavaScript では、効率的に実行される複雑なテストシナリオを作成できます。出力は概要でも、複数のターゲットストアの詳細な出力でもかまいません。拡張機能はサポートされていますが、公式の k6 拡張機能を除き、適切に管理された拡張機能はほとんどありません。

サーバーが十分に大きければ、ほとんどの負荷テストを単一のサーバーから実行できます。これにより、複雑な分散負荷テストを回避できます。

負荷テストの結果は、[Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)、[Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)、またはより詳細な分析を行う別のモニタリングサービスに転送できます。シナリオコードに成功基準を含めて、継続的インテグレーション (CI) パイプラインで実行することもできます。

## Vegeta
<a name="vegeta"></a>

[Vegeta](https://github.com/tsenart/vegeta) 負荷テストは別のコンセプトを採用しています。同時実行を定義したり、システムに負荷をかけたりする代わりに、特定のレートを定義します。また、このツールはシステムの応答時間とは無関係に負荷を作成します。

これは、応答時間やテストの影響を打ち消して、バックプレッシャーのシナリオやバックエンドプロセスの長期的な動作を調べる最適な方法です。このツールは複雑な動作はできませんが、リクエスト間で情報を渡す必要のない任意の一連のリクエストを実行できます。

Vegeta は Go アプリケーションのライブラリとしても使用できます。これにより、強力なバックエンドで独自の負荷テストを実装できます。ただし、独自のテストを実装するよりも別のツールを使用する方が理にかなっている場合もあります。

## Hey および ab
<a name="hey-ab"></a>

Apache HTTP サーバーのベンチマークツールである [Hey](https://github.com/rakyll/hey) と [ab](https://httpd.apache.org/docs/2.4/programs/ab.html) は、コマンドラインから指定の負荷を単一のエンドポイントで実行できる基本的なツールです。ツールを実行するサーバーがある場合、これは負荷を発生させる最も速い方法です。ローカルのラップトップでも動作しますが、高い負荷が発生するほど強力ではない場合があります。

## Apache JMeter
<a name="apache-jmeter"></a>

[Apache JMeter](https://jmeter.apache.org/) は、長年の経験で培われたパワーホースです。長年にわたって、Apache JMeter は信頼性を向上させ、機能を追加してきました。グラフィカルインターフェイスを使用することで、プログラミング言語を知らなくても複雑なテストを作成できます。BlazeMeter などの企業が Apache JMeter をサポートしています。

## での分散負荷テスト AWS
<a name="distributed-load-testing-on-aws"></a>

[AWS ソリューションでの分散負荷テスト](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/)は、カスタム Apache JMeter スクリプトの使用をサポートしています。での分散負荷テスト AWS ソリューションを使用すると、Apache JMeter スクリプトをアップロードしてクラウドでテストを実行できます。もう 1 つの利点は出力サポートです。イベントをタイムストリームデータベースにストリーミングし、その上で高度なクエリを実行できるため、完全なテストの実行に関する詳細なインサイトを得ることができます。このツールを使用するには、[AWS コンソールでテンプレートを起動します](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?&templateURL=https://solutions-reference.s3.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws.template&redirectId=PrescriptiveGuidance)。

## 砲弾
<a name="artillery"></a>

砲弾は、新しいクラウド対応機能を提供します。Artillery の際立った機能の 1 つは、 AWS Lambda 関数 (コンテナモード) や などのサーバーレスアーキテクチャを使用して AWS アカウント 、 から直接テストを実行する機能です AWS Fargate。このサーバーレスアプローチにより、専用インフラストラクチャを管理する必要がなくなり、負荷テストのための高度にスケーラブルで費用対効果の高いソリューションを提供します。

Artillery には、テストを実行するために必要なリソースをプロビジョニングおよび削除するための自動化が組み込まれています。従来のツールとは異なり、Infrastructure as Code (IaC) スクリプトを記述したり、クラウドリソースを手動で管理したりする必要はありません。砲兵はすべてを処理するため、最新のクラウドネイティブアプリケーションにとって効率的で開発者フレンドリーな選択肢となります。

最後に、Artillery は既存の継続的インテグレーションおよび配信 (CI/CD) パイプラインと統合するための GitHub アクションをサポートしています。