Dropbox와 유사한 서비스를 활용하면 여러 기기에서 파일 접근이 용이합니다. 하지만, 사용자가 더 많은 제어 권한을 원할 수도 있습니다. 단 30분 안에 사용자가 직접 관리하는 서버에서 개인 클라우드 동기화 서비스를 시작하고 운영할 수 있습니다. 이를 위한 훌륭한 솔루션은
Nextcloud 입니다.
Nextcloud란 무엇인가?
Nextcloud는 Dropbox, OneDrive, 또는 Google Drive와 마찬가지로 개인용 컴퓨터와 다른 기기 간에 파일을 동기화하는 오픈 소스 소프트웨어입니다. 또한, Nextcloud는 파일 동기화 기능을 넘어 다양한 기능을 제공하는 활발한 앱 생태계를 갖추고 있습니다. 캘린더 및 연락처 관리에 Nextcloud를 활용하거나 웹 기반 IMAP 이메일 클라이언트를 실행할 수도 있습니다. 또한, 본인과 서버 접근 권한이 있는 다른 사람들을 위해 전용 라이브 채팅 시스템을 구축하는 것도 가능합니다.
그러나, 세부 사항을 살펴보기 전에 한 가지 경고가 있습니다. Nextcloud를 사용하기 시작하면 서버 관리는 사용자의 책임입니다. 이는 Nextcloud 소프트웨어 관리뿐만 아니라 기반 서버 운영 체제를 최신 상태로 유지해야 함을 의미합니다. Nextcloud 서버는 일반적으로 안정적이지만, 문제가 발생하면 사용자가 직접 해결해야 합니다.
다행스럽게도, 다양한 블로그,
포럼, 그리고
도움말 페이지에서 문제 해결에 필요한 정보를 얻을 수 있습니다. 대부분의 문제는 다른 사용자들에게도 발생했던 것일 수 있으며, 이미 해결 방법이 공유되어 있을 가능성이 높습니다.
준비물
기본 Nextcloud 웹 인터페이스
Nextcloud를 시작하기 위해서는 다음 세 가지 항목이 필요합니다.
- Ubuntu 18.04를 실행하는 가상 서버
- 컴퓨터 바탕 화면의 Bash 셸
- 도메인 이름
이 예시에서는 다음과 같이 여러 사용자 이름과 비밀번호를 생성합니다.
- 서버의 루트 사용자 이름과 비밀번호
- 관리자 권한이 있는 일반 서버 사용자 이름과 비밀번호
- Nextcloud 사용자 이름과 비밀번호
본 튜토리얼에서는 DigitalOcean의 Ubuntu 18.04를 실행하는 가상 서버를 사용합니다. 하지만,
Linode 또는
AWS를 포함한 다른 서비스 제공 업체를 사용할 수도 있습니다. 어떤 서비스를 선택하든, 잠재적인 문제를 피하려면 Ubuntu 18.04 (현재 장기 지원 릴리스)를 실행하는 것이 중요합니다.
모든 가상 서버 제공 업체는 다소 다르지만, 몇 번의 마우스 클릭만으로 서버를 시작하고 실행할 수 있도록 설계되었습니다. 시작 단계에서는 Nextcloud에 익숙해질 때까지 기본 수준 서버를 평가판으로 사용하는 것이 좋습니다.
DigitalOcean의 $5 드롭렛은 1GB RAM, 1개의 CPU 코어, 1TB 데이터 전송 및 25GB 스토리지를 제공합니다. Linode 또한 동일한 가격으로 비슷한 VPS를 제공합니다.
SSH 키에 익숙하지 않다면, 우선 공급 업체에 암호 기반 루트 로그인 정보를 요청하십시오. 서버가 실행되고 명령줄에 익숙해진 후, 보다 안전한 로그인을 위해 SSH 키를 추가하는 방법은 해당 제공 업체의 도움말 페이지를 참조할 수 있습니다.
컴퓨터에서 Windows 10을 사용하고 있다면, Linux용 Windows 하위 시스템을 설치하고 Linux 유틸리티를 포함한 Bash 셸을 확보해야 합니다. Linux 또는 macOS를 사용하는 경우, 터미널 프로그램만 있으면 됩니다. 대부분의 Bash 터미널에는 SSH가 설치되어 있지만, 그렇지 않은 경우 터미널 창에 sudo apt-get install ssh
를 입력하여 설치하십시오.
도메인 이름을 구입할 때, .COM 주소일 필요는 없습니다. 사용자 본인과 친한 친구, 가족만 사용할 것이기 때문입니다. 예를 들어, .XYZ 도메인 이름을 1년에 단돈 1달러에 구할 수 있으며, 충분히 잘 작동합니다.
서버 준비
서버가 제대로 작동하도록 하려면, 관리자 권한을 가진 일반 사용자 계정을 설정해야 합니다. 초기 구성 후에는 전능한 루트 사용자로 로그인하는 것은 바람직하지 않습니다.
지금쯤이면, 서버 제공 업체로부터 IP 주소와 루트 암호를 받아야 합니다. IP 주소는 서버에 연결하는 데 사용되며, 암호는 사용자를 인증하는 데 사용됩니다.
시작하려면, 다음 명령을 입력하고(X를 서버의 IP 주소로 대체) Enter 키를 누르십시오.
SSH [email protected]
예를 들어, IP 주소가 165.22.81.172라면, 명령은 SSH [email protected]
와 같습니다. 모든 것이 제대로 진행되면 원격 서버 (Nextcloud가 설치될 위치)에서 암호를 묻습니다. 서버 공급 업체가 제공한 암호를 입력하십시오.
다음으로, 루트에 대한 새 암호를 설정하라는 메시지가 표시됩니다. 원하는 암호를 선택하고, 잊어버리지 않도록 주의하십시오!
이제 원격 서버 내부에 있으며 작업을 시작할 차례입니다. 이 문서에 나오는 각 명령을 실행하려면 명령을 입력한 후 Enter 키를 누르십시오.
먼저, 다음 명령을 입력하여 서버에 새 사용자를 추가합니다.
adduser 이안
“ian”을 사용하려는 사용자 이름으로 바꾸십시오. 이 명령을 실행하면 새 사용자에게 암호를 제공하라는 메시지가 표시됩니다. 암호를 설정한 후 서버가 요청하는 나머지 정보는 선택 사항입니다. 제공하지 않으려면 Enter 키를 계속 누르십시오.
다음으로 새 사용자에게 관리 권한을 부여하기 위해 다음을 입력하십시오.
usermod -aG sudo ian
다시, “ian”을 이전에 선택한 사용자 이름으로 변경하십시오.
이제 두 번째 터미널 창을 열고 다음 명령을 입력하여 새 사용자 계정이 제대로 작동하는지 확인하십시오.
SSH [email protected]
다시 위의 내용을 사용자 이름과 서버의 IP 주소로 대체하십시오. 메시지가 표시되면, 이 사용자 계정에 대해 만든 암호를 입력하십시오. 작동한다면, 루트로 로그인한 터미널 창으로 돌아가십시오.
이제, Ubuntu 방화벽이 제대로 작동하는지 확인하기 위해 다음을 입력합니다.
ufw allow OpenSSH
ufw enable
ufw status
마지막 상태 명령은 방화벽이 SSH를 차단하지 않음을 확인하는 다음 이미지와 유사한 내용을 출력해야 합니다.
“80, 443/tcp” 부분은 아직 보이지 않겠지만, 나중에 설명하겠습니다. 이제, 루트 창을 닫고 일반 사용자와 함께 두 번째 터미널 창으로 돌아가십시오.
Nextcloud 설치
과거에는 Nextcloud 소프트웨어, PHP, 웹 서버 소프트웨어 및 데이터베이스를 모두 개별적으로 구성하고 설치해야 했습니다.
하지만 이제는 단일 명령으로 모든 것을 처리하는 공식 Snap 패키지를 사용하는 것이 훨씬 편리합니다. 데이터베이스를 관리하거나 Apache 또는 Nginx가 사이트를 제공하는지 걱정할 필요가 없습니다.
Snap 패키지가 설치하는 내용을 정확히 확인하고 싶다면 (스포일러: LAMP 스택에 Redis가 추가된 것입니다), 다음 링크에서 확인할 수 있습니다:
GitHub의 Nextcloud 스냅 저장소
다음 명령을 입력하십시오.
sudo snap install nextcloud
시작 부분의 “sudo”는 일반 사용자 계정을 승격시켜 일시적인 관리 권한을 부여합니다. 이 작업을 수행하려면 암호를 입력해야 합니다. 모든 것이 제대로 진행된다면, 1~2분 안에 Nextcloud가 설치되고 거의 모든 준비가 완료됩니다.
다음으로, 다음 명령을 입력하여 사이트에 로그인할 수 있는 새 Nextcloud 사용자 계정을 생성하십시오.
sudo nextcloud.manual-install ianpaul correctHorseBatteryStaple
“ianpaul” 대신 Nextcloud에 로그인하는 데 사용할 사용자 이름을 입력하십시오. “correctHorseBatteryStaple” 부분이 비밀번호입니다. 이 비밀번호는 사용하지 마십시오. 매우 유명한
XKCD 만화에서 영감을 얻었으며, 단지 예시일 뿐입니다.
도메인 이름 처리
더욱 편리하게 사용하기 위해, IP 주소를 사용하여 서버에 접근하지 않고 도메인 이름을 사용하는 것이 좋습니다. 다시 한번 말하지만, 1년에 약 1달러 정도면 충분합니다. 이 예에서는 wdzwdzTest.xyz를 사용하고 있습니다.
도메인을 확보했다면, 도메인 등록 대행자(도메인을 구입한 곳)에서 DNS 설정을 관리하여 서버 공급 업체를 가리키도록 해야 합니다. 예를 들어 DigitalOcean을 선택했다면, 해당 설정은 ns1.digitalocean.com, ns2.digitalocean.com 및 ns3.digitalocean.com이 될 것입니다.
그런 다음 서버 제공 업체(예: DigitalOcean, Linode 또는 선택한 모든 곳)로 이동하여 계정에 새 도메인을 추가합니다. IP 주소를 가리키는 A 레코드, “www”를 항상 사용하지 않으려면 CNAME 레코드, 그리고 자동으로 추가되지 않은 경우 NS 레코드를 추가해야 합니다.
다음 이미지는 DigitalOcean의 예시를 보여줍니다.
기술적으로 도메인을 사용할 수 있게 되는 데 최대 24시간이 걸릴 수 있지만, 일반적으로 몇 분 안에 작동하기 시작합니다.
Nextcloud로 돌아가기
도메인이 설정되면, 터미널에서 Nextcloud를 마무리하는 단계로 돌아갈 수 있습니다. 일반 사용자 계정으로 서버에서 로그아웃한 경우(예: ssh [email protected] ) 다시 로그인하십시오.
이제 다음 명령을 입력하여 새 도메인을 Nextcloud에 추가하십시오.
sudo nextcloud.occ config:system:trusted_domains 1 set --value=wdzwdztest.xyz
“–value=” 뒤에 있는 wdzwdztest.xyz 대신 실제 도메인 이름을 입력하십시오.
다음으로, 새 도메인이 제대로 추가되었는지 확인하기 위해 다음 명령을 입력하십시오.
sudo nextcloud.occ config:system:trusted_domains get
터미널은 다음 이미지와 유사한 결과를 출력해야 합니다.
다음으로, 방화벽을 통해 원하는 포트를 사용할 수 있도록 다음을 입력하십시오.
sudo ufw allow 80,443/tcp
포트 80은 암호화되지 않은 HTTP 트래픽에 사용되는 반면, 443은 SSL/TLS에 사용됩니다.
다음으로, Let’s Encrypt의 무료 SSL/TLS 인증서가 필요하므로 다음 명령을 입력합니다.
sudo nextcloud.enable-https lets-encrypt
Let’s Encrypt 생성기가 실행되기 시작하면 이메일 주소와 Nextcloud 도메인 이름을 요청합니다. 지침을 따르면 보안 웹 사이트 인증서를 즉시 얻을 수 있습니다. Let’s Encrypt가 제대로 작동했다면, 설정을 테스트할 시간입니다.
새 도메인(예: wdzwdztest.xyz)으로 이동하십시오. 주소 표시줄에 자물쇠 아이콘과 함께 Nextcloud 로그인 페이지(아래 그림 참조)가 표시되어야 합니다.
로그인 페이지가 보인다면 모든 것이 완료된 것입니다. 그렇지 않다면 몇 시간 기다렸다가 다시 시도하십시오. 즉시 문제를 해결하려면 서버가 IP 주소를 통해 응답하는지 확인할 수 있습니다.
이를 위해서는 다음 명령을 입력하여 IP 주소를 신뢰할 수 있는 도메인에 추가해야 합니다.
sudo nextcloud.occ config:system:trusted_domains 2 set --value=165.22.81.172
“trusted_domains 1″이 아닌 “trusted_domains 2″를 사용했습니다. “trusted_domains 1″만 반복하면 신뢰할 수 있는 도메인 목록에 있는 실제 도메인 이름을 덮어쓰게 되어 더 이상 사용할 수 없게 됩니다.
완료되면 브라우저의 주소 표시줄에 IP 주소를 입력하면 위와 같은 로그인 페이지가 표시됩니다. 그렇지 않다면, 설치에 문제가 있을 수 있습니다.
IP 주소에 대한 SSL 인증서가 없으므로 안전하게 로그인할 수 없습니다. 따라서 서버가 작동하는지 확인한 후 신뢰할 수 있는 도메인 목록에서 IP 주소를 제거하는 것이 좋습니다. 다음 명령을 입력하여 제거할 수 있습니다.
sudo nextcloud.occ config:system:trusted_domains 2 delete
성능 개선
Nextcloud 서버의 성능이 만족스럽지 않다면 메모리 제한을 늘려야 할 수 있습니다. 기본적으로 128MB로 설정되어 있습니다. 512MB로 늘리려면 터미널을 사용하여 서버에 로그인하고 다음 명령을 입력하십시오.
sudo snap set nextcloud php.memory-limit=512M
이제 Nextcloud가 실행 중이므로, 로그인하여 사용 가능한 앱을 탐색하고, 다른 사람과 파일을 공유하고, 멀티 디바이스 동기화를 위해 데스크톱 및 모바일 장치에 Nextcloud를 설치할 수 있습니다. Nextcloud는
데스크톱 동기화 도구 및 모바일 앱을 Windows, Mac, Linux, iPhone, iPad 및 Android용으로 제공합니다.
개인 클라우드 저장소에 오신 것을 환영합니다!