前置き
ISUCON13の過去問を練習で取り組んだ。
最初はアプリケーションサーバーとベンチマークサーバーを同居させ、1台構成で実施していた。
いくつかのボトルネックを解消していくと、早々にベンチマーカー自体がボトルネックとなる。
このときに行ったベンチマークサーバーを分ける設定方法を記録しておく。
環境構成
アプリケーションサーバー / DNSサーバー
- AWS EC2
- ポートUDP/53のアクセスを許可する
- 使用AMI: matsuu/aws-isucon
ベンチマーカーサーバー
- AWS EC2
- 使用AMI: matsuu/aws-isucon
対応内容
アプリケーション/DNSサーバーの env.sh ファイルに記載されている ISUCON13_POWERDNS_SUBDOMAIN_ADDRESS を、ベンチマークサーバーからアクセス可能なIPアドレスに設定する。
今回の環境では、両サーバーを同じVPCに構築したため、アプリケーション/DNSサーバーのプライベートIPアドレスを指定した。
env.sh
- ISUCON13_POWERDNS_SUBDOMAIN_ADDRESS="127.0.0.1" + ISUCON13_POWERDNS_SUBDOMAIN_ADDRESS="アプリケーションサーバー/DNSサーバーのプライベートIPアドレス"
ベンチマークの実行
./bench run --target https://pipe.u.isucon.local --nameserver "アプリケーションサーバー/DNSサーバーのプライベートIPアドレス" --enable-ssl