[AWS] ConoHa 에서 AWS 로 이전하면서 느낀점 5. 서버이야기 | Posted on 2019. 9. 27. 13:58
한국 서버에 ALB ( Application Load Balancer ) 를 추가하였습니다.
( EC2 는 싱가포르에 ALB 추가하면 문제 없을듯한.. 종종 끊기는데, 그건 현재 한국 리전에서 전세계 트래픽 다 감당해서 생기는 문제;; 오늘 피크타임 오기전까지 추가 예정입니다. )
한국과 싱가포르 각기 서버 한대로는 도저히 동접을 받아낼 수 없어서;;
로드밸런서로 밸런싱중입니다.
그리고 터지는 RDS..
( 현재 사용중인 RDS가 대충 연결 60개가 한계인듯한.. 60언저리만오면 DB 연결이 끊기는;; )
피크시간대에 계속해서 RDS가 터져나가면, RDS 도 올려야;;
( 대체 이걸 ConoHa 서버는 어떻게 1대로 버텼냐;; 지금 나눈것만 겁나 많은데;; )
ALB 를 추가하면서, AWS ACM 을 적용하였습니다.
일단 ALB 에서 서버 체크를 하는데요.
HTTPS 로 설정하셨다면, 버츄얼호스팅 가장 위에 있는 호스팅으로 접속 테스트를 하게 됩니다.
ll 로 폴더를 확인해보면, SSL 설정된 가장 위에 있는게, api.lotto-haru.kr.conf 기 때문에, api.lotto-haru.kr 로 서버 테스트를 하게 됩니다.
즉, https://api.lotto-haru.kr 의 접속이 가능해야합니다.
( 만약 접속이 불가능하거나, 에러가 발생시, 서버가 살아있고, 다른 사이트들은 다 접속이 가능해도, ALB 대시보드에서는 서버가 죽은걸로 표시됩니다. )
ACM이나 ALB에 대한건 다른 블로그에서도 설명을 하기 때문에..
제가 고민한 부분을 설명하자면..
ALB에 ACM에서 발급한 인증서와 연결을 하고나면, 서버쪽에서도 ALB와의 통신을 연결해줘야합니다.
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
ubuntu 18.04 기준으로 80번 포트 설정을 복사해서 443 포트 설정을 만들고, 위의 텍스트를 SSL 설정에 추가해주셔야 합니다.
SSL 사용을 선언하고, 서버에 기본적으로 내장된 SSL 을 사용하도록 합니다.
그러면 서버와 ALB가 https 로 통신을 하게 됩니다.
대부분 그냥 ACM 에서 발급 받아서, ALB와 연결하는거까지만 설명이 있어서, 고생했네요;;
( 저 설명 써주는게 그렇게 힘들었냐.. )
ps. 종종 CSS랑이 로드 못해서 깨지는데, 지금 assets 들이 다 파편화 되어있어서, 사이트 리뉴얼하면서 CDN 사용 예정입니다.
리뉴얼까지 기다려주시면 해결하겠습니다.
( 문제는 피크타임만 되면, 서버가 계속 죽네;; )
ps2. 로드밸런싱을 걸어도 서버가 계속 죽어서, 안죽는 플랜을 찾는데 고생했네요;;
ps3. RDS가 죽는 문제도 해결을 해야할텐데..
이쪽은 쿼리 최적화 아니면 플랜 상승 양자 택일이라..
( 현재도 쿼리 최대한 최적화 되어있고, 대도록이면 중복해서 로드하는건 전부 캐시를 쓰고있는데;; 역시 데이터가 너무 많아서 생기는 문제가;; 테이블을 나누는 방법을 고민해봐야;; RDS 그래프가 올라갔다 내려갔다 하는 이유가 많은 데이터가 쌓인 테이블을 한꺼번에 많은 사람들이 셀렉트하면 생기는 병목이라;; )