인터넷과 중복의 필요성

CIO
2주 전에 더 플래닛(The Planet)이라는 큰 호스팅 업체에 화재가 있었다. 겨우 시설 하나가 파괴되었을 뿐인데, 무려 9,000개의 웹 서버가 따라서 다운되어, 필자의 웹사이트를 비롯 많은 사이트들이 열리지 않았다.

전기 화재였기 때문에, 소방당국은 더 큰 피해를 막고자 예비 발전기를 구동하지 못하게 했다. 그래서 더 플래닛을 복구하는 이틀 동안 9,000개 서버가 다운된 상태로 있어야 했다. 이번 화재 사건에 대한 업체들의 반응은 엇갈렸다. 일부는 더 플래닛이 복구에 성공해 환영의 뜻을 보였지만, 일부는 당장 서버 업체를 바꾸겠다고 나선 것이다.

보통 호스팅 업체는 대안 전력 자원과 이런 사고에 대비한 방책을 갖고 있지만, 더 플래닛의 경우에는 특수한 사고로 서버를 정상으로 돌리는데 시간이 지체되었다. 물론, 이틀 후에 서버가 정상적으로 돌아오긴 했지만, 인터넷에 많은 생활을 의지하고 있는 한, 이런 사건이 단순한 불편함이 아니라 중대한 문제가 되는 것은 시간 문제일 것이다.

인터넷의 구조는 불행하게도 사용자들이 모든 것을 조절할 수는 없게 돼있다. 이 말은 2012년에 인터넷이 모두 붕괴할 것이라거나, 2년 후에 인터넷 사용을 못할 것이라는 의미가 아니다. 도메인 네임 시스템(DNS)라는 단 하나로 인터넷 전체가 붕괴될 수 있다는 말이다.

모든 컴퓨터는 IP 주소로 인터넷에 연결돼있다. 쉽게 IP는 컴퓨터 전화번호라고 생각하면 된다. 이것을 좀 더 사용하기 편하도록 IP 주소를 www.google.com처럼 주소 창에 치는 도메인으로 대체한다.

DNS 서버가 이런 도메인을 관리한다. 브라우저가 도메인을 서버로 보내면, 해당 IP 주소를 찾아 연결시키는 것이다. 쉽게 말해 www.google.com이라고 치면 바로 구글 사이트로 넘어가게 하는 역할을 한다.

DNS 서버의 구조는 나무와 같다. 나무에 뿌리-가지-잎이 있는 것처럼, DNS 서버에도 계층이 있다. 예를 들어, 사용자가 www.google.com이라고 주소를 치면 컴퓨터는 DNS 서버에 www.google.com이라는 도메인을 가진 컴퓨터의 IP 주소가 무엇인지 찾으라고 명령한다. DNS 서버는 .com 도메인을 가진 DNS 서버에 google.com이 있는지 묻고, 이것을 찾은 서버는 브라우저에 IP주소를 전달하는 구조다.

더 플래닛이 다운되었을 때, 더 플래닛 DNS 서버가 정보요구에 대답을 하지 못해 하부 서버들도 함께 다운된 것이다. 본질적으로, 9,000개의 서버가 원래 없는 것처럼 나타난다. DNS 서버는 서비스 거부 공격의 주요 표적이다. 만일 서버가 너무 많은 요구를 받으면, 존재하지 않는다고 표시된다.

그 동안 호스팅 업체가 DNS 두 개 서버만 운영하는 것을 문제없다고 여겨왔다. 하지만, 더 플래닛의 서버 한 개가 다운되었을 때 다른 하나는 전혀 도움이 되지 않았다. 만일 서버가 돌아왔다고 하더라도 하나로 처리하기에는 정보양이 너무 많아 서버가 존재하지 않는다고 표시되었을 것이다.

따라서 최소한 같은 장소에 있지 않고, 장애복구를 지원할 수 있는 복수의 DNS 서버를 선정해서, 만약 도메인 서버 한 개에 장애가 발생하면, 다른 서버가 지원할 수 있도록 해야 한다. 인터넷 사용은 언제나 위험에 노출되어 있기 때문에, 항상 대비해야 한다.