새로 시작할 서비스의 DB용량을 정하는게 어려웠다.
예측불가능했기 때문이다.
새 서비스의 트래픽을 정확히 예측할 수 있으면 좋겠으나, 누가와도 정확히 예측하긴 어려울 것이다.
조금 비싸더라도 RDS를 사용하기로 결정은 했으나, 어느정도 감당될 지 감이 안왔다..
경험부족이 크지 않을까.
여러 이유들로 DB단에서 Auto Scalling이되는 Serverless를 사용하기로 했다.
다만 레퍼런스가 부족하고, 외부 접속이 허용 안되는 문제점이 있었다. (특히 워크벤치 힝..)
안타깝게도 나는 워크벤치없인 살 수 없는 몸이 되어버린 찐따였다.
떄문에 외부접속을 허용시켜보기로 했다.
여러 방법이 있지만 그중 haproxy를 결정했다.
haproxy는 기본적으로 Reverse Proxy형태로 동작하며, 서버 앞단에서 오는 요청을 받아 뒷단의 서버에 전달하고, 결과를 리턴받아 다시 전달하는 역할을 한다.
EC2를 판다.
우분투 성애자라 우분투18.04로 팠다.
Ubuntu에서 haproxy 설치
apt update apt install haproxy -y
haproxy -v 했을 때
HA-Proxy version 1.8.8.-1ubuntu0.11 2020/06/22 이런게 뜬다면 성공
haproxy 설정 변경
설정을 하나하나 바꾸기 귀찮으니까 삭제했다가 다시 깔자.
sudo rm /etc/haproxy/haproxy.cfg
sudo vi /etc/haproxy/haproxy.cfg
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode tcp log global option tcplog option dontlognull option http-server-close option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 listen aurora-db bind *:8306 balance roundrobin mode tcp option tcplog option tcpka server rds 엔드포인트를넣자.amazonaws.com:3306 check
bind 옵션이 기존 레퍼런스엔 없었는데 설정을 뒤지다가 찾았다..
딱봐도 8306으로 들어온걸 서버리스의 3306으로 리턴시키는 것 같이 생겼다.
당연히 ec2 보안그룹에도 8306을 열어줘야한다.
haproxy -c -f /etc/haproxy/haproxy.cfg
치고 Configuration file is valid가 뜨면 성공이다.
차례대로 haproxy를 반영하고 재시작한다.
sudo systemctl daemon-reload sudo systemctl start haproxy
워크벤치에서 확인 8306으로 연결시켜준다. 끝
'Back > Server' 카테고리의 다른 글
[Ubuntu] firebase-admin - error:25066067:DSO support routines:dlfcn_load:could not load the shared library (0) | 2022.06.12 |
---|---|
[EC2 부하테스트] Apache ab test (0) | 2021.11.23 |
AWS WAF Custom Rule 간단 예제 (2) | 2021.11.10 |
[MySQL] Full Text Search Aws Aurora (0) | 2021.11.02 |
몽고DB 아틀라스 연결 (0) | 2021.10.09 |