AWS

Amazon Linux2023に負荷試験ツールK6をインストールする

k6-amazon-linux-2023
o_wani

Amazon Linux 2023は、パフォーマンス、セキュリティ、信頼性の向上を目指した最新のAmazon Web Services (AWS) のLinuxディストリビューションです。

この環境において、ウェブアプリケーションやAPIのパフォーマンスをテストするためのツールとして広く利用されているK6のインストール手順について説明します。

1

前提条件の準備

まず、Amazon Linux 2023に必要なパッケージをインストールし、システムを最新の状態に更新します。

$ sudo yum update -y
$ sudo yum install -y curl tar

これにより、K6のインストールに必要な基本的なツールが揃います。

2

K6のバイナリをダウンロード

K6の最新バージョンを公式リポジトリからダウンロードします。以下のコマンドを実行して、最新のリリース情報を取得し、適切なバイナリをダウンロードします。

$ curl -s https://api.github.com/repos/grafana/k6/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
3

ダウンロードしたバイナリを展開

ダウンロードしたアーカイブを展開し、K6バイナリをシステムのパスに移動します。

$ tar -xzf k6-v*.tar.gz
$ sudo mv k6-v*/k6 /usr/local/bin/

これにより、どのディレクトリからでもk6コマンドを実行できるようになります。

4

インストールの確認

インストールが正しく行われたかどうかを確認するために、以下のコマンドを実行してK6のバージョン情報を表示します。

$ k6 version
k6 v0.52.0 (commit/20f8febb5b, go1.22.4, linux/amd64)
5

簡単な負荷テストの実行

K6が正しくインストールされたことを確認したら、簡単な負荷テストを実行してみましょう。以下のサンプルスクリプトtest-script.jsを作成します。

import http from 'k6/http';
import { check, sleep } from 'k6';

export let options = {
  stages: [
    { duration: '30s', target: 10 }, // 30秒間で10ユーザー
    { duration: '1m', target: 10 },  // 1分間10ユーザーを維持
    { duration: '30s', target: 0 },  // 30秒間で0ユーザーに減少
  ],
};

export default function () {
  let res = http.get('https://test-api.k6.io');
  check(res, {
    'status was 200': (r) => r.status === 200,
  });
  sleep(1);
}

このスクリプトを保存し、以下のコマンドで実行します。

$ k6 run test-script.js 

          /\      |‾‾| /‾‾/   /‾‾/   
     /\  /  \     |  |/  /   /  /    
    /  \/    \    |     (   /   ‾‾\  
   /          \   |  |\  \ |  (‾)  | 
  / __________ \  |__| \__\ \_____/ .io

     execution: local
        script: test-script.js
        output: -

     scenarios: (100.00%) 1 scenario, 10 max VUs, 2m30s max duration (incl. graceful stop):
              * default: Up to 10 looping VUs for 2m0s over 3 stages (gracefulRampDown: 30s, gracefulStop: 30s)


     ✓ status was 200

     checks.........................: 100.00% ✓ 723      ✗ 0   
     data_received..................: 8.3 MB  69 kB/s
     data_sent......................: 77 kB   641 B/s
     http_req_blocked...............: avg=4.07ms   min=1.42µs   med=2.57µs   max=297.23ms p(90)=3.63µs   p(95)=4.58µs  
     http_req_connecting............: avg=2.03ms   min=0s       med=0s       max=150.2ms  p(90)=0s       p(95)=0s      
     http_req_duration..............: avg=270.12ms min=146.5ms  med=148.94ms max=6.42s    p(90)=163.64ms p(95)=742.05ms
       { expected_response:true }...: avg=270.12ms min=146.5ms  med=148.94ms max=6.42s    p(90)=163.64ms p(95)=742.05ms
     http_req_failed................: 0.00%   ✓ 0        ✗ 723 
     http_req_receiving.............: avg=46.33µs  min=21.09µs  med=42.46µs  max=296.74µs p(90)=57.77µs  p(95)=70.43µs 
     http_req_sending...............: avg=12.11µs  min=5.36µs   med=11.19µs  max=59.53µs  p(90)=16.09µs  p(95)=18.56µs 
     http_req_tls_handshaking.......: avg=2.03ms   min=0s       med=0s       max=149.35ms p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=270.06ms min=146.45ms med=148.87ms max=6.42s    p(90)=163.59ms p(95)=742ms   
     http_reqs......................: 723     5.996102/s
     iteration_duration.............: avg=1.27s    min=1.14s    med=1.14s    max=7.42s    p(90)=1.23s    p(95)=1.74s   
     iterations.....................: 723     5.996102/s
     vus............................: 1       min=1      max=10
     vus_max........................: 10      min=10     max=10


running (2m00.6s), 00/10 VUs, 723 complete and 0 interrupted iterations
default ✓ [======================================] 00/10 VUs  2m0s

以上の手順に従って、Amazon Linux 2023に負荷試験ツールK6をインストールし、基本的な負荷テストを実行することができます。

K6は強力な負荷テストツールであり、ウェブアプリケーションやAPIのパフォーマンスを評価するのに非常に有用です。ぜひ、実際のプロジェクトでその効果を確認してみてください。

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました