6월 달까지 배포할때 L4에 접속하여 처리했습니다.
여하튼, L4에서 서버를 ena, dis 를 하지 않고, 어플리케이션에서 제어할 수 있는 방법이 전 회사에서는 있었습니다. 외부 웹페이지에서 특정권한만 공유하여, 웹페이지에서 버튼 하나로 붙였다가 띄었다가 하는 형태인데요.
현재 회사에서는 해당 페이지에 별도의 권한이 없이 모든 권한이 있는 페이지형태로 접근하는 것이라, telnet 으로 접속하여 처리하였습니다.
그러다가 6월 경 증 Meetup의 글을 보게 되었습니다. Safe Deploy - 안전하게 L4 에서 제외하는 방법인데요.
방화벽 룰에 L4 쪽 IP 를 추가해서, L4에서 health check 시 서버가 죽었다고 판단하는 방법이었습니다.
배포할 deploy 서버에 접속하여, 들어오는 요청을 DROP하는 방화벽 룰 추가하여 L4 에서 제거하는 방법으로
sudo iptables -A INPUT -s L4ip -p tcp --dport 80 -j DROP
배포 완료 후, 방화벽 룰을 삭제하여 다시금 L4를 통해 유입되도록 합니다.
sudo iptables -D INPUT -s L4ip -p tcp --dport 80 -j DROP
위의 방법으로 대략 5~10초 정도 안에 유입이 중단되었다가 다시 유입되는 것을 확인했습니다. 해당 글을 보고 아이덴티티에 엄청난 충격을 주었습니다. iptables 을 알고 있고, L4 Ip도 알고 있는데, 해당 방법을 연결해서 사용하는 것을 생각하지 못했던 겁니다. 바로 서버한대에 테스트를 진행해봤는데, L4 에 접속해서 enable, disable 하지 않고도, 안정적으로 deploy 할 수 있었습니다.
6월달부터, 안정적인 배포를 진행하고 있었는데, 생각이 나는 김에 정리해서 올립니다.