백업 서비스 크래시플랜 사용기
월 비용은 고정하고 싶지만 그래도 백업은 하고 싶었습니다.

얼마 전 일본에서도, 그리고 한국에서도 출판 관련 업계가 랜섬웨어의 공격을 받아 모든 데이터를 잃어버렸을 뿐 아니라 모든 데이터가 공개되어 문제가 일어났다는 소식을 접했습니다. 이미 이 세계는 제로데이 공격이 빈번하게 일어나는 정말 무시무시한 곳이 된 지 오래지만 컴퓨터를 사용해 일상생활 뿐 아니라 직업적 업무를 처리하는 사람들조차 세상이 이런 무시무시한 곳이라는 사실을 잘 깨닫지 못하는 것 같습니다. 사실 개인이 보안에 덜 취약해지는 방법은 별 것 없습니다. 여러 소프트웨어는 그나마 보안 문제가 발견되면 그때그때 수정하곤 하기 때문에 가능한 최신 버전의 소프트웨어를 사용할 것, 출처가 확인된 안전한 소프트웨어만 사용할 것, 업무용 기계로 업무와 별 관계 없는 행동을 하지 말 것 정도입니다. 그리고 여기에 조금 더 추가한다면 만약 이 모든 데이터가 사라질 경우를 대비해 안전한 백업을 갖추는 것입니다. 사실 여기까지 하고 나면 개인 수준에서 할 수 있는 보안 위협에 대한 대응은 할만큼 했다고 볼 수 있습니다. 여기에 제대로 된 보안 소프트웨어를 사용하는데 돈을 들인다든지 하면 더 좋겠지만 거기까지 요구하기에는 컴퓨터를 사용하는 여러 사람들이 처한 상황이 모두 제각각이어서 쉽지 않습니다.
유튜브에 올라오는 영상을 무지성으로 재생하다 보면 종종 아주 오래된 운영체제를 인터넷에 연결해놓고 얼마만에 망가지는지 실험하는 내용이 있습니다. 아주 오래된 운영체제는 인터넷은 커녕 네트워크조차 지원하지 않아 사실상 인터넷을 통한 공격이 불가능하지만 어설프게 오래된 운영체제는 초보적으로나마 인터넷 기능을 지원해 좀 귀찮은 절차를 거치면 현대 인터넷에 연결할 수 있습니다. 그런데 현대 인터넷은 어처구니 없을 정도로 공격자들의 천국이어서 이런 무시무시한 아포칼립스를 가정하지 않고 개발된 오래된 운영체제들은 현대의 아포칼립스에 내놓자마자 즉시 문제를 일으킵니다. 아무 것도 안 하고 그저 인터넷에 물려 놓았을 뿐인데 잠시 후 자동화된 공격에 의해 개방된 네트워크를 통해 취약점 공격이 시도되고 아주 오래된 운영체제는 그리 오래 걸릴 것도 없이 공격자의 취약점 목록 첫 페이지에 있는 시도가 끝나기도 전에 문제를 일으킵니다. 실행한 적 없는 잘 모르는 프로세스가 돌아가고 이들은 오래된 운영체제가 설치된 하드웨어의 스토리지를 구석구석 뒤져 쓸만한 데이터가 있는지 검색할 뿐 아니라 혹시 같은 로컬 네트워크 안에 다른 기계가 있는지 찾아보고 있었습니다. 동시에 또 다른 공격자는 이미 첫 번째 다른 공격자가 이 기계의 스토리지에 별 게 없다는 사실을 파악한 다음에도 그나마 남아 있던 파일을 암호화 하기 시작합니다. 하지만 불행하게도 두 번째 공격자가 스토리지 암호화를 끝내고 랜섬 공격을 시도하기도 전에 또 다른 공격자의 프로세스가 이들과 충돌해 운영체제에 크래시를 일으키고 고작 몇 분 만에 이 오래된 운영체제는 부팅이 불가능한 상태에 빠진 다음 영상이 끝납니다.
이런 무시무시한 세계에서 랜섬웨어로부터 공격을 받는 것 자체는 그렇게까지 부끄러운 일은 아니라고 생각합니다. 비즈니스에 타격을 입긴 하겠지만 문제 상황을 맞이한 대형 항공기 조종사들이 일단 셋 까지 세면서 아무 것도 하지 말고 상황을 파악한 다음 침착하게 플라이, 내비게이트, 커뮤니케이트의 순서로 비상 절차를 수행하는 것과 마찬가지로 일단 상황을 파악하고 침착하게 문제를 일으킨 기계를 완전히 초기화한 다음 보안 수준을 올린 다음 백업으로부터 이전 환경을 복원해 다시 비즈니스로 복귀하기만 하면 될 일입니다. 이 과정에 시간이 좀 걸릴 수 있기 때문에 이전 환경을 복원하는 며칠 동안 비즈니스가 이전과 같이 원활하게 동작하지 않을 수는 있지만 일단 복원이 끝나고 비즈니스 환경이 동작하기 시작하면 이전과 같이 원래 업무로 돌아갈 수 있을 겁니다. 보안 강화 역시 특별한 것 없이 가능한 범위 안에서 운영체제의 최신 버전을 사용하고 회사가 찢어지게 가난해 대표님은 연두색 번호판이 달린 멋진 검정 세단을 타고 다니지만 직원들에게는 지원이 끝난 오래된 운영체제를 바꿔주지 않는 구멍가게에 불과하다면 이 틈새를 노린 보안회사들이 판매하는 그리 비싸지 않은 보안 소프트웨어를 통해 위험을 완화할 수 있습니다. 그러니까 일단 운영체제를 초기화하고 가능한 모든 업데이트를 받은 다음 보안 소프트웨어를 설치한 다음 이전 환경을 복원해 실행해보고 정상 동작하면 이전처럼 비즈니스에 복귀하면 된다는 이야기입니다. 그런데 상황을 살펴보니 이들은 그렇게 할 수 없었습니다.
놀랍게도 이들은 그들의 핵심 비즈니스를 동작하게 만들어주는 정보시스템에 대한 아무런 백업도 가지고 있지 않았다고 합니다. 수많은 거래처들이 재고를 확인하고 주문을 넣고 이에 따라 직접 사람들이 움직여 물건을 배송하고 이들이 판매됨에 따라 감소하는 재고를 전체 시스템이 반영해 시스템을 사용하는 모두가 재고 현황, 특정 물건의 현재 남은 재고가 있는 지점 위치 따위를 관리하는 이 중요한 시스템은 백업 없이 운영되고 있었던 모양입니다. 그래서 이 시스템을 운영하는 여러 사람들이 만든 소프트웨어 조각들 중 어느 하나가 앞서 오래된 운영체제가 인터넷에 노출된 후 몇 분만에 만신창이가 된 것처럼 어느 한 소프트웨어의 취약점을 이용해 실행된 랜섬웨어가 모든 파일을 암호화하고 마지막으로 시스템을 사용할 수 없게 만든 다음 돈을 내 놓으라는 화면을 표시하는 그 순간까지도 오직 지금 운영되고 있는 이 시스템과 시스템에 설치된 이미 암호화되어 사용이 불가능해진 스토리지 말고는 아무런 백업도 없었고 이 시스템을 통한 비즈니스는 완전히 중단될 수밖에 없었습니다. 사실 현대에 어지간히 보안 문제에 관심이 있지 않고서는 컴퓨터를 사용하는 개인이나 심지어 컴퓨터를 사용해 비즈니스를 운영하는 개인과 회사조차도 철저하게 보안 이슈에 대응하기는 쉽지 않습니다. 앞서 보안을 유지하는 행동이 그렇게 복잡하지 않다고 이야기하긴 했지만 저 정도 조치 조차도 하루하루 업무에 바쁜 최종 사용자 입장에서는 복잡하고 힘들게 느껴질 수 있습니다. 하지만 이 모든 상황에도 불구하고 백업이 전혀 없었다는 사실은 이 소식을 접한 제 속을 완전히 뒤집어 놓기에 충분했습니다.
아니 도대체 어떻게 컴퓨터를 통해 구동되는 정보시스템을 통해 비즈니스를 영위하는 사람들이 정보시스템을 백업하지 않을 수 있나요. 굳이 랜섬웨어의 공격을 받지 않더라도 정보시스템을 구동하는 하드웨어는 수명이 있어 언제든 이를 구성한 아무 기계가 고장나며 전체 시스템에 문제를 일으킬 수 있습니다. 스토리지 기계는 언제든지 에러를 토해내며 그 안에 있던 수 기가에 달하는 중요한 정보에 영구적으로 접근할 수 없을 수 있고 컴퓨터 안에 들어 있는 여러 칩들 역시 온도에 취약해 모터에 의해 돌아가는 팬이 고장나면 순식간에 작동을 멈추거나 영구적으로 고장 날 수 있습니다. 온갖 이유로 정보시스템을 구동하는 기계가 고장나 정보시스템이 작동을 멈출 수 있으며 이런 고장 원인 중 일부는 스토리지 디바이스에 문제를 일으켜 지금까지 긴 세월에 걸쳐 저장해 온 모든 비즈니스 정보에 영구적으로 접근할 수 없게 될 수 있습니다. 그나마 다른 기계는 고장나면 같은 역할을 하는 새 기계를 구입해다가 교체하고 시스템을 다시 시작하면 대부분 해결할 수 있습니다. 기계를 사러 갔다 와서 교체하는 몇 시간 동안 시스템을 사용할 수 없겠지만 정보시스템이 다시 시작되면 그 날은 좀 운이 없었던 것으로 하고 다들 다시 일상 업무로 복귀할 수 있습니다. 하지만 스토리지는 한번 고장나면 거기 기록된 정보가 모두 사라지므로 이는 새 스토리지를 사 온다고 해서 일상 업무로 복귀할 수 있지 않습니다. 마침 기계를 구성하는 다른 모든 기계는 백업이 불가능하지만 유일하게 스토리지만은 이 안의 정보를 다른 장소에 주기적으로 복사했다가 문제가 일어나면 그 장소로부터 다시 복사해 와 문제를 해결할 수 있는데 이를 백업이라고 하고 컴퓨터를 통해 구동되는 정보시스템에 의존하는 비즈니스를 수행하는 모든 사람들은 만약을 대비해 백업을 해야만 합니다.
백업 없이 컴퓨터를 사용하고 백업 없이 정보시스템에 의존하는 비즈니스를 수행한다는 말은 마치 하나 뿐인 목숨을 가지고 낙하산 없이 비행기에서 뛰어내려 땅 위에 설치된 거대한 망 위에 떨어지는 스턴트를 한 시간마다 반복하는 거나 다름 없습니다. 물론 대부분은 별 일 없이 살아서 땅에 내려올 수 있겠지만 어느 날 단 한번이라도 실수가 일어나면 하나 뿐인 목숨은 바로 사라지고 이 모든 행동을 영원히 재시도 할 수 없게 됩니다. 백업은 뭐 대단한 것이 아닙니다. 그저 정보시스템을 구동하는 기계와 분리된 다른 기계에 비즈니스 크리티컬한 파일을 주기적으로 복사해 놓는 것 뿐입니다. 그리고 가끔 그렇게 복사해 놓은 파일이 온전한지 검사하고 또 만약을 대비해 파일을 다시 복원해 오는 연습을 해 놓기만 하면 랜섬웨어 같은 현대에 흔한 문제를 겪더라도 잠시 깜짝 놀랄 수 있지만 침착하게 몇 시간이나 며칠이 지난 다음 이전과 같은 비즈니스로 돌아올 수 있습니다. 물론 이 과정이 이렇게까지 단순하지는 않고 백업하는 기계는 웬만하면 원래 기계와 같은 네트워크를 사용하지 않아야 하고 또 웬만하면 같은 장소에 있지 않아야 하며 또 웬만하면 같은 종류의 미디어를 사용하지 않아야 하지만 그렇게까지 모든 원칙을 지키지 않더라도 최소한 네트워크만이라도 분리되어 있으면 랜섬웨어가 네트워크를 휘저으며 거기 접속된 여러 기계 중 같은 취약점이 있는 기계를 암호화 하는 상황으로부터 보호 받아 여러 사람의 생계를 이어갈 수 있게 해 줄 겁니다.
이런 백업의 중요성을 깊이 이해하기에 개인 수준에서 항상 백업에 크게 신경 쓰고 있는데 신기하게도 백업에 크게 신경을 써 온 오랜 세월에 걸쳐 정말 큰 사고가 일어나 백업으로부터 전면적인 도움을 받을 일은 없었습니다. 어쩌면 백업은 동양식으로 말하면 어떤 부적과도 같은 역할을 하고 있을른지도 모릅니다. 백업이 있으니 이를 사용할 일이 일어나지 않지만 어쩌면 백업이 없으면 바로 이를 사용해야만 할 일이 일어나 심각한 상황에 빠질 지도 모릅니다. 그래서 기계를 새로 구입하면 맨 먼저 신경 쓰는 것이 바로 백업인데 이전에 백업 환경은 점점 더 나빠지고 있다에 소개한 대로 이상하게도 백업의 중요성이 점점 더 강조되는 상황에서 기계를 사용하는 사람들 각자가 할 수 있는 백업은 점점 더 어렵고 복잡해지는 이상한 상황이 일어나고 있습니다. 가령 똑같은 애플 제품이라도 아이폰과 아이패드는 아이클라우드 백업을 통해 신경 쓰지 않아도 온라인에 백업을 만들어 줘 기계를 교체할 때 이를 활용할 수 있습니다. 하지만 맥 제품은 이런 기능을 제공하지 않으며 타임머신이라는 별도의 백업 기능을 제공하는데 이 기능이 동작하는 모습은 그럴싸해 보이지만 실상 물리적으로 분리된 장소에 백업이 아주 어렵고 또 자사의 파일시스템에 의존성이 커 백업 스토리지를 교체할 수도 없는 아주 이상한 기능으로 간이 백업으로는 사용할 수 있겠지만 앞서 설명한 랜섬웨어에 의한 공격 상황에는 활용할 수 없어 보입니다. 윈도우도 마찬가지인데 윈도우 7 시대에는 현대에 비해 훨씬 더 단단하게 잘 동작하는 백업 소프트웨어를 제공했지만 현대에는 원드라이브를 통한 아주 부실한 백업 소프트웨어를 제공할 뿐이어서 백업이 중요하다는 사실을 알지만 그저 컴퓨터를 도구로 사용할 뿐인 보통 사람들이 안전하게 백업할 방법은 점점 사라지고 있습니다.
개인적으로는 제가 사용하는 기계와 물리적으로 같은 공간에 있는 다른 기계에 하는 백업은 백업으로써 신뢰하지 않습니다. 지금까지 그런 일이 일어나지는 않았지만 랜섬웨어의 공격을 받는다면 같은 네트워크에 있는 제 핵심 기계와 이 기계를 백업하는 다른 기계는 함께 공격을 받아 똑같이 암호화 될 수 있습니다. 또 제 핵심 기계와 같은 공간에 있는 기계는 갑작스런 과전류로 함께 고장날 수 있고 또 화재가 일어날 때 역시 함께 사라질 수 있습니다. 같은 공간에 있는 백업 기계는 굳이 쓸모를 찾는다면 실수로 삭제한 파일을 복원하거나 실수로 덮어 쓴 파일의 이전 버전을 복원하는 용도로는 사용할 수 있겠지만 현대에 이런 기능은 백업 없이 그냥 운영체제가 자체적으로 지원하는 기능만으로도 충분한 수준입니다. 백업은 반드시 물리적으로 제 핵심 기계와 다른 공간에 있어야 합니다. 유튜브에서 관련 튜토리얼을 찾아보면 신뢰할 수 있는 누군가와 서로 백업 기계를 맞바꿔 서로 상대의 데이터를 백업하는 기계를 각자 설치하고 운영하는 시나리오를 말하기도 하는데 현대에 이는 달성하기 결코 쉽지 않은 시나리오입니다. 아니 일단 친구가 있는지부터 물어봐야 하는 것 아닌가 싶은데요. 이런 이유 때문에 백업은 항상 온라인 스토리지를 사용해 왔는데 온라인 스토리지 백업은 약간 느리기는 하지만 잘 동작했고 월 이용요금을 납부하고 있는 이상 앞서 설명한 실수로 삭제한 파일을 복원하는 등의 용도에 잘 동작해 왔습니다. 하지만 시간이 지나며 이 온라인 백업 서비스를 바꿔야 할 문제를 맞이하고 말았습니다.
개인용 퍼포스 사용기 및 영업에서 제가 드랍박스나 원드라이브 같은 서비스 대신 보통 소프트웨어를 개발할 때 사용하는 퍼포스를 파일 관리에 사용한다고 소개했습니다. 이 소프트웨어의 핵심은 일단 서버로 전송한 파일은 제가 삭제를 요청하더라도 클라이언트에서만 삭제하고 서버에는 삭제되었다고 표시할 뿐 실제 파일을 영원히 삭제하지 않아 원한다면 먼 옛날 태초의 태초까지 돌아가 그 시대의 모든 파일을 현대로 가져올 수 있다는 점입니다. 보통 사용 목적을 달성한 파일들은 그만 삭제하고 스토리지를 비우는 식으로 사용하지만 한동안 컴퓨터를 사용해 데이터를 만들어 오면서 한 가지 목적을 달성하기 위해 사용한 다양한 파일들을 그냥 제거하는 건 단기적으로는 스토리지를 비워 돈을 아낄 수 있고 또 파일을 정리할 이유를 없애주지만 장기적으로는 오래된 파일을 찾고 싶을 때 이 필요를 시도조차 할 수 없게 만든다는 점 때문에 장기적으로 아무것도 삭제하지 않는 파일 관리 방법을 찾고 있었습니다. 퍼포스는 주로 소프트웨어를 개발하는 기업 단위로 사용하는 것 같지만 소규모로 사용하는 개인에게는 무료이기 때문에 기업 단위에서 사용하는 강력한 도구를 개인 수준에서 사용하며 중요한 파일을 몽땅 퍼포스에 밀어 넣고 파일을 수정하든 이동하든 심지어 삭제하든 모두 퍼포스를 통해 수행하고 있으면 클라이언트 상에서는 파일이 삭제된 것처럼 보이겠지만 서버는 그 무엇도 삭제하지 않고 단지 삭제했다고 표시해 놓을 뿐이어서 미래에 과거의 어떤 파일이 필요하다면 겁 먹지 않고 히스토리를 과거로 스크롤 한 다음 파일을 끄집어내 현실로 가져와 다시 사용할 수 있게 해 줍니다.
이런 사용 시나리오는 퍼포스 덕분에 여러 기계를 백업해야 하던 상황을 퍼포스 서버 하나만 백업하면 되는 상황을 바꿔 줍니다. 제가 개인적으로 사용하는 데스크탑도, 랩탑도 모두 퍼포스 서버로부터 파일을 받아 사용하기 때문에 만약 어느 날 이 기계를 분실하거나 파괴되거나 랜섬웨어에 의해 암호화되더라도 그냥 다른 기계를 준비해 퍼포스 클라이언트를 설치하고 인증 정보를 제시해 최신 파일을 받아오기만 하면 이전과 똑같은 상태로 돌아갈 수 있습니다. 그래서 이전에는 각각의 기계를 모두 백업하던 시나리오에서 퍼포스 서버 하나만 백업하는 것으로 백업 시나리오를 바꿉니다. 그런데 퍼포스에 좀 더 많은 파일을 의탁하게 되면서 백업에 새로운 요구사항이 생겼는데 퍼포스는 근본적으로 파일을 삭제하지 않기 때문에 백업 크기는 반드시 증가하기만 합니다. 그래서 시간이 흐름에 따라 제가 클라이언트에서 삭제했다고 생각하는 파일도 서버에는 계속해서 남아 공간을 차지하고 공간에 따라 과금하는 백업 서비스를 사용하는 이상 시간이 흐름에 따라 백업 유지 비용이 점점 더 증가하게 되었습니다. 이전에 퍼포스 서버를 AWS에서 구동하다가 장기적으로 비용을 낮추기 위한 온프레미스 전환했는데 이 때 까지만 해도 백업 비용이 높지 않았습니다. 이후 본격적으로 퍼포스에 여러 파일을 의탁하면서 사용량이 크게 증가해 최근에 썬더볼트를 지원하는 커다란 외장하드를 붙여 이를 퍼포스 스토리지로 사용하기 시작했습니다. 아마도 이 기계는 꽤 오랜 세월에 걸쳐 제가 삭제하지 않고 계속해서 쌓기만 하는 파일을 안정적으로 유지해 주겠지만 이제 백업은 이 거대한 외장하드 전체 크기만큼 커질 수 있었고 이는 제가 매 달 부담하기에는 너무 큰 금액이 될 가능성이 높았습니다.
여태까지는 오래 전 나는 왜 백업 소프트웨어 Arq 사용을 그만뒀나에 소개한 바로 그 Arq Backup 앱과 Backblaze B2를 백업에 사용해 왔습니다. 한동안 Arq Backup 앱이 윈도우에서는 실행이 불가능해 굉장히 실망스러웠지만 맥에서는 여전히 잘 동작했고 Backblaze B2는 적당히 합리적인 요금으로 백업에 사용하기에 적당했습니다. 하지만 이제 온라인에 백업할 용량이 여러 테라바이트에 달하며 B2 요금이 너무 빨리 증가할 것 같아 다른 방법을 찾아야 했습니다. Backblaze는 오브젝트 스토리지인 B2 이외에도 백업 서비스를 제공하고 있어 한 달 치 요금을 내고 사용해봤는데 일단 그들이 광고한 대로 잘 동작했지만 도저히 용납할 수 없는 문제가 있었습니다. 바로 Backblaze Backup은 ‘사용 중인’ 파일을 백업하지 않았습니다. 가령 백업이 수행될 때 제가 파일을 열어 편집하고 있다면 이 파일은 백업되지 않습니다. 이런 특징은 특히 퍼포스 서버를 운용하며 서버 자체를 백업하려는 용도에 전혀 맞지 않았는데 특히 도커 위에서 돌아가는 데이터베이스를 포함한 여러 컨테이너는 컨테이너가 떠 있는 동안에는 백업할 수가 없었고 단지 백업을 위해 컨테이너를 종료할 수 있는 시나리오를 만들기에는 제 기술 수준이 부족했습니다. 그저 저는 백업 소프트웨어가 파일이 사용중이든 말든 그 순간의 스냅샷을 읽어 백업해주기를 원했지만 Backblaze Backup은 전혀 그렇게 동작하지 않았고 그저 읽을 수 있는 파일만 백업해 놓고 백업이 완료되었다고 주장하는 꼴을 보니 도저히 이를 용납할 수가 없었습니다. 서버를 백업하는 용도에 이 소프트웨어는 전혀 쓸모 있지 않았고 저는 한 달 이용요금 만 얼마를 날립니다.
시장에는 Backblaze Backup과 비슷하게 용량 제한이 없는 오프사이트 백업 서비스가 여럿 있었는데 다들 조금씩 문제가 있었습니다. 가령 방금 소개한 사례처럼 용량 제한은 없지만 사용 중인 파일에 손대지 않는 어처구니 없는 동작을 해 반드시 백업해야 할 파일을 생략하고서도 백업을 완료했다고 주장하는 서비스도 있었고 또 다른 서비스는 속도가 느리다고 알려졌으며 또 다른 서비스는 그냥 클라이언트 소프트웨어 생김새가 너무나 조잡해서 이 서비스가 아무리 잘 동작해도 도저히 참아줄 수 없는 것도 있었습니다. 그나마 이들 중 사용해볼 생각이 든 것은 CrashPlan 정도였는데 이 서비스 역시 용량 제한 없이 백업할 수 있는 상품이 있었고 윈도우, 맥, 리눅스 환경에서 사용 중인 파일을 백업했으며 클라이언트 소프트웨어가 너무 심하게 조잡해 보이지 않았고 또 2주 짜리 트라이얼을 제공해 시도해볼 만 하다 싶었습니다. 다만 용량 제한이 없는 여느 서비스들이 채택한 것과 거의 같은 리텐션 정책을 제시했는데 파일이 수정되면 이전 버전은 계속해서 유지해 주지만 파일을 삭제하면 30일 동안만 유지되며 30일이 지나면 파일이 삭제되는 정책입니다. 사실 제한 없는 스토리지를 제공하며 그들이 이익을 내기 위해서는 강력한 중복 제거 기술과 상당히 타이트한 리텐션 정책을 사용할 수밖에 없을 겁니다. 그래서 컴퓨터에 연결된 외장 스토리지 디바이스를 제한 없이 백업해 준다고 광고하지만 이들이 분리되고 나면 이들도 30일 리텐션 정책에 따라 30일 후에는 삭제되어 이 정책을 잘 이해하지 않은 사람들을 깜짝 놀라게 할 가능성이 있습니다.
하지만 이런 리텐션 정책을 무력화하기 위해 퍼포스를 파일 관리에 사용하고 있다고도 볼 수 있습니다. 앞서 설명한 대로 퍼포스는 파일을 삭제하라고 해도 실제 파일을 삭제하지 않고 데이터베이스 상에 파일을 삭제했다고 표시하기만 합니다. 그래서 오래된 히스토리로 돌아가 삭제된 파일을 다시 꺼내올 수 있습니다. 이런 특징 때문에 실제로는 훨씬 작은 스토리지만 필요하지만 앞으로 오랜 기간에 걸쳐 퍼포스를 통해 파일을 관리할 생각으로 큰 외장 스토리지를 구입했고 이 스토리지는 삭제된 파일을 포함한 이전 모든 히스토리를 반영구적으로 저장하고 있습니다. 그래서 이를 지탱하는 퍼포스 서버를 백업하면 서버 입장에서는 아무것도 삭제하지 않기 때문에 클라이언트에서 파일을 삭제하더라도 서버를 백업할 때는 그 어떤 파일도 삭제된 파일의 리텐션 정책의 영향을 받지 않습니다. 또한 파일 버전이 변경되더라도 각각의 버전은 별도 파일로 저장되어 백업 서비스의 버전 기능에 의존할 필요도 없습니다. 백업 서비스 입장에서 보면 저는 계속해서 파일이 증가하기만 하고 모든 파일은 버전 1에만 머물러 있는 좀 기묘한 방식으로 파일을 사용하는 것처럼 보일 겁니다. 어쨌든 파일 관리에 퍼포스 서버를 사용한 덕분에 백업 서비스마다 조금씩 다른 버전 유지 정책, 삭제된 파일 유지 정채겡 전혀 영향 받지 않을 수 있었습니다.

CrashPlan은 월 약 9달러에 용량 제한 없이 백업할 수 있는데 9달러 짜리 상품은 사용자 한 명 당 기계 두 대 까지 백업할 수 있어 실은 퍼포스 서버만 백업하면 됐지만 제가 집에서 핵심 기계로 사용하는 윈도우 기계도 백업해봤습니다. 이미 이 서비스가 첫 백업이 지독하게 느리다는 정보를 알고 시작했는데 느리다는 걸 알았지만 정말 당혹스러울 정도로 느려서 트라이얼 기간 동안에 백업이 끝나기는 하는 것인지 상당히 의심스러웠습니다. 정확한 처리 방법을 알 수는 없지만 스토리지에 있는 파일을 하나하나 처리하는 것 같은 느낌을 받았는데 윈도우 기계에는 약 6백만 파일이 있었고 이들 하나하나를 처리하는데 굉장히 긴 시간이 걸립니다. 누군가 포럼에 혹시 네트워크 속도를 제한하고 있는 것 아니냐는 의심을 하기도 했지만 네트워크 속도를 제한한다기보다는 그냥 파일 하나하나를 처리하는 속도가 느려 전송 속도가 느리게 표시되는 것 같아 보입니다. 열흘도 넘는 기간에 걸쳐 약 8테라바이트, 약 6백만 파일을 전송해 첫 백업을 완료했습니다. 그런데 이와 함께 진행한 맥에서 동작하는 퍼포스 서버는 이보다 더 적은 파일 크기, 파일 갯수임에도 속도가 훨씬 느렸는데 이들이 제공한 기술 문서를 살펴보니 가용 메모리에 영향을 받는 것 같아 보입니다. 이들의 주장에 따르면 1백만 파일을 처리하는데 약 1기가바이트 정도의 메모리를 요구하는데 윈도우 데스탑 기계에는 메모리가 충분해 그냥 파일이 많아 백업에 오랜 시간이 걸렸지만 맥미니에서 동작하는 서버는 메모리가 8기가 뿐이어서 충분한 메모리를 사용하지 못하기 때문에 백업이 훨씬 느리게 진행되었다고 추정합니다. 하지만 이 역시 첫 번째 백업이 끝나고 나면 별 문제 없이 동작하기 시작합니다.
트라이얼 기간이 끝나갈 무렵 이들은 ‘How to prevent Schrodinger's Backup’이라는 메일을 보내왔는데 복원 기능을 시험해 보라는 내용입니다. 사실 백업이 완료되고 나면 복원 기능을 바로 테스트 해 볼 작정이었는데 가장 큰 이유는 복원 기능이 잘 작동하는지 확인하는 것 보다는 복원 절차가 어떻게 진행되는지 미리 알아 두기 위함입니다. 당연히 복원 기능이 동작하기는 하겠지만 이 오프사이트 백업 서비스의 복원 기능을 기웃거리고 있을 상황이라면 저는 어떤 사고가 이미 일어나 안절부절 못하고 있을 가능성이 있으며 이 때 한 번도 사용해본 적 없는 복원 기능을 처음 만져보며 당황하고 있을 가능성이 높습니다. 때문에 가끔 아무 이유 없이 파일을 복원해 보며 실제 복원 기능이 어떤 식으로 동작하고 또 미리 알아둘 특징은 없는지 알아보는 것이 중요하다고 생각합니다. 앞서 Backblaze Backup이 파일을 복원하려면 그들의 웹사이트에서 던져주는 압축파일을 덜렁 받아다가 압축을 풀어야 하는 어처구니없는 방식을 당당하게 제공해 어이가 없었는데 적어도 이들은 백업 할 때 사용했던 바로 그 클라이언트 소프트웨어로 복원할 수 있었고 원래 자리에 복원하거나 다른 자리에 복원하는 등 여러 가지 옵션을 선택할 수도 있었습니다. 또 백업에 억겁의 시간이 걸렸던 것과 달리 복원은 예상보다 훨씬 빠르게 진행되어 수 십 기가를 복원하는데 그럭저럭 기다려 줄 만한 속도로 복원됩니다. 마지막으로 파일이 온전히 복원되었는지 확인해보기 위해 복원된 파일을 이 파일들이 원래 위치하던 퍼포스 경로에 덮어쓴 다음 변경사항을 검사했는데 만약 파일에 뭔가 변경이 일어났다면 이 변경사항을 서브밋 하라고 나타날 테고 아무것도 변경되지 않았다면 서브밋 할 파일이 없다고 나타날 겁니다. 다행히, 그리고 당연히 퍼포스 클라이언트는 모든 파일에 변경사항이 없다고 보고했고 아마도 이 복원 기능은 꽤 신뢰할 만할 가능성이 높다는 판단을 내립니다.
제 핵심 백업 플랜은 일단 모든 파일을 형상관리도구인 퍼포스를 통해 관리해 클라이언트에서 파일을 삭제하더라도 서버에서는 결코 삭제되지 않는 환경을 사용하며 파일을 수정할 때도 수정된 모든 버전을 퍼포스가 알아서 보관해 주고 있습니다. 이런 환경에 기반해 다른 백업 없이 오프사이트 백업 서비스로 CrashPlan을 선택해 사용하고 있습니다. CrashPlan은 용량 제한이 없는 대신 아주 강력한 중복 제거 기술을 사용하고 있어 첫 백업이 많이 느릴 수 있고 또 삭제된 파일은 30일 후 삭제되는 리텐션 규칙이 있어 신경 쓸 필요가 있어 보입니다. 하지만 제가 파일을 관리하는데 사용하는 퍼포스 서버는 근본적으로 한번 서브밋 한 파일은 삭제하지 않기 때문에 삭제된 파일의 리텐션 규칙으로부터 완전히 자유로우며 이는 리텐션 규칙이 서로 조금씩 다른 여러 백업 서비스 사이를 옮겨 다니는 상황이 일어날 때 안정적으로 백업을 유지하게 해줄 겁니다. 특히 버전 관리를 퍼포스 수준에서 알아서 해 주기 때문에 각 백업 서비스의 버전 관리 기능에 의존하지 않을 수 있어 백업 서비스를 이전할 때 파일 히스토리가 유실되는 문제가 발생하지도 않습니다. 앞서 설명한 대로 서비스 관점에서 제가 올리는 파일들은 항상 파일이 증가하기만 하고 어떤 파일도 삭제되지 않으며 모든 파일은 버전 1로만 유지되는 독특한 형태의 사용처럼 보일 겁니다. 그나마 이런 사용은 파일이 모두 암호화 되어 있으니 저는 단지 여른 사용자들과 마찬가지로 파일 크기가 증가하기만 하는 뻔한 사용자들과 똑같이 보일 것 같습니다.
다만 조금 걱정스러운 면도 있습니다. CrashPlan은 파일을 암호화 해서 보관하고 있다고 주장하지만 아무리 생각해도 이 암호화가 실제로 일어나고 있는지 의심스럽고 또 암호화가 일어난다 하더라도 의미가 없을 가능성이 높다는 의심을 지울 수 없습니다. 만약 이들이 정말로 암호화를 통해 그들이 제 파일에 손댈 수 없다고 주장하려면 저는 제 CrashPlan 인증 외에 실제 암호화에 사용할 키를 추가로 제출했어야만 합니다. 하지만 저는 CrashPlan 인증 정보를 제출할 뿐 다른 암호화 키를 제공하지 않았습니다. 만약 그들의 주장 대로 제 인증 정보에 의해 암호화한다면 암호화에 사용한 키를 변경하지 않기 위해 키를 제 인증 정보에 기반해 암호화 했을 테고 이 키는 CrashPlan의 서버에 있을 겁니다. 그러면 공격자가 이들의 서버에 있는 파일 뭉치와 암호화된 키를 탈취해 제 인증 정보를 제시하면 암호하 키를 획득해 파일 뭉치를 복호화 할 수 있고 또 그들 스스로도 스스로 저장하고 있는 제 복호화 키를 제 인증 정보로 복호화 해서 파일 뭉치를 복호화 할 수 있는 것 아닌지 의심이 들기는 합니다. 이와 비교해 이전에 사용하던 Arq 앱은 암호화에 사용할 키를 별도로 물어보고 이를 아무데도 저장하지 않아 암호화 과정을 쉽게 이해할 수 있었습니다.
결론적으로 저는 비용을 줄이고 싶었고 CrashPlan은 사용 중인 파일을 백업할 수 있고 제한 없는 용량을 제공하며 꽤 빠른 복원 속도를 지원하면서도 월 약 9달러 정도의 고정 비용을 지출하게 만들어 앞으로 파일이 늘어남에 따른 비용 증가를 전혀 걱정하지 않게 해 주었습니다. 최근에 퍼포스 서버 스토리지로 사용할 생각으로 구입한 외장하드는 16테라바이트 짜리로 영상을 편집하지 않는 제가 이 스토리지를 채우는데는 꽤 긴 세월이 걸리겠지만 스토리지의 증가와 아무 관계 없이 백업은 계속해서 유지되고 또 이 사이에 끼어 있는 퍼포스 덕분에 버전 관리, 삭제된 파일의 리텐션 유지 같은 정책을 백업 서비스의 기능에 완전히 독립적으로 유지할 수 있다는 점도 마음에 듭니다. 개인 수준에서 굳이 파일 관리에 퍼포스를 사용해야 하는지에 대한 의문은 당연히 있을만 하다고 생각합니다. 하지만 오프사이트 백업 소프트웨어를 별도로 사용해야 하는지에 대한 의문은 있을 수 없다고 생각하며 개인이든 회사든 뭐든지 간에 컴퓨터를 통해 정보시스템을 구동하고 이를 통해 비즈니스를 영위하는 누군가라면 반드시 백업을 가지고 있어야 합니다. 한달에 고작 9달러 정도를 지불하면 운영 환경에 대한 완전한 백업을 유지할 수 있는데 이 돈을 지불하지 않아 랜섬웨어로부터 공격을 받아 모든 것을 잃거나 아주 큰 돈을 지불할 일이 생긴다면 많이 슬플 것 같습니다. 남들이 그런 일을 겪는 것을 보기만 해도 너무 슬펐습니다.