LabHub

비용과 아키텍처 결정 · 요금은 어디서 발생하나 · 이론

비싼 것이 아니라 놀고 있는 것

LabHub 에서 이어서 보기

한 줄 요약

클라우드 비용은 비싼 것이 아니라 아무 일도 안 하는데 켜져 있는 것에 붙는다.

왜 청구서를 읽어야 하나

클라우드 비용은 쓴 만큼 나오는 구조라 중간에 결재가 없다. 인스턴스를 켜는 데 승인이 필요 없고, 끄는 데도 필요 없다. 그래서 켜는 일은 계속 일어나고 끄는 일은 거의 일어나지 않는다.

몇 달이 지나면 청구서가 커지는데, 정작 무엇 때문에 커졌는지 아는 사람이 없다. 만든 사람은 다른 팀으로 갔고 재무팀은 총액만 본다. 이 상태에서 "비용을 줄이자" 고 하면 눈에 띄는 것부터 손대게 되고, 눈에 띄는 것은 대개 작다.

그래서 순서가 정해져 있다 — 먼저 항목으로 나누고, 그다음에 그 돈이 무엇을 사고 있는지 구별한다. 나누지 않고 시작한 절감은 대개 금액이 작거나, 아껴서는 안 될 것을 아낀다.

항목으로 나누기 전에는 아무것도 못 한다

"클라우드 비용이 너무 많이 나온다" 로 시작하면 대개 이렇게 끝난다 — 눈에 띄는 것부터 손대고, 눈에 띄는 것은 대개 작다.

먼저 항목별 비중을 본다. 실습의 청구서를 나누면 이렇게 나온다.

batch        compute          1,401.60$   43.9%db           managed_db         747.52$   23.4%web          compute            525.60$   16.5%snapshots    snapshot           210.00$    6.6%...합계                          3,191.17$

1위 하나가 44% 다. 나머지를 다 합쳐도 이것만 못하다.

그리고 1위는 대개 놀고 있다

batch 의 메모를 읽으면 이렇다.

> 하루 2시간짜리 배치를 도는데 인스턴스는 계속 켜져 있다.

하루 2시간 × 30일 = 60시간 일하는데 730시간이 청구된다. 비용의 92%가 아무 일도 안 하는 시간에 붙는다.

CPU 사용률만 봐서는 잘 안 보인다. 평균 11%를 보고 "배치라 원래 그렇다" 고 넘기기 때문이다. 언제 일하는지를 봐야 한다.

무엇을 사는 돈인지 구별한다

모든 비용이 낭비는 아니다.

cross-az 3000GB 는 웹과 DB 가 다른 AZ 에 있어서 생긴다. 같은 AZ 로 몰면 없어진다. 그런데 그 AZ 가 죽으면 같이 죽는다.

이건 낭비가 아니라 가용성에 지불하는 값이다. 줄이려면 "AZ 하나가 죽어도 되는가" 에 먼저 답해야 한다. 그 답 없이 줄이면 비용을 아낀 게 아니라 위험을 산 것이다.

대기 DB(db 2대 중 1대)도 마찬가지다. 평소에는 아무 일도 안 하지만, 그게 그 돈의 용도다.

경로를 바꿔 없어지는 비용

가장 기분 좋은 종류다. 트래픽은 그대로인데 비용만 사라진다.

NAT 게이트웨이는 시간당 요금과 처리량당 요금이 따로 붙는다. 오브젝트 스토리지로 가는 트래픽이 NAT 를 지나고 있다면, 게이트웨이 엔드포인트를 쓰면 그 경로는 NAT 를 안 지난다.

시간당 요금은 남는다 — NAT 자체는 여전히 필요하다. 하지만 처리량 요금은 0이 된다.

아무도 안 지우지 않는 것들

스냅샷 4200GB 는 7개월치 일 스냅샷이다. 왜 아무도 안 지웠나?

보관 기간을 정한 사람이 없기 때문이다. 지우려면 "얼마나 오래된 시점으로 되돌아갈 수 있어야 하는가" 에 답해야 하는데, 그 답이 없으면 아무도 책임지고 못 지운다.

보관 기간은 비용이 아니라 복구 요구사항이 정한다. 30일이면 30일이라고 적어 두면, 그 뒤로는 자동으로 지워진다.

어디부터 손대나

비중 순이 정답 같지만, 실제로는 안 쓰는 것부터 시작하는 편이 낫다.

| 순서 | 무엇 | 왜 |
|---|---|---|
| 1 | 안 쓰는 자원 | 찾기 쉽고 위험이 없다 |
| 2 | 놀고 있는 시간 | 금액이 크고 되돌리기 쉽다 |
| 3 | 보관 정책 | 정하기만 하면 자동으로 준다 |
| 4 | 경로 바꾸기 | 설계 변경이 필요하다 |
| 5 | 구조 바꾸기 | 논쟁이 필요하다 |

1번은 아무도 반대하지 않는다. 팀이 방법을 익히면서 성과가 나고, 그다음 것을 할 신뢰가 생긴다. 5번부터 시작하면 대개 논쟁으로 끝난다.

현장에서 만나는 모습

정리