개발자 / 클라우드

개발자가 알아야 할 클라우드 비용 절감 팁 12가지

Peter Wayner | InfoWorld 2022.06.09


로그 파일 정리 
로그 파일은 개발 중 문제를 식별하고 소프트웨어를 디버깅하는 데 매우 유용하다. 그러나 일단 코드가 실무에 투입되면  로그 파일을 모두 유지할 필요가 없다. 과잉 정보는 언제나 로컬 디스크나 객체 스토리지를 적체시킨다. 로깅 시스템을 설계할 때 로그를 빈번히 삭제하도록 설정해야 한다. 로그4j(Log4j) 같은 여러 로그 패키지를 이용해 로그를 최소의 수로 유지하고 주기적으로 삭제하도록 설정될 수 있다. 

서버리스
서버리스 아키텍처 요금제는 코드가 실행 중일 때만 과금한다. 따라서 로드가 간헐적이라면 요금을 크게 줄일 수 있다. 사용자가 계속 있는 애플리케이션조차 정지 시간이 생각보다 많다.

다수의 서버리스 요금제는 최소한의 RAM을 소비하는 신중한 코딩과 매우 빠른 속도에 유리한 구조이다. 과금 방식은 반응 시간을 ms 단위로 계산하고 프로세서가 점유된 시간만 요금이 청구된다. 개발자라면 반응 시간을 직접 추적할 수 있고 코드 변경이 주는 영향을 파악할 수 있다.

서비리스 접근법은 작거나 실험적인 프로젝트에 이상적이고, 흔히 요금은 월 몇 센트에 불과하다. 애플리케이션이 일정한 기능을 간헐적으로 실행한다면 서버리스로 가는 것이 합리적이다. 

오래된 데이터 이동
데이터가 오래되면 사용 빈도가 줄어든다. 그렇다면 애플리케이션이 오래된 데이터를 비용이 저렴한 위치로 이동시키도록 설정할 수 있다. 몇몇 클라우드는 이른바 ‘콜드 스토리지(cold storage)’에 대해 훨씬 낮은 비용을 부과한다. 콜드 스토리지는 정보를 전달할 때 수분, 심지어 수시간이 걸릴 수 있다. 

와사비(Wasabi), 백블레이즈(Backblaze) 같은 클라우드는 아마존 S3 객체에 대한 보존 스토리지를 전문으로 하고, 대형 클라우드보다 극히 낮은 요금을 부과한다. 몇몇 사례에서 데이터 반출에 요금을 부과하지 않기도 한다. 수요가 더 이상 높지 않을 때 데이터를 치운다면 지극히 비용 효과적일 수 있다. 

CSS 레이아웃을 단순화 
몇몇 프레임워크에 의해 생성된 HTML 태그의 경우 레이아웃이 우스꽝스러워질 수 있다. 처음부터 끝까지 DIV 태그 안에 DIV 태그가 있는 형태이다. 이를 생성하고 전달하는 데는 돈이 든다. 필자가 알고 있는 한 웹 디자이너는 CSS를 신중히 사용하며 레이아웃을 단순화함으로써 네트워크 요금을 30% 줄였다고 전한 바 있다.

정적인 사이트 
리액트(React) 같은 몇몇 프레임워크는 특히 서버측 렌더링 등의 기능을 사용할 때 상당한 컴퓨팅 성능을 요구하며, 이에 따라 클라우드 요금도 증가한다. 이에 반대되는 접근법은 글자 그대로 캐시로부터 제공되는 불변의 HTML, CSS, 자바스크립트로 이루어진 정적인 사이트를 제작하는 것이다. CDN을 이용하면 캐시를 사용자에게 가까이 이동시킴으로써 전송 속도를 훨씬 더 높일 수 있다.

여러 프레임워크가 이 정적인 사이트 철학을 수용한다. 제킬(Jekyll), 휴고(Hugo), 그리드섬(Gridsome), 펠리칸(Pelican)은 전체 콘텐츠를 일련의 작고 변치 않는 파일 안으로 포장하는 대표적인 툴들이다. AJAX 호출에 의해 페이지의 커스터마이징은 여전히 가능하다. 그러나 서버 상에서 부하를 별로 발생하지 않는다.

연산 및 스토리지를 외부화 
웹 브라우저가 강력해지면서 몇몇 프레임워크는 연산을 클라이언트로 직접 이동하는 것을 더 단순하게 만들었다. 우수한 자바스크립트 또는 웹어셈블리 코드는 더욱 많은 로드를 사용자의 디바이스로 이동시켜 클라우드 서버의 로드를 줄일 수 있다. 일부 개발자는 클라우드 계층을 약간의 인증용 비즈니스 로직을 가진 데이터베이스 정도로 축소하고 있다. 정적인 HTML과 서버측 포스트그레SQL 버전으로 (JSON을 출력하는 절차가 임베드 되어 있음) 모든 것을 운영하는 사례도 있다. 

또한 브라우저는 정보를 로컬로 저장하기 위한 정교한 선택지, 예를 들어 HTML 웹 스토리지(HTML Web Storage) 표준, W3C 인덱스드 데이터베이스 API(W3C Indexed Database API) 등을 가지고 있다. 이는 더 이상 짧은 문자열과 쿠키가 아니다. 이 데이터는 인터넷을 통해 이동하지 않기 때문에 더 신속히 이용할 수 있고, 사용자는 데이터가 중앙의 해킹 가능한 데이터베이스에 저장되지 않음을 알기 때문에 안심한다. 사용자의 기기에 무료로 상주시킬 수 있는데 굳이 데이터 스토리지 및 반출을 위해 돈을 쓸 필요가 있을까? 

비용 엔지니어를 임명 
일부 개발자는 데이터베이스 관리를 전문으로 한다. 그런가 하면 멋진 전면 디자인으로 아름다운 첫인상을 만드는 것을 좋아하는 개발자도 있다. 이제는 클라우드 비용이 너무 유동적이기 때문에 코드 비용과 효율을 관리할 ‘비용 엔지니어’를 공식적으로 임명하는 팀도 있다. 

비용 엔지니어의 책임은 애플리케이션 코드가 더 깔끔하고 더 빠르고 더 가볍고 결과적으로 더 저렴하게 실행되도록 하는 것이다. 이렇듯 책임으로 할당함으로써 개발 팀의 역할 및 책임의 일부로서 코드 비용을 관리하는 작업의 중요성을 강조할 수 있다. 
ciokr@idg.co.kr

Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.