Skip to content
isdnetworks
Go back

서버를 사는 대신 빌려 쓰기 시작했다 — 처음 한 달의 기록

그동안 서버는 사는 것이었다. 장비를 고르고 사고 IDC 에 넣고 안 되면 직접 가야 했다. 이번 프로젝트는 빌려 쓰는 방식이라 화면에서 클릭하면 몇 분 만에 서버가 생긴다.

Table of contents

Open Table of contents

만들기 쉬워서 관리가 안 됐다

EC2 인스턴스를 만드는 데 몇 분이면 충분했고 승인을 받을 필요도 없었다. 물리 서버는 주문하고 며칠 걸리는데 여기는 5분이다.

그런데 이것이 좋기만 한 것이 아니었다. 너무 쉬워서 계속 만들었고 테스트한다고 만들고 지우지 않은 것이 2주 만에 여섯 대가 됐다.

IDC 시절에는 서버를 하나 넣으려면 견적과 입고 일정이 있어서 개수가 저절로 관리됐다. 그 제동이 없어지니 몇 대가 돌고 있는지 세는 사람도 없어졌고 한 달쯤 지나 목록을 보니 무엇인지 모르는 것이 몇 개 있어 지워도 되는지 몰라서 못 지웠다.

그래서 만들 때 이름을 규칙대로 붙이기 시작했다.

프로젝트-용도-번호     예: slots-web-01, slots-db-01

태그도 붙여 누가 만든 것인지 남기게 했다. 태그가 없는 자원은 매주 목록으로 뽑아 만든 사람에게 물었다.

원인 — 껐는데 멈추지 않은 요금

첫 달 요금을 보고 예상보다 많아서 항목을 뜯어봤다. 인스턴스 목록만 보면 대수가 많지 않아 원인이 거기 있어 보이지 않았다.

Cost Explorer 에서 항목별로 갈라 보니 EBSEC2 와 비슷한 비중이었다. 인스턴스를 종료해도 거기 붙어 있던 볼륨이 그대로 남아 요금을 내고 있었다.

문서를 보니 종료할 때 함께 지워지는 것은 DeleteOnTermination 이 설정된 볼륨뿐이었다. 나중에 붙인 볼륨은 그 값이 안 걸려 있어 인스턴스만 사라지고 볼륨은 available 상태로 남는다.

Elastic IP 도 어디에도 안 붙은 채로 잡혀 있으면 요금이 붙었다. 고정 주소를 받아 두고 그 서버를 지웠더니 주소만 남아서 요금이 나온 것이다.

나가는 데이터에도 요금이 붙었다. 들어오는 것은 무료인데 나가는 것은 돈이고 이미지가 많은 서비스라 이 항목이 생각보다 컸다. 물리 서버는 한 달에 얼마로 고정이라 이런 것을 생각할 일이 없었다.

관리형 DB가 못 하게 막은 것

DB 도 서비스로 제공하는 것이 있어서 직접 설치하는 대신 RDS 를 쓰기로 했다. 백업이 자동이고 다른 지역에 사본을 두는 것도 설정 하나였다.

대신 못 하는 것이 있었다.

IDC 시절 my.cnf 를 직접 고치던 방식은 여기서 통하지 않는다. SUPER 권한이 없어서 SET GLOBAL 이나 이벤트 스케줄러를 직접 못 켠다는 것도 그때 알았다.

처음엔 답답했는데 못 하게 막힌 것들이 대부분 하면 안 되는 것이었다. 직접 관리할 때 설정을 잘못 만져서 문제가 생긴 적이 있었다.

RDS 문서에는 인스턴스를 중지해도 스토리지와 백업은 계속 과금된다고 돼 있었다. 중지가 곧 요금 정지를 뜻하지 않는다는 것도 거기서 알았다.

사라지는 것을 정상으로 본다

문서를 읽다가 이 문장을 봤다.

인스턴스는 언제든 종료될 수 있으므로, 중요한 데이터는 인스턴스 안에 두지 마십시오.

물리 서버에서는 이런 생각을 안 했다. 서버가 죽으면 고치면 되니까. 여기서는 서버가 사라지는 것이 정상 동작이라 구조를 바꿔야 했다.

전에지금
업로드 파일서버 디스크S3 버킷
세션서버 메모리Redis
로그서버 파일모아서 별도 보관
설정서버 안 파일만들 때 주입

이렇게 하고 나니 서버를 지웠다가 다시 만들어도 아무 일이 없다. 처음에는 번거로웠는데 해 놓으니 서버를 부담 없이 다룰 수 있게 됐다.

재고 나서 남은 것을 적었다

한 달 요금을 EC2EBSRDS 와 데이터 전송으로 갈라 표로 만들었다. available 상태 볼륨과 안 붙은 Elastic IP 를 정리하니 다음 달이 30%쯤 내려갔다. 인스턴스를 줄인 것이 아니라 붙어 있던 것들을 정리한 결과였다.

읽어도 모르는 것이 남았다. 요금을 어떻게 예측하는지 모르겠는데 지난달 얼마 나왔는지는 보이지만 이번 달에 얼마 나올지는 감이 안 오고 트래픽이 늘면 얼마나 늘어나는지도 모른다.

얼마짜리를 써야 하는지도 모르겠다. 크게 잡으면 낭비고 작게 잡으면 느린데 지금은 넉넉하게 잡아 뒀고 이것이 맞는지 확인할 방법을 찾아야겠다.

자동으로 늘리는 기능이 있다고 하는데 아직 안 써 봤다. 트래픽이 몰릴 때 알아서 서버를 늘린다는데 그러면 요금도 알아서 늘어나는 것이라 겁이 난다.

정리


Share this post on:

Previous Post
화면 번호로 조회했는데 0건이었다
Next Post
명령 하나에 서버가 멈췄다