클라우드와 데이터센터
휴대폰을 잃어버려도 사진이 남아 있고, 새 노트북에 로그인하면 메일이 그대로 있다. 데이터가 “구름 위”에 있기 때문이라고들 한다. 하지만 구름의 정체는 창고만 한 건물에 줄지어 선 수만 대의 컴퓨터다. 이 장에서는 그 건물, 데이터센터 안으로 들어가 본다.
- 클라우드가 “다른 회사의 컴퓨터를 필요한 만큼 빌려 쓰는 것”임을 설명한다.
- 데이터센터를 3D로 둘러보고, 하루 동안 사용자가 늘고 줄 때 서버가 자동으로 늘고 주는 모습을 확인한다.
- 가상 머신과 컨테이너가 컴퓨터 한 대를 여럿으로 나누는 방법을 이해한다.
- 데이터를 여러 곳에 복제해 고장에 대비하는 원리를 실험한다.
- 데이터센터의 전기·냉각 문제와 CDN이 응답을 빠르게 하는 이유를 안다.
클라우드는 남의 컴퓨터를 빌려 쓰는 것
식당을 열려면 주방이 필요하다. 직접 짓자니 돈이 많이 들고, 손님이 몰리는 주말에 맞춰 크게 지으면 평일엔 텅 빈다. 그래서 요즘은 필요한 만큼 시간 단위로 빌리는 공유 주방이 있다. 클라우드(cloud computing)가 바로 컴퓨터의 공유 주방이다. 서비스 회사는 서버를 사는 대신 클라우드 회사의 데이터센터(data center)에서 필요한 만큼 빌려 쓰고, 쓴 만큼 돈을 낸다.
여기 나오는 것들은 모두 이 책에서 본 부품이다. 서버 한 대는 CPU, 메모리, SSD, 네트워크 카드를 가진 컴퓨터(1장)이고, 운영체제(8장)가 돌고, 웹 서버 프로그램(11장)이 요청을 받는다. 다른 점은 규모와, 그 규모에서 생기는 문제를 푸는 방법이다.
데이터센터의 하루: 자동 확장
서비스를 쓰는 사람은 시간대마다 다르다. 새벽엔 적고, 저녁엔 많고, 인기 공연 예매가 열리는 순간엔 폭발한다. 서버를 가장 바쁜 순간에 맞춰 늘 켜 두면 대부분의 시간에 돈과 전기를 버리고, 평소에 맞춰 두면 몰리는 순간 서비스가 멈춘다. 클라우드의 답은 자동 확장(auto scaling)이다. 서버가 바빠지면 새 서버를 켜고, 한가해지면 끈다.
데이터센터의 하루
자동 확장을 켜 두었는데도 예매가 열린 직후 몇 분 동안 응답이 느려지는 이유는?
위 시뮬레이터에서 20시 부근 그래프를 자세히 보자. 파란 선이 초록 면을 넘는 구간이 있다.
한 대를 여럿으로: 가상 머신과 컨테이너
데이터센터의 서버는 CPU 코어가 수십~수백 개, 메모리가 수백 GB에서 몇 TB에 이른다. 작은 서비스 하나가 통째로 쓰기엔 너무 크다. 그래서 한 대를 여러 개의 가짜 컴퓨터로 쪼개 여러 고객에게 빌려준다. 9장의 가상 메모리가 프로그램마다 “나만의 메모리”라는 착각을 주었듯, 하이퍼바이저(hypervisor)는 운영체제마다 “나만의 컴퓨터”라는 착각을 준다. 이렇게 만든 가짜 컴퓨터를 가상 머신(VM, virtual machine)이라 한다.
컨테이너(container)는 더 가벼운 방법이다. 운영체제 커널은 하나를 함께 쓰고, 앱과 그 앱에 필요한 부품만 상자에 담아 서로 보이지 않게 분리한다. 운영체제를 부팅할 필요가 없으니 몇 초 만에 뜬다. 위 시뮬레이터에서 새 서버가 켜지는 5분을 줄이고 싶다면, 서버는 미리 켜 두고 컨테이너만 빠르게 늘리는 방법을 쓴다.
고장은 반드시 난다: 복제
하드디스크 한 개가 1년 안에 고장 날 확률은 1~2% 정도다. 작아 보이지만 데이터센터에 디스크가 10만 개 있으면 하루에 몇 개씩 고장 난다. 그러니 고장은 “혹시”가 아니라 “매일”의 일이다. 그래서 같은 데이터를 여러 곳에 복사해 두는 복제(replication)를 한다. 그리고 복사본을 어디에 두느냐가 중요하다. 같은 건물에 세 벌을 두면 건물에 정전이 났을 때 모두 사라진다. 클라우드는 전기와 냉각, 네트워크가 독립된 구역인 가용 영역(availability zone)을 여러 개 두고 복사본을 나눠 담는다.
사진 8장을 지켜라
전기와 냉각, 그리고 거리
서버 한 대는 수백 W, AI용 GPU 서버는 10 kW 넘게 쓴다. 그 전기는 전부 열이 되고, 열을 빼내는 데 또 전기가 든다. 데이터센터의 효율을 나타내는 PUE(Power Usage Effectiveness)는 “건물 전체 전력 ÷ 컴퓨터가 쓴 전력”이다. 1.0이면 냉각에 한 푼도 안 쓴다는 뜻인데, 최신 데이터센터는 1.1~1.2, 오래된 곳은 1.5~2 정도다. 그래서 데이터센터는 차가운 바깥 공기나 바닷물, 강물을 쓰기 좋은 곳에 짓고, 최근의 AI용 서버는 칩에 물을 직접 흘려 식히기도 한다. 전 세계 데이터센터가 쓰는 전기는 세계 전체의 1~2% 수준이고, AI 때문에 빠르게 늘고 있다.
또 하나의 문제는 거리다. 10장에서 본 것처럼 빛도 서울에서 미국까지 왕복하는 데 0.1초 넘게 걸린다. 그래서 동영상이나 이미지처럼 많은 사람이 받아 가는 파일은 사용자 가까운 도시마다 복사본을 두는데, 이것을 CDN(Content Delivery Network)이라 한다. 같은 영상을 볼 때 서울 사람은 서울 근처 서버에서, 파리 사람은 파리 근처 서버에서 받는다.
| 어디서 받나 | 왕복 시간(대략) | 영상 시작까지 |
|---|---|---|
| 같은 도시의 CDN 서버 | 5~10 ms | 거의 즉시 |
| 국내 다른 지역 데이터센터 | 10~20 ms | 빠름 |
| 일본·동남아 | 40~80 ms | 약간 기다림 |
| 미국 서부 | 130~160 ms | 눈에 띄게 느림 |
핵심 정리
- 클라우드는 데이터센터의 컴퓨터를 필요한 만큼 빌려 쓰고 쓴 만큼 내는 방식이다.
- 로드 밸런서가 요청을 여러 서버에 나누고, 자동 확장이 바쁜 정도에 따라 서버 수를 늘리고 줄인다. 새 서버가 뜨는 데는 시간이 걸린다.
- 가상 머신은 운영체제째로, 컨테이너는 앱만 분리해 한 대를 여럿이 나눠 쓴다.
- 규모가 크면 고장은 매일 일어난다. 데이터는 여러 구역에 복제해 지킨다.
- 데이터센터는 전기와 냉각(PUE)이 큰 과제이고, CDN은 사용자 가까이에 복사본을 두어 거리를 줄인다.
확인 퀴즈
클라우드를 쓰는 가장 큰 이유로 알맞은 것은?
여러 서버에 요청을 골고루 나눠 주는 장치는?
컨테이너가 가상 머신보다 훨씬 빨리 뜨는 이유는?
사진 복사본 3벌을 모두 같은 구역에 두었을 때 위험한 사고는?
PUE가 1.5인 데이터센터에서 서버들이 1 MW를 쓴다면 건물 전체 전력은?