작업 수에 따라 부과되는 클라우드 스토리지 비용
아마존, 구글 등에서 제공하는 클라우드 스토리지는 저장된 용량과 행동(Action)에 따라서 비용이 부과된다. 파일 수가 많아지면, 단순히 전체 리스트를 불러오는 작업도 비용이 부담될 수 있다.
GCP의 작업 종류에 따른 비용 예시
필자는 쇼핑몰에 사용하는 이미지를 클라우드 스토리지에 업로드해서 호스팅하고 있는데, 간단하게 작업 수를 줄일 수 있는 방법을 고민해봤다.
작업 수를 줄여서, 클라우드 스토리지 비용 아끼기
💡 이 작업은 이미지나 파일을 클라우드 스토리지로 호스팅하는 것이 목적이다. 그래서, 개인 저장소에 있는 폴더를 클라우드 스토리지에 미러링하고, 변경된 사항만 핀포인트로 업데이트 하는 방법이다.
클라우드 스토리지 비용을 줄이는 가장 빠른 방법은 작업 수를 줄이는 것이다. 방법은 다음과 같다.
- 로컬 스토리지에서 Git으로 변경점을 찾는다.
- 변경점만 클라우드 스토리지에 업데이트한다.
1. 로컬 스토리지에서 Git으로 변경점을 찾는다.
Git에는 git diff
라는 명령어가 있다. 이를 통해 삭제, 수정, 추가 등 변경된 내용을 찾을 수 있다. git diff --name-only --diff-filter=ACM HEAD~1 HEAD
라는 명령어는 HEAD와 HEAD~1 사이의 변경된 항목 중 A, C, M에 해당하는 것을 나열하는 명령어다.
2. 변경점만 클라우드 스토리지에 업데이트한다.
git diff
로 변경된 항목을 찾으면, 이제 변경된 항목만 클라우드 스토리지에 업데이트하면 된다. A(adding), C(copied), M(modified)에 해당하는 것들은 클라우드 스토리지로 업로드하고, R(renamed)에 해당하는 항목은 클라우드에서는 지우고 새로 업로드하면 된다. 마지막으로 D(removed)에 해당하는 파일은 클라우드에서 지우면 된다.
필자는 클라우드 스토리지는 CloudFlare의 R2를 이용했고, 클라우드 스토리지에 업데이트 하는 과정은 Rclone를 이용했다.
해당 내용을 Bat 파일로 만들어서 실행하기
해당 내용을 bat 파일(윈도우 기준)로 만들어서 원할 때 마다 실행시켜주면 된다. 참고로 git diff에서 한글은 깨지기 때문에 ignorecase = true
문구를 config 파일에 추가해야 한다.
bat 파일은 아래와 같다.