개발 / Development/Engineering

구름 아래에는 건물이, 서버 안에는 전기가

By Sogo Kim 2026.10.13 12 min read
internet · web

예전에 다니던 어떤 한 회사에서 러스트(Rust)를 사용해 온프레미스 소프트웨어를 개발했던 적이 있습니다. 그 회사를 들어가면서 “온프레미스”라는 용어를 처음 접하게 되었는데, “온프레미스”란 간단하게 설명하자면 서비스 제공자의 클라우드 환경이 아니라 고객이 직접 통제하는 자체 서버 환경에 소프트웨어를 설치하고 운영하는 방식을 말합니다. 그 회사에서 일하면서 사무실 안에 별도의 서버실이 있는 것도 처음 보았습니다. 그전까지 제게 서버란 IP 주소나 접속 계정처럼 모니터 안에서만 접하는 추상적인 존재에 가까웠습니다. 소프트웨어가 아무리 추상적인 형태로 존재하더라도 그 아래에는 결국 물리적인 컴퓨터가 있다는 사실을 이미 머리로는 알고는 있었습니다만, 그 사실을 눈으로 실감한 것은 그 서버실에서였던 것 같습니다.

지금은 상주 프리랜서로 회사에서 클라우드 기반으로 제공되던 서비스를 로컬 서버 기반의 온프레미스 서비스로 바꾸는 작업을 진행하고 있습니다. 클라우드 콘솔에서 몇 번의 클릭으로 생기던 것들을 온프레미스에서는 하나씩 직접 마련해야 하다 보니, 그동안 “있겠거니” 하고 넘어갔던 물리적인 층이 다시 눈앞으로 올라오는 느낌이 듭니다.

구름 아래에는 건물이 있다

2006년 아마존이 저장 공간을 제공하는 S3와 가상 서버를 제공하는 EC2를 선보이면서, 오늘날 우리가 익숙하게 사용하는 “클라우드” 서비스가 본격적으로 확산되기 시작했습니다. 그전에도 서버를 빌려 쓰는 호스팅 서비스는 있었지만, 서버와 저장 공간을 필요할 때 프로그램으로 확보하고 쓴 만큼 비용을 내는 방식이 본격적으로 퍼진 것은 이때부터였습니다. 직접 장비를 사서 둘 곳을 마련하고 회선을 끌어오지 않아도, 계정 하나와 결제 수단 하나만 있으면 서버를 확보하는 일이 훨씬 간편해졌습니다. “구름”이라는 이름의 유래도 흥미롭습니다. 찾아보니 이는 네트워크 구성도에서 인터넷처럼 내부를 일일이 그리지 않아도 되는 영역을 구름 모양으로 뭉뚱그려 표시하던 오래된 관습에서 비롯되었다고 합니다. 구름은 그 자리에 아무것도 없다는 표시가 아니라, 여기서는 ‘속을 들여다보지 않아도 된다’는 의미를 가진 표시였습니다.

그러나 그림에서 지워졌다고 해서 이를 가능케 하는 물리적인 것들이 모두 사라진 것은 아닙니다. 클라우드는 결국 누군가의 데이터센터에 있는 서버를 빌려 쓰는 일이고, 서버가 물리적으로 어딘가에 놓여 있다는 점은 온프레미스나 클라우드나 둘 다 같습니다. 다만 그 건물이 누구의 것인지, 전기요금과 고장 난 디스크를 누가 맡는지, 필요한 자원을 어떤 방식으로 확보하고 늘려가는지가 달라지는 것입니다.

클라우드에서 온프레미스로 옮기며 다시 보이기 시작한 것

이번 작업을 하며 제게 가장 크게 다가온 차이는 ‘무엇을 직접 책임져야 하는가’였습니다. 클라우드 사업자들은 책임 공유 모델이라는 말로 이 관계를 설명하는데, 건물과 전원과 하드웨어는 사업자가 관리하고, 그 위의 운영체제와 애플리케이션, 데이터와 설정은 어떤 서비스를 쓰느냐에 따라 사업자와 사용자가 나눠 맡는다는 구분입니다. 온프레미스로 옮기자 이 책임의 상당 부분이 조직 안으로 내려왔습니다. 디스크 교체와 백업, 네트워크 장비의 관리와 보안 패치까지 누군가는 직접 맡아야 합니다.

옮기는 작업에서 가장 크게 다가오는 부분은 관리형 서비스입니다. 클라우드에서는 데이터베이스, 오브젝트 스토리지, 메시지 큐, 로드밸런서, 인증을 서비스 형태로 가져다 쓰는 일이 흔한데, 온프레미스로 옮길 때는 이런 서비스가 맡던 기능을 어떻게 유지할지 다시 정해야 합니다. 직접 설치할 수 있는 오픈소스나 상용 제품으로 대체하기도 하고, 구조를 바꿔 일부 기능을 합치거나 없애기도 합니다. 체크박스 하나 뒤에 그렇게 많은 것이 있었다는 사실은 체크박스가 없어지고 나서야 보입니다. 한 사업자의 전용 서비스에 깊이 기대어 만든 시스템일수록 옮기기 어렵다는 뜻이기도 해서, 벤더 종속이라는 말이 이 지점에서 현실이 됩니다.

어느 쪽을 택하든 서버가 놓일 공간과 전기, 냉각과 네트워크는 필요합니다. 클라우드는 그 부담을 없애는 기술이라기보다, 그것을 다른 사람의 책임으로 옮겨 보이지 않게 만드는 서비스에 가깝습니다. 그렇다면 클라우드에서 그 책임을 대신 맡고 있는 곳은 어디일까요.

데이터센터는 무엇을 하는 곳일까

뉴스에서 데이터센터라는 말을 가장 크게 들은 것은 2022년 10월 판교의 데이터센터에서 불이 나 카카오 서비스가 오래 멈췄을 때였던 것으로 기억합니다. 많은 사람들이 일상적으로 사용하는 카카오톡 메신저 기능뿐 아니라 택시 호출과 결제까지 한꺼번에 멈추면서, 서로 다른 수많은 서비스들이 사실은 같은 건물 하나에 의존하고 있었다는 것을 실감하게 된 사건이었습니다. 지금 다시 찾아보니 그 당시 불은 배터리 쪽에서 시작되었다고 하는데, 이후에는 불이 난 것 자체뿐 아니라 이중화와 복구 체계를 충분히 갖추고 있었는지도 쟁점이 되었다고 합니다.

데이터센터는 서버라는 컴퓨터를 랙이라는 선반형 틀에 층층이 꽂아 모아두고, 그 기계들이 24시간 멈추지 않도록 필요한 것을 전부 갖춘 건물입니다. 여기엔 우선 전기가 있습니다. 외부 전력이 끊겨도 서버가 멈추지 않도록 무정전전원장치(UPS)와 배터리, 그다음을 받아주는 비상 발전기가 겹겹이 붙습니다. 서버가 소비한 전력의 상당 부분은 결국 열이 되기 때문에, 그 열을 식히기 위한 냉각 설비에도 상당한 전력이 필요합니다. 통신사 회선은 여러 경로로 들어오고, 화재를 대비한 소화 설비와 출입 통제, 보안 요원도 있습니다. 안정적인 운영을 위해 전원과 냉각, 통신 회선 등을 이중화하기도 하는데, 일부 장비에 문제가 생겨도 다른 장비가 곧바로 그 역할을 이어받도록 설계합니다.

클라우드 사업자들은 장애의 영향을 분산하기 위해 물리적으로 분리된 가용 영역(availability zone)을 운영합니다. 하나의 가용 영역은 하나 이상의 데이터센터로 구성되고, 서비스를 여러 가용 영역에 나눠 두도록 설계하면 특정 시설에 장애가 생겨도 서비스를 계속 운영할 가능성이 높아집니다.

제가 처음 본 회사 서버실은 이 데이터센터의 아주 작은 축소판이었습니다. 스타트업에서는 보기 드문 경험이지만, 데이터센터 수준까지는 아니어도 은행과 병원, 제조 현장, 공공기관처럼 데이터를 건물 안에 두어야 하는 곳에서는 자체 서버실을 짓고 운영하는 경우가 적지 않습니다. 반대로 클라우드 사업자가 운영하는 대형 데이터센터는 서버를 수천, 수만 대씩 수용하고, 큰 캠퍼스는 도시 하나에 맞먹는 전력을 쓰도록 계획되기도 한다고 합니다. 규모는 달라도 필요한 것은 같습니다. 기계가 있고, 전기가 들어오고, 열이 나고, 그것을 식히고, 외부와 연결할 선이 필요합니다. 클라우드 요금표에는 결국 이 모든 것을 밤낮으로 유지하는 비용이 들어 있습니다.

가장 작은 서버실은 내 책상 위에

데이터센터가 서버의 가장 큰 집이라면, 가장 작은 집은 제 책상 위에 있습니다. 개발을 하다 보면 “로컬에서 서버를 띄운다”는 말을 자주 하게 되는데, 이때 서버를 띄운다는 것은 요청을 받아 처리하고 응답하는(serving) 프로그램을 실행한다는 뜻이고, 로컬은 그 프로그램이 지금 앞에 놓인 내 컴퓨터에서 돌아간다는 뜻입니다. 서버 프로그램을 실행하는 순간 내 컴퓨터의 CPU와 메모리, 디스크, 그리고 전기가 그대로 쓰입니다. 브라우저에서 localhost라는 주소로 접속하는 것은 인터넷 어딘가에 다녀오는 일이 아니라 내 컴퓨터가 자기 자신에게 말을 거는 일이어서, 이 주소를 루프백(loopback)이라고 부릅니다. 노트북을 끄면 서버도 함께 멈춥니다. 24시간 운영을 전제로 만들어진 데이터센터와 달리, 제 노트북은 원래 그런 역할을 하도록 마련된 기계가 아닙니다.

이렇게 보면 로컬에서 실행하는 개발 서버도, 조직이 자체적으로 운영하는 온프레미스 서버도, 클라우드에서 실행하는 서버도 결국 같은 원리로 동작합니다. 요청을 받아 처리하는 프로그램이 어딘가의 컴퓨터에서 실행되고 있다는 점입니다. 다만 그 컴퓨터가 어디에 있고, 누가 관리하며, 어떤 방식으로 외부와 연결되는지가 달라집니다. 클라우드에서 실행되던 서비스를 온프레미스로 옮기는 일은 결국 클라우드 사업자의 인프라에서 실행되던 프로그램을 조직이 통제하는 서버 환경으로 가져오는 일입니다. 규모와 운영 방식은 달라도, 컴퓨터에서 서버 프로그램을 실행한다는 점에서는 노트북에 로컬 서버를 띄우는 일과 같은 원리 위에 있습니다. 그런데 여기까지 내려와도 아직 ‘서버’라는 말은 하나의 검은 상자처럼 남아 있습니다.

0과 1 아래에는 전기와 빛

서버 안으로 한 단계 더 내려가면 CPU에는 트랜지스터(transistor)가 수십억 개씩 들어 있고, 트랜지스터는 전기로 여닫는 작은 스위치입니다. 흔히 0과 1을 전기의 연결과 끊김으로 설명하지만, 컴퓨터가 다루는 0과 1은 실제로는 회로가 구분할 수 있는 두 가지 전기적 상태, 이를테면 높은 전압과 낮은 전압으로 구현됩니다.

기억도 마찬가지입니다. 메인 메모리인 DRAM은 미세한 축전기에 저장된 전하로 정보를 기억합니다. 전하가 조금씩 새어 나가기 때문에 전원이 공급되는 동안에도 주기적으로 다시 채워야 하고, 전원이 끊기면 정보도 사라집니다. SSD는 플래시 메모리 셀에 저장된 전하에 따른 전기적 특성을, 하드디스크는 자성 물질의 자기 상태를 이용해 데이터를 기록한다고 합니다. 메신저 한 줄이나 사진 한 장처럼 화면에서는 형태가 없어 보이는 정보도 서버 안에서는 반드시 어떤 물질의 상태로 존재합니다.

게다가 “무선 인터넷”이라는 말이 워낙 대중화되어 있어서 정말로 인터넷은 무선으로 이루어진다고 착각할 수 있겠지만, 와이파이는 기기와 공유기 사이를 전파로 연결하고, 유선 회선을 쓰는 일반적인 가정이라면 공유기 뒤로는 랜선이 건물의 통신실로, 거기서부터는 광케이블이 땅속을 지나갑니다. 광케이블에서는 전기 신호 대신 빛의 변화를 이용해 데이터를 보내고, 그 빛은 목적지 장비 앞에서 다시 전기 신호로 바뀝니다. 결국 바깥세상과 이어지는 길도 전기와 빛의 신호를 선을 따라 보내는 일입니다.

대륙 사이의 통신은 바다 밑에 깔린 해저 케이블이 대부분을 담당합니다. 통신 위성이 대륙을 이어줄 것 같지만, 찾아보니 국제 데이터 통신의 압도적인 부분이 해저 광케이블을 지난다고 하고, 한반도에도 그 케이블이 올라오는 랜딩 스테이션이 있다고 합니다. 한 줄의 메시지가 바다를 건너려면 해저의 선을 지나야 한다는 사실을 떠올릴 때마다, 인터넷이라는 말이 얼마나 많은 물리적 사실을 가리고 있는지 생각하게 됩니다.

마치며

서비스를 클라우드에서 온프레미스로 옮기는 지금의 작업은 눈에 보이지 않던 이런 층들을 하나씩 직접 마주하게 해줍니다. 콘솔에서 클릭 몇 번으로 끝나던 일을 하나하나 직접 마련하다 보면, 앱 하나가 열리는 데에도 얼마나 많은 장비와 사람이 필요한지가 보입니다.

화면에 뜬 메시지 한 줄의 뒤에는 서버가 놓인 건물이 있고, 밤새 돌아가는 냉각기가 있고, 칩 속의 전하와 바다 밑을 지나는 광섬유가 있고, 그 전기를 만들고 공급하는 시설과 사람들이 있습니다. 클라우드는 이 모든 것을 매번 생각하지 않아도 되게끔 만들어 주었지만, 다만 눈에 보이지 않게 되었다고 해서 없어진 것은 아닙니다.

댓글

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

댓글 남기기

모든 댓글은 제가 먼저 확인한 후 공개합니다.