初手仕草

ssh しやすいようにする

sudo su - isucon
mkdir .ssh
cd .ssh
sudo cp /home/ubuntu/.ssh/authorized_keys ./
sudo chown isucon:isucon authorized_keys

ssh config

Host isucon12q-1
  HostName TODO
  User isucon
  IdentityFile /home/y011d4/.ssh/isucon-practice.pem
  AddKeysToAgent yes

Host isucon12q-2
  HostName TODO
  User isucon
  IdentityFile /home/y011d4/.ssh/isucon-practice.pem
  AddKeysToAgent yes

Host isucon12q-3
  HostName TODO
  User isucon
  IdentityFile /home/y011d4/.ssh/isucon-practice.pem
  AddKeysToAgent yes

デプロイ鍵作成

ssh-keygen -t ed25519
# deploy する1台目の pubkey は他のマシンの authorized_keys に追加したほうがよさそう?

mysql db 分離

nginx で load balancer

以下は isucon11 での例、序盤は sock ではなく ip になるはず

# 1台目
upstream goecho_socket_server {
    server unix:/tmp/goecho.sock;
    server 192.168.0.13:3333 weight=2;
}

server {
    listen 443 ssl http2;

    ssl_certificate /etc/nginx/certificates/tls-cert.pem;
    ssl_certificate_key /etc/nginx/certificates/tls-key.pem;

    location / {
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_pass http://goecho_socket_server;
    }
}
# 3台目
upstream goecho_socket_server {
    server unix:/tmp/goecho.sock;
}

server {
    listen 3333;

    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://goecho_socket_server;
    }
}

alp, pt-query-digest

mkdir -p ~/tools/alp && cd ~/tools/alp
wget <https://github.com/tkuchiki/alp/releases/download/v1.0.11/alp_linux_amd64.tar.gz>
tar axvf *.tar.gz
sudo cp alp /usr/local/sbin/

sudo apt install percona-toolkit

nginx log を json 化