LoginSignup
3
0

パフォーマンスチューニング実践用環境の構築 〜ISUCON本ハンズオン

Last updated at Posted at 2023-09-18

概要

達人が教えるWebパフォーマンスチューニング〜ISUCONから学ぶ高速化の実践(通称ISUCON本)を読みつつ、
その内容を参考にパフォーマンスチューニング実践用の環境を構築しました。

アウトプットの練習と手順の備忘も兼ねて、その記録を残します。

なおISUCON本の内容およびその感想については、本記事では主題としておりませんのでご留意ください。

検証用サーバ(private_isu)構築

公式リポジトリに記載のAMI IDを参照してEC2を起動します。

アーキテクチャ

x86_64にしました。
(コストを気にして一度arm64で立ててみたのですが、Linux用alpでarm64向けのものが見当たらなかったため作り直しました。)
筆者が見落としていただけで、arm64向けのものもリリース済みでした。

インスタンスタイプ

推奨を無視してt3.microにしました。
スペック不足が無視できなくなるごとにスケールアップおよびインスタンスタイプ変更をしていく方針です。
なおt3.nanoでは流石にメモリ不足でMySQLが起動しませんでした。

ネットワーク設定

SSMでのコンソール接続ではなくSSH接続を使用するためパブリック IP の自動割り当てを有効化しました。
個人使用であり、起動のたびにIPアドレスが変わることも許容できることからEIPは使用しません。

セキュリティグループに必要最低限の穴開けを行います。
(筆者は送信元IPアドレスを手元の端末のみに限定し、sshHTTP(S)ICMPでのアクセスが可能となるよう穴開けしました)

動作確認

上記条件で起動すれば最低限

  • SSH接続できる
  • Webアプリケーションが動作する
  • WebアプリケーションにHTTP(S)接続できる

ことが確認できるはず。
スクリーンショット 2023-09-17 22.50.51.png
ヨシ!

負荷試験環境を用意する

後々ベンチマーカーサーバを別途構築することになると思いますが、ひとまず検証用サーバ内で負荷試験環境を整備します。

アクセスログの出力形式を調整する

alpでnginxのアクセスログを集計するため、まずはアクセスログの出力形式をJSON形式に変更します。
(詳しい手順は省略します)

alpをインストールする

アクセスログの集計のため、alpを公式リポジトリからダウンロードします。

wget https://github.com/tkuchiki/alp/releases/download/v1.0.16/alp_linux_amd64.tar.gz
tar xvzf alp_linux_amd64.tar.gz
sudo install ./alp /usr/local/bin

ベンチマーカー(ab)をインストールする

負荷試験実施のため、abをインストールします。

sudo apt update
sudo apt install apache2-utils

おわりに

ここまでで最低限パフォーマンスチューニングに着手できる環境が整ったかと思います。
余分な課金防止のためインスタンスを停止し、一息つきましょう。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0