개인 데이터를 자체 호스팅하거나 종단간 암호화(E2EE)를 제공하는 서비스, 또는 최소한 EU에 호스팅된 서비스로 옮기고 있다. 최근 여러 상황 때문에 그렇게 결심했다.
여러 Kubernetes 클러스터를 운영하며, 그중 하나는 3노드 클러스터와 스토리지 서버를 갖춘 홈랩이다. 전자책 모음과 RSS 피드를 동기화하고, 레시피를 수집하며, 위치를 추적하는 서비스를 이미 운영한다. Home Assistant, Jellyfin을 통한 미디어 스트리밍, Forgejo 같은 기본 서비스도 갖췄다.
영화 저장은 쉬웠다. RAID1으로 구성한 24TB HDD가 있는 오래된 Unraid 스토리지 서버를 이미 갖고 있었기 때문이다. 오랫동안 자체 호스팅하고 싶었던 것은 사진 라이브러리였다. 지금까지 약 7만 장의 추억 사진, 700GB가 Apple iCloud에 저장돼 있다.*
사진 관리 플랫폼
자체 호스팅 사진 라이브러리에 쓸 만한 오픈소스 도구는 소프트웨어 측면에서 두 가지뿐이다.
Immich는 커뮤니티 프로젝트로 시작해 현재는 FUTO의 후원을 받고 있지만, 커뮤니티도 활발히 참여한다. Google Photos와 비슷한 모양과 사용감을 제공하며, 첫 안정 버전은 불과 1년 전에 나왔다. GitHub에서 별 11만 6천 개를 받았다.
장점은 커뮤니티 참여가 활발하고 기능이 풍부하다는 점이다. 단점은 저장소로 로컬 파일시스템 마운트만 지원하고, 종단간 암호화가 없으며, 서버 측 AI 기능을 제공한다는 점이다.
Ente Technologies, Inc.가 이끄는 ente는 사진을 중심으로 계속 확장하는 도구 모음에 가깝다. Google 출신 직원이 설립했으며, 서버부터 앱까지 모든 구성 요소를 AGPL-3.0으로 공개한다. GitHub에서 별 2만 9천 개를 받았다.
장점은 모든 것이 종단간 암호화되고, 있으면 좋은 기능보다 기반 기술에 집중하는 듯하며, 이미지 감지에 기기 내 AI를 사용한다는 점이다. 단점은 주로 한 회사가 개발한다는 점이다. 회사가 파산하면 프로젝트의 미래가 불확실해질 수 있다.
자체 호스팅 방식
지난 몇 년간 SSD를 비롯한 하드웨어 가격이 크게 올라, 이 프로젝트에 빠른 저장 장치를 새로 사는 데 수천 유로를 쓰기는 어려웠다.
기존 스토리지 서버의 HDD를 사진 저장에 쓰고 싶지는 않았다. 작은 파일을 많이 읽고 쓸 때 성능이 떨어지는 데다, 드라이브 수명이 다해 언제든 일부가 고장 날 수 있다고 봤기 때문이다.
Ente에서 눈에 띄는 기능은 S3 호환 엔드포인트를 이미지 파일 저장소로 쓸 수 있다는 점이다. 따라서 ente API와 키 인프라, 웹 플랫폼은 직접 호스팅하면서 파일은 S3 저장소에 종단간 암호화된 상태로 둘 수 있다.
다행히 클라우드 제공업체에서 일하고 있어, 일부 자원을 자체 제품을 직접 사용해 검증하는 방식으로 활용할 수 있다. 수만 개의 작은 파일을 다뤄 보는 것보다 좋은 시험 방법은 없었다. 물론 상사와 먼저 합의했다.
아이폰을 식혀야 했던 이유
이 글을 클릭베이트 제목 때문에 열었다면, 이제 문제를 설명하겠다.
macOS 대신 ente의 iOS 앱으로 사진을 옮기기로 했다. macOS를 쓰려면 먼저 ‘수정되지 않은 원본’을 디스크로 내보낸 다음 ente에 업로드해야 했다. 이 방법은 여유 공간이 약 200GB뿐이라 여러 단계로 나눠야 하고, 앨범과 즐겨찾기도 보존하지 못한다.
iOS에서 ente는 다음과 같이 작동한다.
- 기존 미디어 라이브러리를 스캔한다.
- 이미지 하나를 암호화해 업로드한다. 이미지가 오프라인에 없다면 이 과정에서 iOS가 먼저 iCloud에서 파일을 내려받는다.
- 다운로드된 파일 때문에 라이브러리에 변경이 생겼다고 판단해 전체 라이브러리를 다시 스캔한다.
iOS 앱의 로그 파일을 읽고 파악한 동작이며, 이에 관한 GitHub 이슈도 있다. 이 과정은 마이그레이션을 꽤 느리고 CPU 집약적으로 만든다.
iPhone 15 Pro는 열을 잘 전달하지 않는 티타늄 프레임을 사용한다. 여기에 CPU 쓰로틀링이 심하게 발생하고 충돌까지 이어질 수 있다.
해결책은 두 가지
문제를 줄이기 위해 다음 방법을 생각해 냈다.
- 화면 자동 잠금을 끈 채 8시간 동안 매분 ente 앱을 열도록 단축어를 만든다.
- 휴대전화에 선풍기를 틀어 준다.
개인정보 보호를 위해 아이폰을 공랭식으로 식히는 경험이라니.
- Apple Photos도 종단간 암호화를 지원하며, 고급 데이터 보호(ADP)를 켜면 더 많은 데이터가 암호화된다. 하지만 언젠가 Android나 Linux로 바꾸면 사진에 접근할 때 icloud.com에 의존해야 한다. 그다지 마음에 들지 않는다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요