TL;DR
- 오픈소스 MIT 라이선스 Go 도구인 TagBackup이 태그를 기준으로 파일을 업로드·다운로드·조회·삭제하며, 모든 S3 호환 버킷에서 동작함.
- 태그를 AWS S3 객체 태그가 아닌 객체 키에 포함해 외부 인덱스 없이 AND·OR·NOT 조건으로 파일을 필터링함.
- 새 로컬 웹 UI인
tagbackup serve로 버킷 탐색, 태그 필터링, 정렬, 파일 업로드와 삭제를 브라우저에서 처리함. - API 호출은 TagBackup과 버킷 사이에서만 이뤄지고 자격 증명은 기기를 벗어나지 않으며, 서버는 127.0.0.1에만 바인딩됨.
- 대화형 설정, 스크립트용 비대화형 모드와 JSON 출력, 예측 가능한 자격 증명 처리, 원자적 다운로드를 제공함.
TagBackup 소개
- 오픈소스 MIT 라이선스의 Go 도구인 TagBackup은 사람이 읽기 쉬운 태그로 식별하고 필터링하는 방식으로 파일을 S3 호환 버킷에 업로드·다운로드·조회·삭제함.
- 설치 명령은
curl -sfL https://tagbackup.com/install.sh | sh임. - 단일 바이너리로 제공되며 macOS, Linux, Windows에서 사용할 수 있고, 배포 버전은 v0.0.12임.
로컬 웹 UI
tagbackup serve를 실행하면 브라우저에서 버킷을 탐색하고, 태그로 필터링하며, 파일을 정렬·업로드·삭제하는 로컬 웹 UI를 사용함.- 웹 UI는 127.0.0.1:3000에서 실행되며 네트워크에 노출되지 않음.
- 인터랙티브 인스턴스에서 버킷 전환, 태그 필터링, 정렬, 업로드, 삭제를 수행할 수 있음.
주요 기능
- 태그 기반 정리: 태그는 AWS S3 객체 태그가 아니라 객체 키에 포함되며, 외부 인덱스 없이 태그별 필터링과 AND·OR·NOT 조건 조합을 처리함.
- S3 호환 스토리지: AWS S3, Cloudflare R2, MinIO, Backblaze B2 및 S3 API를 지원하는 스토리지를 대상으로 함.
- 텔레메트리 없음: 모든 API 호출은 TagBackup과 버킷 사이에서 직접 이뤄지며, 외부로 연결하지 않고 자격 증명을 기기 밖으로 보내지 않음.
- 스크립트 실행 지원: 비대화형 모드, JSON 출력, 의미 있는 종료 코드를 제공해 cron 작업과 셸 스크립트에서 사용할 수 있음.
- 유연한 자격 증명: 정적 키, AWS 프로필, IAM 역할, 환경 변수를 지원하며 자격 증명 확인 순서를 예측 가능하고 문서화된 방식으로 처리함.
- 원자적 작업: 다운로드는 임시 파일에 기록한 뒤 성공 시 원자적으로 이름을 바꾸며, 중단된 다운로드가 불완전한 파일을 남기지 않음.
일반적인 사용 사례
- cron 작업이 매일 밤 서버 데이터베이스 덤프를 생성하고, 노트북에서 필요할 때 최신 파일을 가져오는 흐름임.
- 서버가 데이터베이스를
dump.sql로 내보내고,tagbackup push가nightly,prod태그를 붙여 업로드함. delete --older-than=30d명령으로 오래된 백업을 정리함.- 노트북에서
pull --latest를 실행해 필요할 때 최신 백업을 가져옴.
빠른 시작
- 버킷을 대화형으로 추가하고, 태그를 지정해 파일을 올린 뒤, 조건에 맞는 파일을 조회하는 세 단계 흐름임.
tagbackup bucket add로 버킷을 설정하고,tagbackup push dump.sql --bucket=myproject --tag=nightly,prod로 파일을 업로드함.- 업로드 예시는
1776831788343-nightly,prod-dump.sql파일이 올라왔음을 표시함. tagbackup files --bucket=myproject --tag=nightly로 조회하면 예시에서 파일 3개, 총 9.4MB가 표시됨.- 자격 증명은 기기에 보관됨.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요