개인 온라인 저장소 만들기

구글 드라이브와 비슷한 개인 온라인 저장소를 직접 만들었습니다.

 


사진과 동영상을 무제한으로 저장할 수 있던 구글 포토가 2021년 6월1일부터 그럴 수 없게 되었습니다.
사진, 동영상, 파일 등을 공짜로 제공하는 15GB 내에서만 저장할 수 있게 되었습니다.
많은 사진과 큰 용량의 동영상을 백업하거나 공유할 일이 많은 저에겐 15GB는 턱없이 부족한 용량입니다.

인터넷에서 라즈베리 파이로 개인 온라인 저장소를 만든 사례를 본 적이 있어 검색해보니, 소프트웨어 설치만으로 쉽게 구축할 수 있음을 확인할 수 있었습니다. (ownCloud, Seafile, OpenMediaVault, NextCloud 등)
라즈베리 파이에 USB 외장 드라이브를 연결하는 것만으로 저장 용량을 늘리는 것도 가능했습니다.
남는 128GB SSD와 라즈베리 파이 3으로 개인 온라인 저장소를 직접 만들어서 구글의 것보다 8배가량 큰 저장소를 구축하기로 했습니다.

█ 구글 것과 비교

개인 온라인 저장소를 집에 설치해서 항상 켜두면 전기 요금이 지속해서 나간다는 문제가 있습니다.
그래서 전기 요금을 계산해 봤습니다.

개인 온라인 저장소가 돌아가는 장비의 최대 소비 전력은 약 10Wh입니다.
24시간 켜두고 한 달을 사용하면 약 7kWh를 사용합니다.
전기 요금 계산기로 월 요금을 계산하면 기본요금을 빼고 618원이 나옵니다.
618원은 장비를 쉴 틈 없이 최대 성능으로 돌렸을 때의 요금으로 보통은 2~3백 원일 것으로 추산이 됩니다.
월 2,400원으로 구글 드라이브 100GB를 사용하는 것보다 적은 비용으로 더 큰 저장 공간을 사용할 수 있다는 계산 결과입니다.

모든 장비를 새것으로 구매한다면 구축 비용이 10만 원 정도 듭니다.
보유 장비가 없다면 월 2,400원으로 구글 드라이브 용량을 늘리는 것이 이득입니다.

█ 소프트웨어 선택

소프트웨어 선택에서 가장 중요한 기준은 구글 포토와 같은 기능이 있느냐입니다.
개발과 업데이트가 더디거나 로컬 네트워크에 최적화된 것들을 제외하고 OMV와 NextCloud 두 가지를 꼼꼼히 비교했습니다.
OMV는 plug-in(추가 기능)을 별도 설치하면 구글 포토와 비슷한 기능을 구축할 수 있었지만, 그 plug-in은 5년 넘게 개선이 되지 않고 있는 구닥다리였습니다.
NextCloud는 Try Nextcloud로 미리 사용했을 때, 앨범을 만드는 기능은 없었지만 구글 포토와 비슷한 기능이 있음을 확인할 수 있었습니다.
폴더를 만들어 사진을 담거나 사진에 태그를 달아서 앨범과 비슷하게 사용할 수 있을 것으로 보여 NextCloud로 개인 온라인 저장소를 구축하기로 했습니다.

█ 장비 준비

필요한 주요 장비는 이미 언급한 라즈베리 파이와 SSD입니다.
라즈베리 파이에 NextCloud가 돌아가고 SSD에 자료가 저장됩니다.
기타 장비를 포함해 필요한 장비(사용한 장비)는 다음과 같습니다.

  • 라즈베리 파이 3 또는 4 (라즈베리 파이 3 B)
  • MicroSD 카드(삼성 EVO 32GB)
  • Micro USB 어댑터
  • 라즈베리 파이 케이스
  • SSD(SanDisk Z400s 128GB)
  • USB 외장 케이스(EFM ipTIME HDD 1025 USB 2.0)
  • USB-A to USB-mini 5pin 케이블

개인 온라인 저장소 장비

█ NextCloud 설치

NextCloud를 라즈베리 파이에 설치하고 초기 설정을 하는 방법은 이 글을 참고했습니다.

▌ 설치에 필요한 장비 준비

입출력장치가 없는 라즈베리 파이에 소프트웨어를 설치하려면 별도의 컴퓨터가 필요합니다.
저는 Windows 10이 설치된 노트북을 사용했습니다.
설치에 필요한 장비는 다음과 같습니다.

  • 컴퓨터
  • microSD 카드 리더
  • USB 키보드
  • HDMI 지원 모니터
  • HDMI 케이블

▌ NextCloudPi 받기

OwnYourBits website에서 NextCloud가 포함된 라즈베리 파이 OS 이미지 파일을 받습니다.
(“Berryboot”가 없는 것으로 받습니다.)

NextCloudPi 다운로드

bz2 압축파일을 풀면 tar 압축파일이 생성되고 한 번 더 풀면 img 파일이 생성됩니다.
(저는 반디집으로 풀었습니다.)

압축파일 풀기

▌ microSD 카드에 NextCloudPi 설치

이 곳에서 라즈베리 파이 OS 설치를 도와주는 Raspbarry Pi Imager를 받아서 설치합니다.
설치가 완료되면 프로그램을 실행합니다.
관리자 권한을 요청하면 허용합니다.

Respbarry Pi Imager 실행 화면

“CHOOSE OS”를 클릭하면 OS를 선택하는 창이 뜹니다.
Operating System 창 맨 아래의 “Use custom”을 클릭합니다.
Select image 창에서 확장자가 img인 NextCloudPi_RPi 파일을 선택합니다.
선택이 제대로 되었다면 “CHOOSE OS” 문구가 선택한 파일명으로 바뀝니다.

“CHOOSE STORAGE”를 클릭하면 외부 저장소 목록이 뜹니다.
microSD 카드가 연결된 외부 저장소를 선택합니다.
바뀐 문구로 선택한 외부 저장소를 확인할 수 있습니다.

“WRITE”를 클릭하여 NextCloudPi를 microSD 카드에 설치합니다.

▌ 라즈베리 파이 부팅

NextCloudPi가 설치된 microSD 카드를 라즈베리 파이에 끼웁니다.
라즈베리 파이에 모니터와 키보드를 연결합니다.
Micro USB 어댑터를 연결하여 라즈베리 파이를 켭니다.

라즈베리 파이 부팅 화면

부팅이 제대로 되면 맨 아래에 “nextcloudpi login:” 문구가 뜹니다.
기본 ID(pi)와 비번(raspberry)을 입력하고 로그인합니다.

◆ “nextcloudpi login” 문구가 안 보이는 경우

부팅 화면에 아무런 변화가 없고 “nextcloudpi login” 문구가 안 뜰 수 있습니다.
이럴 땐 키보드 Enter 키를 누르면 “nextcloudpi login:” 문구가 뜹니다.

로그인 화면

█ Wi-Fi 연결

라즈베리 파이 프롬프트에 “sudo raspi-config”를 입력합니다. 

라즈베리 파이 설정 도구 화면

라즈베리 파이 설정 도구에서 “2 Network Options” -> “N2 Wireless LAN”을 선택합니다.
국가 설정에서 “KR Korea (South)”를 선택하고 “OK”를 선택합니다.
무선공유기의 SSID와 암호를 입력합니다.
(라즈베리 파리 3 B의 WiFi는 2.5GHz만 연결할 수 있습니다.)

“Finish”를 선택하여 설정을 마칩니다.

프롬프트에 “reboot”을 입력하여 라즈베리 파이를 재부팅 합니다.

재부팅되면 다시 로그인하고 프롬프트에 “ip addr”를 입력합니다.
WiFi가 제대로 연결되었다면 wlan0에 할당된 IP를 확인할 수 있습니다.

IP 확인 결과

고정 IP 설정을 위해 wlan0의 IP(예 172.30.1.3)와 MAC 주소(예 00:11:22:33:44:55)를 기록합니다.

◆ WiFi 접속이 안 될 경우

SSID와 암호를 정확히 입력했음에도 WiFi 연결이 안 되면 프롬프트에 “sudo iwlist wlan0 scan”을 입력하여 접속 가능한 WiFi를 검색합니다.

"wlan0 Interface doesn't support scanning : Invalid argument" 문구만 뜨고 접속 가능한 WiFi를 확인할 수 없다면 국가 설정을 US로 변경해야 합니다.

프롬프트에 “sudo raspi-config” 입력하고 “5 Localisation Option” -> “L4 WLAN Country”를 선택합니다.
국가 설정을 “US United States”로 변경합니다.
“Finish”를 선택하면 자동으로 재부팅을 합니다.
(자동 재부팅이 안 되면 프롬프트에 "reboot"을 입력합니다.)

“sudo iwlist wlan0 scan”를 다시 입력하여 WiFi를 검색합니다.
검색 결과가 정상적으로 출력되면 “ip addr”로 wlan0에 할당된 IP를 확인할 수 있습니다.

█ 공유기 설정

외부에서 NextCloud에 접속하려면 내부망과 외부망을 연결하는 공유기에서 내부망의 고정 IP와 포트 포워딩을 설정해야 한다.

공유기 설정 방법은 제가 사용 중인 KT GiGA WiFi home 공유기와 Window 10을 기준으로 설명합니다.

윈도우에서 명령 프롬프트를 실행합니다.

공유기 IP 확인

“ipconfig”를 입력하여 “기본 게이트웨이”의 IP를 확인합니다.
기본 게이트웨이는 공유기를 의미합니다.

웹브라우저 주소란에 공유기 IP(예 172.30.1.254)를 입력합니다.
관리자 계정으로 로그인합니다.
KT GiGA WiFi home의 초기 관리자 계정의 아이디는 ktuser이고 비밀번호는 homehub입니다.

“장치 설정” -> “LAN 연결 설정”으로 이동합니다.

고정 IP 설정 웹페이지

“수동 IP 할당 설정”에 [WiFi 연결] 단계에서 확인한 라즈베리 파이의 MAC 주소와 IP를 입력합니다.
고정 IP가 할당된 장비에 관한 설명을 입력하고 추가 버튼을 클릭합니다.
제대로 설정되었다면 “IP 할당 리스트”에서 확인할 수 있습니다.

▌ 포트 포워딩 설정

포트 포워딩은 외부망의 특정 포트를 내부망의 특정 IP(장비)로 연결해 주는 역할을 합니다.
NextCloud 접속에 사용되는 80, 433 포트를 라즈베리 파이로 포트 포워딩을 설정해야 합니다.

공유기의 포트 포워딩 설정 웹페이지

웹브라우저로 공유기에 접속합니다.
“장치설정”->“트래픽 관리”->“포트포워딩 설정”으로 이동합니다.

“내부 IP 주소”에 라즈베리 파이의 IP(예 172.30.1.3)를 입력합니다.
“외부 포트”와 “내부 포트”에 80을 입력합니다.
“설명”에 장비와 포트 용도를 입력하고 “추가”를 클릭합니다.
433 포트도 같은 방법으로 추가합니다.
설정 내용은 같은 웹페이지 하단에서 확인할 수 있습니다.

█ NextCloudPi 웹 활성화

웹브라우저로 라즈베리 파이에 접속합니다. (예 https://172.30.1.3)

웹 접속 위험성 경고

보안 경고가 뜨면 “고급”->”위험을 감수하고 계속 진행” 선택하고 넘어갑니다.

초기 계정 정보 안내 웹페이지

NextCloudPi 프로그램을 제어할 수 있는 계정 정보와 NextCloud 최초 사용자(관리자) 계정 정보를 기록합니다.
“Activate”를 눌러서 NextCloudPi를 활성화합니다.

█ 구성 마법사를 통한 NextCloudPi 초기 설정

활성화가 완료되면 NextCloudPi 제어 웹페이지로 접속됩니다. (예 https://172.30.1.3:4443)
보안 경고가 뜨면 이전 단계와 같은 방법으로 넘어갑니다.

이전 단계에서 확인한 NextCloudPi 계정 정보로 로그인합니다.

구성 마법사

구성 마법사를 이용하여 USB 외장 드라이브를 추가하고 DDNS를 설정합니다.

▌ USB 외장 SSD 추가

USB 외장 드라이브 추가 웹페이지

“USB Configuration” 탭에서 USB 드라이브에 자료를 저장하겠냐는 질문에 “Yes”를 선택합니다.
USB 외장 SSD를 라즈베리 파이에 연결합니다.
“Continue”를 누르고 드라이브가 인식되기를 기다립니다.
인식되면 “Format USB”를 선택해서 USB 드라이브를 NextCloudPi에 맞도록 포맷합니다.

▌ DDNS 설정

가정에서 사용하는 인터넷 공유기는 고정 IP를 신청하지 않았다면 가변 IP를 할당받습니다.
이런 조건에 외부에서 NextCloud에 접속하려면 DDNS(Dynamic DNS)를 사용하면 됩니다

NextCloud에 DDNS를 설정하면 IP가 바뀔 때마다 자동으로 DDNS 서버에 등록된 IP를 바꿔서 같은 도메인으로 접속할 수 있습니다.

FreeDNS에서 서브도메인을 만들어 NextCloud에 설정하면 무료로 DDNS를 사용할 수 있습니다.
(자체 DDNS를 지원하는 공유기가 많습니다. 확인해 보시고 공유기의 DDNS를 사용하시길 권장합니다.)

NextCloud에 FreeDNS를 설정하려면 도메인DDNS 해시 코드가 필요합니다.

■ FreeDNS 계정 생성

“Exteranl acccess” 탭에서 외부에서 접속하겠냐는 질문에 “Yes”를 선택합니다.

포트 포워딩은 [공유기 설정] 단계에서 했으므로 “I will do it manually”->”Continue”를 선택하고 넘어갑니다.

DDNS 안내 문구 마지막 줄의 “click here for FreeDNS” 문구를 클릭하면 FreeDNS 계정을 생성하는 웹페이지가 뜹니다.

FreeDNS 계정 생성 웹페이지

사용 중인 이메일과 나머지 정보를 입력하고 “Send activation email” 버튼을 클릭합니다.

입력한 이메일의 받은메일함에서 발송지가 FreeDNS인 이메일을 확인합니다.
아래 URL과 비슷한 링크를 눌러서 계정을 활성화합니다.

http://freedns.afratid.org/signip/activate.php?**************

계정이 활성화되면 서브도메인을 무료로 만들 수 있습니다.

■ 서브도메인 생성

“Add a subdomain” 문구를 클릭하여 서브도메인을 생성하는 웹페이지로 이동합니다.
(문구가 안 보이면 좌측 메뉴에서 “Subdomains”를 선택합니다.)

서브도메인 생성 웹페이지

“Add a new subdomain” 웹페이지에서 서브도메인명을 입력하고 도메인을 선택합니다.
나머지는 변경하지 않고 보안코드를 입력 후 “Save!” 버튼을 클릭합니다.
정상적으로 생성되면 입력한 내용과 일치하는 서브도메인 정보를 확인할 수 있습니다.

■ DDNS 해시 코드 확인

좌측 메뉴에서 “Dynamic DNS”를 선택합니다.

Dynamic DNS 웹페이지

웹페이지 하단 표에서 방금 생성한 서브도메인을 확인할 수 있습니다.
그 표에서 “Direct URL”을 선택하면 서브도메인과 연결된 IP가 갱신되고 변경 내용을 알려주는 문구가 표시됩니다.

https://freedns.afraid.org/dynamic/update.php?dk20DXFs2kkjf3DFlkjsfji230dkjdfkwovDFESF839s

웹브라우저의 주소란에 표시된 URL에서 무름표(‘?’) 이후의 문자열이 DDNS 해시 코드입니다.

생성한 서브도메인과 DDNS 해시 코드를 기록합니다.

■ FreeDNS 설정

NextCloudPi 구성 마법사 웹페이지에서 “FreeDNS” 버튼을 클릭합니다.
서브도메인과 DDNS 해시 코드를 입력하고 “Finish” 버튼을 클릭합니다.

█ NextCloud 첫 로그인

구성 설정 마법사 웹페이지의 “Finish” 탭에서 NextCloud 로고를 누르면 NextCloud 로그인 웹페이지로 이동합니다.

[NextCloudPi 웹 활성화] 단계에서 기록한 NextCloud 사용자(관리자) 계정 정보로 로그인합니다.

NextCloud 대시보드 웹페이지

로그인에 성공하면 대시보드를 볼 수 있습니다.
웹페이지의 URL을 보면 로컬 IP로 접속한 것을 확인할 수 있습니다.

웹브라우저에 FreeDNS로 생성한 도메인을 입력하여 도메인(예 anythingmaking.mooo.com)을 통한 접속이 되는지 확인합니다.
보안 경고가 뜨면 "고급"->"위험을 감수하고 계속 진행"을 선택하고 넘어갑니다.
로그인 후에 같은 대시보드가 보인다면 개인 온라인 저장소 만들기가 모두 완료된 것입니다.

█ 작업 후기

이번 만들기는 꽤 쉬웠습니다.
상세한 설치 안내 문서가 있었고 NextCloud 구성 마법사가 사용하기 편했습니다.
라즈베리 파이와 공유기는 자주 다루던 것이라 설치와 설정이 어렵지 않았습니다.

굳이 어려웠던 일을 언급하자면 이 글을 쓰는 것이 어려웠습니다.
마우스 클릭 한 번으로 지나가는 과정을 설명하기 위해 이미지를 캡처하고 상세한 글을 쓰는 것이 성가셨습니다.
보안을 위해 장비의 실제 정보를 무의미한 값으로 바꾸는 것도 귀찮았습니다.

글쓰기는 어려웠지만, 작업 과정을 정리하면서 몰랐던 기능을 알게 되어 NextCloud를 더욱 잘 활용할 수 있는 기회가 되었습니다.

█ 사용 후기

사용한 지 1년 정도 되었습니다.
구글 포토에 백업되던 스마트폰의 사진은 지금은 직접 만든 온라인 저장소에 자동으로 백업되고 있습니다.
여전히 구글 드라이브를 사용하고 있지만 중요한 자료는 직접 만든 온라인 저장소에 백업합니다.

구글의 것만큼 빠릿빠릿하지 못해서 라즈베리 파이를 최신 모델(라즈베리 파이 4 B)로 업그레이드하고 싶지만, 고장 없이 작동하고 있어서 한동안은 이대로 쓸 것 같습니다.

댓글

이 블로그의 인기 게시물

PC용 열기 배출기 만들기

키보드 키캡 만들기

3.5파이 3극 좌우변환 젠더 만들기

빔프로젝터 렌즈 덮개 원격 제어기

실외에 연등선 설치하기

헤드폰을 헤드셋으로 개조하기 2탄

헤드폰을 헤드셋으로 개조하기 1탄

두 가지 뚜껑 만들기

누전차단기 멀티탭 만들기