https://github.com/catatsuy/private-isu
ami-0b37d5c92add6d0d5
で検索ssh -i aws-ed25519.pem [email protected]
sudo su - isucon
で isucon ユーザーへsudo systemctl status を見ると、 isu-ruby が走ってる→ruby 実装がデフォルトっぽい
sudo systemctl status isu-ruby.service
で path 特定isucon@ip-172-31-46-38:~/private_isu/webapp$ sudo systemctl stop isu-ruby.service
isucon@ip-172-31-46-38:~/private_isu/webapp$ sudo systemctl disable isu-ruby.service
Removed /etc/systemd/system/multi-user.target.wants/isu-ruby.service.
isucon@ip-172-31-46-38:~/private_isu/webapp$ sudo systemctl status isu-ruby.service
● isu-ruby.service - isu-ruby
Loaded: loaded (/etc/systemd/system/isu-ruby.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Jun 16 23:50:16 ip-172-31-46-38 bundle[838]: /home/isucon/.local/ruby/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/libexec/bundle:48:in `block in <top (required)>'
Jun 16 23:50:16 ip-172-31-46-38 bundle[838]: /home/isucon/.local/ruby/lib/ruby/3.1.0/bundler/friendly_errors.rb:103:in `with_friendly_errors'
Jun 16 23:50:16 ip-172-31-46-38 bundle[838]: /home/isucon/.local/ruby/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/libexec/bundle:36:in `<top (required)>'
Jun 16 23:50:16 ip-172-31-46-38 bundle[838]: /home/isucon/.local/ruby/bin/bundle:25:in `load'
Jun 16 23:50:16 ip-172-31-46-38 bundle[838]: /home/isucon/.local/ruby/bin/bundle:25:in `<main>'
Jun 17 00:02:58 ip-172-31-46-38 systemd[1]: Stopping isu-ruby...
Jun 17 00:02:58 ip-172-31-46-38 bundle[486]: I, [2022-06-17T00:02:58.678873 #486] INFO -- : reaped #<Process::Status: pid 838 exit 0> worker=0
Jun 17 00:02:58 ip-172-31-46-38 bundle[486]: I, [2022-06-17T00:02:58.679049 #486] INFO -- : master complete
Jun 17 00:02:58 ip-172-31-46-38 systemd[1]: isu-ruby.service: Succeeded.
Jun 17 00:02:58 ip-172-31-46-38 systemd[1]: Stopped isu-ruby.
isucon@ip-172-31-46-38:~/private_isu/webapp$ sudo systemctl status isu-
isu-go.service isu-ruby.service
isucon@ip-172-31-46-38:~/private_isu/webapp$ sudo systemctl start isu-go.service
isucon@ip-172-31-46-38:~/private_isu/webapp$ sudo systemctl enable isu-go.service
Created symlink /etc/systemd/system/multi-user.target.wants/isu-go.service → /etc/systemd/system/isu-go.service.
UI いじってみる
ssh で isucon ユーザーにログインできるようにする
ssh-keygen -y -f aws-ed25519.pem > aws-ed25519.pub
/home/isucon/.ssh/authorized_keys
に追加ssh config の設定
Host private-isu-bench
HostName ec2-35-78-217-98.ap-northeast-1.compute.amazonaws.com
User isucon
IdentityFile /home/y011d4/.ssh/aws-ed25519.pem
Host private-isu-contestant
HostName ec2-3-112-178-68.ap-northeast-1.compute.amazonaws.com
User isucon
IdentityFile /home/y011d4/.ssh/aws-ed25519.pem
run_bench.sh
の作成
最初の実行
{"pass":true,"score":0,"success":189,"fail":64,"messages":["リクエストがタイムアウトしました (GET /)","リクエストがタイムアウトしました (GET /@jacqueline)","リクエストがタイムアウトしました (GET /@jannie)","リクエストがタイムアウトしました (GET /@jenifer)","リクエストがタイムアウトしました (GET /@juliana)","リクエストがタイムアウトしました (GET /@leah)","リクエストがタイムアウトしました (GET /@mona)","リクエストがタイムアウトしました (GET /@paulette)","リクエストがタイムアウトしました (GET /@rosa)","リクエストがタイムアウトしました (GET /@sarah)","リクエストがタイムアウトしました (GET /@tracey)","リクエストがタイムアウトしました (POST /login)","リクエストがタイムアウトしました (POST /register)"]}
ssh-keygen -t ed25519
SHOW DATABASES
で isuconp
を確認。 use isuconp
SHOW TABLES
で table 確認SHOW CREATE TABLE posts;
などで schema をみる。これを .sql
ファイルに書き込む
;
を忘れずにDROP TABLE IF EXISTS posts;
の次の行に書くbzcat backup/mysqldump.sql.bz2 | sudo mysql
/var/log/mysql/error.log
の所有者がおかしくなってた
sudo chown mysql:mysql error.log
sudo mysqld --initialize
で直った/var/log/mysql
のパーミッションがおかしくなってたのがだめっぽいな、 mysql:mysql
にすべきcat /var/log/mysql/error.log | grep pass
で temporal なパスワードを見つけたsudo mysql -pi.Nz0bnL/:d4
でログインALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';
my.cnf
に skip-grant-tables
を一行足すとパスワード不要で使えるようになる (ヤバ)
dial tcp 127.0.0.1:3306: connect: connection refused
"USER:PASSWORD@tcp(HOST:PORT)/DBNAME?charset=utf8mb4&parseTime=true&loc=Local"
となっている部分を "USER:PASSWORD@unix(/var/run/mysqld/mysqld.sock)/DBNAME?charset=utf8mb4&parseTime=true&loc=Local"
となるようにした