Chapter 20

클라우드와 데이터센터

휴대폰을 잃어버려도 사진이 남아 있고, 새 노트북에 로그인하면 메일이 그대로 있다. 데이터가 “구름 위”에 있기 때문이라고들 한다. 하지만 구름의 정체는 창고만 한 건물에 줄지어 선 수만 대의 컴퓨터다. 이 장에서는 그 건물, 데이터센터 안으로 들어가 본다.

클라우드는 남의 컴퓨터를 빌려 쓰는 것

식당을 열려면 주방이 필요하다. 직접 짓자니 돈이 많이 들고, 손님이 몰리는 주말에 맞춰 크게 지으면 평일엔 텅 빈다. 그래서 요즘은 필요한 만큼 시간 단위로 빌리는 공유 주방이 있다. 클라우드(cloud computing)가 바로 컴퓨터의 공유 주방이다. 서비스 회사는 서버를 사는 대신 클라우드 회사의 데이터센터(data center)에서 필요한 만큼 빌려 쓰고, 쓴 만큼 돈을 낸다.

내 폰사진 올리기 인터넷 데이터센터 로드 밸런서일 나눠 주기 웹 서버 1 웹 서버 2 웹 서버 … 데이터베이스계정·댓글 저장소사진 원본 × 3벌 이런 서버가 건물 하나에 수만 대
그림 20-1. 사진 한 장이 클라우드에 저장되는 길. 로드 밸런서가 요청을 한가한 서버에 나눠 주고, 사진은 여러 벌로 복사해 저장한다.

여기 나오는 것들은 모두 이 책에서 본 부품이다. 서버 한 대는 CPU, 메모리, SSD, 네트워크 카드를 가진 컴퓨터(1장)이고, 운영체제(8장)가 돌고, 웹 서버 프로그램(11장)이 요청을 받는다. 다른 점은 규모와, 그 규모에서 생기는 문제를 푸는 방법이다.

데이터센터의 하루: 자동 확장

서비스를 쓰는 사람은 시간대마다 다르다. 새벽엔 적고, 저녁엔 많고, 인기 공연 예매가 열리는 순간엔 폭발한다. 서버를 가장 바쁜 순간에 맞춰 늘 켜 두면 대부분의 시간에 돈과 전기를 버리고, 평소에 맞춰 두면 몰리는 순간 서비스가 멈춘다. 클라우드의 답은 자동 확장(auto scaling)이다. 서버가 바빠지면 새 서버를 켜고, 한가해지면 끈다.

3D

데이터센터의 하루

오늘의 상황
서버 운영 방식
 
시각—
초당 요청—
켜진 서버—
응답 시간—
오늘 서버 비용—
3D 모형의 납작한 상자 하나가 서버 한 대다. 꺼진 서버는 회색, 켜지는 중인 서버는 파랑, 켜진 서버는 바쁜 정도에 따라 초록 → 주황 → 빨강이 된다. 드래그하면 돌아간다. 아래 그래프의 파란 선은 요청량, 초록 면은 켜진 서버가 감당할 수 있는 양이다. 서버 한 대는 초당 1,000건, 한 시간 사용료는 1,000원으로 단순화했다. 새 서버가 켜지는 데는 5분이 걸린다. 해볼 것: “20시 공연 예매”에서 세 가지 방식을 비교하자. 고정 20대는 무너지고, 고정 80대는 버티지만 비싸고, 자동 확장은 싸지만 몰리는 첫 몇 분 동안 느려진다.
예측해 보기

자동 확장을 켜 두었는데도 예매가 열린 직후 몇 분 동안 응답이 느려지는 이유는?

위 시뮬레이터에서 20시 부근 그래프를 자세히 보자. 파란 선이 초록 면을 넘는 구간이 있다.

서버를 켜고 운영체제와 프로그램을 띄우는 데 몇 분이 걸린다(22장의 부팅을 떠올리자). 그래서 큰 행사가 예정되어 있으면 미리 서버를 늘려 두고, 몰리는 순간에는 대기열(“접속 대기 중, 내 앞에 1,234명”)로 들어오는 속도를 조절한다.

한 대를 여럿으로: 가상 머신과 컨테이너

데이터센터의 서버는 CPU 코어가 수십~수백 개, 메모리가 수백 GB에서 몇 TB에 이른다. 작은 서비스 하나가 통째로 쓰기엔 너무 크다. 그래서 한 대를 여러 개의 가짜 컴퓨터로 쪼개 여러 고객에게 빌려준다. 9장의 가상 메모리가 프로그램마다 “나만의 메모리”라는 착각을 주었듯, 하이퍼바이저(hypervisor)는 운영체제마다 “나만의 컴퓨터”라는 착각을 준다. 이렇게 만든 가짜 컴퓨터를 가상 머신(VM, virtual machine)이라 한다.

가상 머신 컨테이너 앱 A 앱 B 앱 C 운영체제 운영체제 운영체제 하이퍼바이저 서버 하드웨어 (CPU · 메모리 · SSD) 운영체제를 통째로 여러 벌 → 무겁지만 완전히 분리 앱 A+ 필요한 부품 앱 B+ 필요한 부품 앱 C+ 필요한 부품 운영체제 하나 (커널 공유) 서버 하드웨어 커널은 함께 쓰고 앱만 상자에 → 가볍고 빨리 뜸
그림 20-2. 가상 머신은 운영체제까지 통째로 나누고, 컨테이너는 운영체제 하나를 함께 쓰면서 앱만 분리한다.

컨테이너(container)는 더 가벼운 방법이다. 운영체제 커널은 하나를 함께 쓰고, 앱과 그 앱에 필요한 부품만 상자에 담아 서로 보이지 않게 분리한다. 운영체제를 부팅할 필요가 없으니 몇 초 만에 뜬다. 위 시뮬레이터에서 새 서버가 켜지는 5분을 줄이고 싶다면, 서버는 미리 켜 두고 컨테이너만 빠르게 늘리는 방법을 쓴다.

고장은 반드시 난다: 복제

하드디스크 한 개가 1년 안에 고장 날 확률은 1~2% 정도다. 작아 보이지만 데이터센터에 디스크가 10만 개 있으면 하루에 몇 개씩 고장 난다. 그러니 고장은 “혹시”가 아니라 “매일”의 일이다. 그래서 같은 데이터를 여러 곳에 복사해 두는 복제(replication)를 한다. 그리고 복사본을 어디에 두느냐가 중요하다. 같은 건물에 세 벌을 두면 건물에 정전이 났을 때 모두 사라진다. 클라우드는 전기와 냉각, 네트워크가 독립된 구역인 가용 영역(availability zone)을 여러 개 두고 복사본을 나눠 담는다.

SIMULATOR

사진 8장을 지켜라

복사본 개수
복사본 두는 곳
사고 일으키기
살아 있는 사진—
고장 난 서버—
필요한 저장 공간—
사각형이 서버(디스크), 그 안의 번호 칩이 사진 복사본이다. 해볼 것: 1벌로 두고 디스크를 몇 개 고장 내 보자. 그다음 3벌을 “한 구역 안에” 두고 구역 A를 정전시켜 보고, “구역마다 나눠서”로 바꿔 같은 사고를 내 보자. 실제 클라우드 저장소는 복사본이 하나 사라지면 즉시 다른 곳에 새로 만들어 항상 개수를 유지한다.

전기와 냉각, 그리고 거리

서버 한 대는 수백 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눈에 띄게 느림

핵심 정리

  1. 클라우드는 데이터센터의 컴퓨터를 필요한 만큼 빌려 쓰고 쓴 만큼 내는 방식이다.
  2. 로드 밸런서가 요청을 여러 서버에 나누고, 자동 확장이 바쁜 정도에 따라 서버 수를 늘리고 줄인다. 새 서버가 뜨는 데는 시간이 걸린다.
  3. 가상 머신은 운영체제째로, 컨테이너는 앱만 분리해 한 대를 여럿이 나눠 쓴다.
  4. 규모가 크면 고장은 매일 일어난다. 데이터는 여러 구역에 복제해 지킨다.
  5. 데이터센터는 전기와 냉각(PUE)이 큰 과제이고, CDN은 사용자 가까이에 복사본을 두어 거리를 줄인다.

확인 퀴즈

클라우드를 쓰는 가장 큰 이유로 알맞은 것은?

서버를 미리 사 둘 필요 없이 사용량에 맞춰 빌린다. 컴퓨터는 여전히 데이터센터 어딘가에서 돌고 있다.

여러 서버에 요청을 골고루 나눠 주는 장치는?

로드 밸런서는 식당 입구의 안내 직원처럼 한가한 서버에 손님(요청)을 보낸다.

컨테이너가 가상 머신보다 훨씬 빨리 뜨는 이유는?

가상 머신은 운영체제 전체를 부팅해야 하지만, 컨테이너는 앱과 그 부품만 분리된 상자에서 시작한다.

사진 복사본 3벌을 모두 같은 구역에 두었을 때 위험한 사고는?

같은 구역의 복사본은 그 구역의 정전·화재·네트워크 장애를 함께 겪는다. 그래서 서로 독립된 구역에 나눠 둔다.

PUE가 1.5인 데이터센터에서 서버들이 1 MW를 쓴다면 건물 전체 전력은?

PUE = 전체 ÷ 컴퓨터. 나머지 0.5 MW는 주로 냉각과 전력 변환에 쓰인다.