icon

Blog

ISUCON10予選の過去問練習-1 AWSで環境構築

2021/07/24

ISUCONの過去問(isucon10-qualify)をAWS上で構築するのに手こずったのでメモ


@matsuu さんがAWSのIAMを用意してくれている。神。 https://github.com/matsuu/aws-isucon

今回はISUCON10予選を練習するのでEC2インスタンス起動から ami-03bbe60df80bdccc0 を検索して、何も考えずt2.microで起動すると厳しかったのでm3.mediumで起動。起動しっぱなしなだと結構高そうなのでこまめに停止せねば。

他のメンバーにもアクセスしてほしいので新規キーペアを作成し、SSHでアクセス。

ssh -i "isucon11.pem" ubuntu@ec2-XXXXXXX.ap-northeast-1.compute.amazonaws.com

initial-data設定

書いてある通り順に実行

pip3 install -r requirements.txt
go get github.com/orisano/wayt
make

docker-composeが入っていないみたいだったのでインストール

sudo apt install docker-compose
# isuconユーザではdockerの権限がなかったのでgroupに追加
sudo gpasswd -a $USER docker
exit
sudo -i -u isucon

mysqlのserviceが起動しているため停止

sudo systemctl stop mysql.service

wayt http -u "http://localhost:1323/api/estate/search/condition" から進まなかったので一度goのwebappを起動

cd webapp
make isuumo/go

もう一度実行したらいけた

make

実装をnodejsに切り替え

nodejsで起動

sudo systemctl disable isuumo.go.service
sudo systemctl enable isuumo.nodejs.service

ec2-XXXXXXX.ap-northeast-1.compute.amazonaws.com で起動を確認

セキュリティグループを編集しポート80番を公開

isuumo動いてる。ヨシ!

bench動かしてみる

いろいろあったがなんとか動いたぞ。

./bench -target-url http://localhost:1323
2021/07/25 02:56:14 bench.go:78: === initialize ===
2021/07/25 02:56:19 bench.go:90: === verify ===
2021/07/25 02:56:23 bench.go:100: === validation ===
2021/07/25 02:57:23 bench.go:102: 最終的な負荷レベル: 0
{"pass":true,"score":189,"messages":[],"reason":"OK","language":"nodejs"}