지난 8월 23일부터 워드프레스 블로그에 대한 디도스 (DDoS) 공격이 지속적으로 이루어지고 있습니다. 어제까지 14차례나 디도스 공격이 있었으며 이틀에 한 번꼴로 공격이 들어왔습니다.
처음에는 디도스 공격에 당황하여 제대로 대응하지 못했지만, 시간이 지나면서 다양한 패턴으로 이루어지는 디도스 공격에 대응할 수 있게 되었습니다.
디도스 공격 트래픽 소모량과 초과 트래픽 비용
클라우드웨이즈(Cloudways)의 Idle CPU 모니터링 페이지에서 지난 한 달 동안 발생한 디도스 공격의 흔적을 확인할 수 있습니다.
디도스 공격이 발생하면 CPU 사용량이 급증하면서 서버가 매우 느려지거나 다운되는 현상이 발생합니다. 그러면 Cloudflare에서 보안 모드를 Under Attack으로 전환하고 클라우드웨이즈에서 공격에 사용된 IP들을 확인하여 차단하면 대부분의 공격을 방어할 수 있습니다.
위의 그래프는 유효 CPU (Idle CPU) 모니터링 그래프입니다. 아래로 내려갈수록 CPU 사용률이 높아집니다. 바닥에 닿으면 CPU 사용률이 100%에 도달하고 사이트는 매우 느려지거나 다운됩니다.
클라우드플레어에서 디도스 공격 알림을 설정하면 디도스 공격이 감지될 경우 이메일을 통해 알림이 전송됩니다.
알림 이메일을 받으면 Cloudflare에서 Under Attack 모드를 활성화하고 클라우드웨이즈에서 공격에 이용된 IP들을 차단하는 방식으로 대응하고 있습니다.
지난 8월 24일 이후부터 어제까지의 HTTP 요청수와 트래픽 소모량을 체크해보았습니다.
약 한 달 동안 6억 회가 넘는 HTTP 요청이 이루어졌고 3TB의 트래픽이 발생했습니다. 이 중 2TB 정도가 클라우드웨이즈 CDN에서 감당한 것으로 표시되고 있습니다.
CDN은 평소에 비활성화하고 디도스 공격이 들어오는 경우에 활성화하고 있습니다.
서버의 실질적인 트래픽은 한 달 동안 500GB 내외가 될 것으로 추정되므로, 디도스 공격에 의하여 2.5TB의 트래픽이 약 25일 동안 발생했습니다. 이때까지 14번의 공격이 있었고, 2차 공격 때부터 Cloudflare를 사용하여 방어하기 시작했으므로 약 13회 공격 동안 2.5TB의 트래픽이 발생한 것으로 추정할 수 있습니다. 그러므로 1번의 공격에 200GB 정도의 트래픽이 소모된 것으로 생각할 수 있습니다.
개별 공격의 데이터 소모량을 살펴보면 1번의 공격에 500GB 내외의 트래픽이 소모된 것으로 표시되고 있어 위의 그래프와는 조금 차이가 있습니다.
디도스 공격이 발생할 때마다 200~600GB 정도의 트래픽이 소모되는 것으로 보이고, 공격 시간이 길어지면 이보다 더 많은 트래픽이 소모되기도 하였습니다.
다행히 트래픽의 상당 부분을 클라우드플레어(Cloudflare)에서 감당해주고 있습니다.😄
디도스 공격 전에는 클라우드웨이즈에서 2GB 램 크기의 서버를 사용했지만, 디도스 공격을 감당할 수 없어 4GB 크기로 업그레이드했습니다. 4GB 서버에서는 3TB 트래픽(대역폭)을 제공합니다.
클라우드웨이즈에서 초과 트래픽에 대한 비용
클라우드웨이즈에서는 할당된 트래픽을 초과할 경우 초과 트래픽에 대하여 추가 비용이 발생합니다.
Vultr에서 할당된 대역폭을 초과할 경우 북미와 서유럽 서버의 경우 GB당 0.01달러가 청구됩니다. 지역에 따른 비용 증가로 인해 싱가포르와 도쿄(일본) 서버의 경우 GB당 0.025달러가, 시드니(호주) 서버는 GB당 0.05달러가 청구됩니다.
서울 서버에 대한 언급이 없어서 클라우드웨이즈에 물어보니 서울 서버를 사용하는 경우 초과된 트래픽에 대하여 문의해 보니 도쿄와 싱가포르 서버와 비슷한 수준이 될 것이라고 합니다.😄
디도스 공격이 염려되거나 디도스 공격으로 어려움을 겪는 경우 Cloudflare에 가입하여 도메인을 연동하고, 그래도 방어가 안 된다면 클라우드웨이즈와 같은 호스팅에서 IP 주소를 차단하면 어느 정도 방어가 될 것입니다.
클라우드웨이즈에 대한 자세한 내용은 다음 글을 참고해 보세요.
참고
https://avada.tistory.com/3451
https://avada.tistory.com/2897
https://avada.tistory.com/2299