Immich는 사진과 동영상을 타사 앨범 서비스에만 맡기지 않고 자신의 서버에 저장하는 셀프 호스팅 백업 서비스이다. 모바일 자동 백업, 얼굴 검색과 의미 검색, 공유 앨범 등의 기능을 제공하며 최근 셀프 호스팅 애호가들 사이에서 주목받고 있다. 사용할 가치가 있는지는 기능 목록보다 운영 비용을 감당할 의향이 있는지에 달려 있다.
어떤 문제를 해결하는가
휴대전화 사진이 계속 늘어나면서 클라우드 앨범 용량과 개인정보, 장기적인 통제 가능성이 고민이 되는 사람이 많다. Immich는 원본을 직접 관리하는 저장소에 저장한다. 모바일 앱은 새 사진을 자동으로 백업할 수 있고, 백업 후에는 웹이나 앱에서 인물이나 내용으로 검색하거나 앨범을 가족과 공유할 수 있다. 데이터를 직접 관리하고 싶은 사람에게는 이 조합이 매력적이지만, 번거로움을 피하고 싶은 사람에게는 오히려 유지 관리 부담이 하나 더 생긴다.
공식 저장소 정보
플랫폼은 GitHub, 조직은 immich-app, 프로젝트 이름은 Immich, 라이선스는 AGPL-3.0이다. 다운로드와 배포 전에 조직 이름과 프로젝트 이름을 확인해 출처가 불분명한 변경 버전을 피해야 한다. 업데이트가 비교적 잦으므로 배포 전에 사용하려는 버전과 배포 방식이 맞는지 확인한다.
어울리는 사람
이미 소형 서버나 NAS를 가지고 있고 가끔 직접 유지 관리를 할 의향이 있으며, 사진이 많고 데이터 자주권을 중요하게 여기는 사람에게 어울린다. 가족 공유 앨범을 만들고 일상 유지 관리를 맡을 사람이 있는 가정에도 어울린다. 설치만 하고 신경 쓰고 싶지 않은 사람, 예비 저장소가 없는 사람, 네트워크와 백업 문제를 다루고 싶지 않은 사람에게는 맞지 않는다.
배포 비용으로 따져야 할 세 가지
첫째는 하드웨어이다. 배포에는 Docker Compose를 사용하며 서버, 머신러닝 서비스, PostgreSQL, Redis 등의 구성 요소가 포함된다. 공식 권장 사항은 최소 6GB 메모리와 2코어부터 시작이며 8GB면 더 안정적이다. 성능이 부족하면 가져오기와 검색이 느려진다. 둘째는 저장 공간이다. 원본 외에도 여유를 남겨야 한다. 시스템이 축소판과 미리보기 파일을 생성하므로 사진이 많을수록 추가 사용량이 눈에 띈다. 원본 크기만 계산하면 결국 공간이 부족해진다. 셋째는 시간이다. 큰 사진 보관함을 처음 가져올 때 얼굴 인식과 의미 검색 색인 작업은 몇 시간, 길게는 그보다 더 걸릴 수 있다. GPU가 있으면 빨라지지만 필수는 아니다. 가져오는 동안 기기 부하가 높으므로 한가한 시간에 나눠서 진행하는 것이 좋다.
실제 함정을 먼저 생각하기
- 업그레이드 전에 데이터베이스와 데이터를 백업한다. 백업을 건너뛰고 업그레이드하면 문제가 생겼을 때 되돌리기가 어렵다.
- 외부 네트워크에서 접속하려면 먼저 HTTPS를 설정한다. 암호화되지 않은 서비스를 그대로 외부에 노출해서는 안 된다.
- 일부 오래된 CPU에는 명령어 집합 요구 사항이 있어 머신러닝 서비스가 시작되지 않을 수 있다. 배포 전에 하드웨어가 요구 사항을 충족하는지 확인하고, 필요하면 관련 기능을 먼저 꺼본 뒤 시도한다.
- 백업을 하나의 디스크에만 의존해서는 안 된다. 서버 디스크가 고장 나면 Immich 안의 데이터도 함께 사라진다. 중요한 사진에는 독립적인 두 번째 백업이 필요하다.
먼저 소규모로 시험하고 장기 사용은 그 뒤에 결정하기
먼저 적은 수의 사진으로 일주일간 시험해 자동 백업과 검색, 공유, 복원이 모두 원활한지 확인한 뒤 전체 사진 보관함을 옮길지 결정한다. 시험 중에 유지 관리 부담 때문에 이미 그만두고 싶어졌다면 장기 사용은 더 부담스럽게 느껴질 것이다. 셀프 호스팅의 가치는 통제 가능성에 있고, 대가는 누군가 책임을 지는 것이다. 두 조건이 모두 갖춰졌을 때야 비로소 온 가족의 사진을 정식으로 맡길 수 있다.