사내에서 대량의 파일을 효율적으로 관리하는 것은 생산성과 보안에 큰 영향을 미칩니다. 저희 회사도 처음에는 Google 드라이브를 활용해 파일을 관리했지만, 저장 용량 증가와 파일 유형 다양화로 인해 기존 방식에 한계를 느껴 회사 내부 서버 기반으로 파일을 저장하고 관리할 수 있는 NAS(Network Attached Storage)를 검토하게 되었습니다. 이번 글에서는 Google 드라이브로 시작해 NAS를 구축하기까지의 여정과 방법을 살펴보겠습니다.
Google 드라이브, 네이버 MYBOX 등 클라우드 드라이브 서비스는 접근성과 편리함이 뛰어납니다. 특히 구독형 모델로 2TB 기준 월 1만 원 초반대로 이용 가능해 단기적인 파일 저장용으로는 매우 경제적입니다. 또한, 별도의 초기 설치 과정 없이 바로 사용할 수 있는 점도 큰 장점입니다.
하지만 회사에서 장기적인 관점에서 봤을 때에는 NAS가 더 적합하다고 판단했습니다. NAS는 초기 비용이 발생하더라도, 장기적으로 보면 지속적인 구독료를 지불하는 드라이브 서비스보다 비용적으로 효율적일 수 있습니다. 더불어, NAS는 데이터를 회사 내부에서 직접 관리할 수 있어 입맞에 맞게 설정이 가능하다는 장점도 있습니다.
NAS를 구축하기로 결정했다면, 이제 어떤 솔루션을 사용할지 고민해야 합니다. 대표적으로 시놀로지(Synology)와 넥스트클라우드(NextCloud)가 있습니다.
시놀로지(Synology)는 사용하기 쉽고 직관적인 인터페이스를 자랑하는 완성형 NAS 솔루션으로, 하드웨어와 소프트웨어가 결합된 형태로 제공됩니다. 시놀로지는 별도의 복잡한 설정 없이 바로 사용할 수 있는 DSM(DiskStation Manager)이라는 운영체제를 통해 누구나 쉽게 NAS를 구축하고 관리할 수 있습니다. 동영상 스트리밍, 파일 동기화, 데이터 백업 등 다양한 앱과 기능을 제공하여 단순한 파일 저장소 이상의 활용성을 자랑합니다. 또한, 상용 제품으로 출시된 만큼 안정성이 높고, 필요 시 Synology의 공식 고객 지원 서비스를 받을 수 있다는 점도 강점으로 꼽힙니다.
그러나 시놀로지의 초기 구매 비용은 다소 부담스러울 수 있습니다. 특히 중소기업이나 개인 사용자에게는 하드웨어 비용이 큰 진입장벽으로 작용할 수 있습니다. 또한, 상용 소프트웨어 기반으로 설계되어 있어 사용자가 직접 시스템을 커스터마이징하거나 제어하는 데 한계가 있을 수 있습니다. 예를 들어, 특정 고급 기능을 추가적으로 사용하려면 별도의 라이선스를 구매해야 하는 경우도 있습니다. 이러한 점에서 시놀로지는 간편함과 안정성을 중시하는 사용자에게 적합하지만, 비용과 유연성을 중요하게 생각하는 사용자에게는 아쉬운 선택이 될 수 있습니다.
넥스트클라우드(NextCloud)는 오픈소스 기반으로 제공되는 NAS 솔루션으로, 사용자가 자신의 필요에 맞게 시스템을 구축하고 운영할 수 있는 높은 자유도를 제공합니다. 넥스트클라우드는 소프트웨어 라이선스 비용이 없으며, 기존 하드웨어를 활용해 저비용으로 NAS를 운영할 수 있다는 점이 큰 매력입니다. 특히, 사용자가 원하는 대로 기능을 추가하거나 설정을 변경할 수 있는 커스터마이징 옵션이 풍부하며, 데이터가 외부 클라우드 서비스가 아닌 사용자 자체 서버에 저장되기 때문에 보안과 프라이버시 측면에서도 강점이 있습니다. 이로 인해 넥스트클라우드는 개발자나 IT 전문가들에게 이상적인 선택지가 됩니다.
다만, 넥스트클라우드는 초기 설치와 설정 과정에서 높은 기술적인 이해를 요구합니다. 서버 환경을 다룬 경험이 없거나 기술적인 지식이 부족한 사용자에게는 설치 과정이 다소 복잡하고 부담스러울 수 있습니다. 또한, 상용 제품이 아닌 오픈소스 소프트웨어로 제공되기 때문에 공식적인 고객 지원이 제한적입니다. 문제가 발생했을 때 커뮤니티 포럼이나 문서를 통해 스스로 해결해야 하는 경우가 많습니다. 초기 학습 곡선이 높고, 설정에 시간이 소요된다는 점은 단점으로 작용할 수 있습니다. 넥스트클라우드는 비용 절감과 유연성을 중시하는 사용자에게 적합하지만, 설정 과정에서의 어려움을 감수해야 한다는 점을 염두에 두어야 합니다.
🔑 요약: 사용의 간편함을 중시한다면 시놀로지, 자유로운 커스터마이징과 비용 절감을 원한다면 넥스트클라우드가 적합합니다.
NAS 구축의 핵심은 적합한 하드웨어를 선택하는 것입니다.
NAS를 여러 사용자가 동시에 이용하거나 고해상도 동영상 스트리밍을 할 계획이라면 고성능 CPU와 충분한 메모리가 필요합니다. 반대로, 단순히 파일 저장 및 관리가 주된 목적이라면 비교적 저가의 하드웨어를 사용해도 문제되지 않습니다. 자사에서는 4코어 cpu와 8GB 램으로 구성했습니다.
저장 용량과 데이터 복구 계획에 따라 적절한 하드 드라이브를 선택해야 합니다.
자사에서는 4TB의 하드디스크 2개를 RAID하여 각각 메인 스토리지와 백업용 스토리지로 구성해 사용중이며, 대용량 데이터를 저장하거나 디스크의 속도를 개선 등 원하는 구성 방식에 따라 하드디스크 개수, RAID 방식을 유동적으로 선택할 수 있습니다.
💡들어가기 앞서: NextCloud를 설치하기 위해서는 Linux 환경, Docker 및 네트워크에 대한 기초 지식이 요구됩니다.
먼저, NextCloud를 Docker로 구성하기 위해 Docker 패키지와 docker compose를 설치합니다.
# docker 패키지 설치
sudo apt update
sudo apt install docker.io -y
# docker compose 설치 및 권한 부여
sudo mkdir -p /usr/lib/docker/cli-plugins
sudo curl -SL <https://github.com/docker/compose/releases/download/v2.31.0/docker-compose-linux-x86_64> -o /usr/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/lib/docker/cli-plugins/docker-compose
docker container에 사용될 .env 파일을 생성합니다.
MYSQL_ROOT_PASSWORD={powerful_password}
MYSQL_PASSWORD={powerful_password}
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_HOST=mysql
REDIS_HOST=redis
NEXTCLOUD_TRUSTED_DOMAINS={my_domain}
VIRTUAL_HOST={my_domain}
docker-compose.yml 파일을 생성합니다.
version: '3.8'
services:
mysql:
container_name: mysql
image: mysql:8.3.0
volumes:
- /etc/localtime:/etc/localtime:ro
- ./mysql:/var/lib/mysql
env_file:
- .env
restart: always
redis:
container_name: redis
image: redis
restart: always
nextcloud:
container_name: nextcloud
image: nextcloud
volumes:
- /etc/localtime:/etc/localtime:ro
- ./volume/nextcloud:/var/www/html
ports:
- "80:80"
- "443:443"
env_file:
- .env
depends_on:
- redis
- mysql
restart: always
이후 docker compose up -d
명령어를 통해 컨테이너를 실행합니다.
사내 NAS에 외부에서도 접속하려면 공유기 포트포워딩을 설정하고 DNS를 연결해 줍니다.
NAS가 설치된 네트워크 구성에 따라 해당 설정이 필요하지 않을 수 있습니다.
이후 외부 접속 보안을 강화하기 위해 도메인과 SSL 인증을 설정하는 것이 좋습니다.
공유기 설정에 들어가 외부에서 80 포트로 들어오는 요청을 NAS의 80 포트로 보내줍니다.
공유기 모델에 따라 설정 방법이 다르기 때문에 각 공유기 모델에 맞는 설정 방법을 찾아 설정합니다.
DDNS 서비스와 연동할 도메인을 구매하면 접속 주소를 간소화할 수 있습니다. 도메인 등록은 가비아, 후이즈와 같은 국내 서비스나 AWS Route 53 , Cloudflare 등의 해외 서비스에서 가능합니다.
cloudflare를 사용할 경우 https 프록시 설정을 통해 도메인에 대한 https 접속을 설정할 수 있습니다. 하지만 cloudflare의 설정은 사용중인 플랜에 따라 업로드 용량 제한이 발생하기 때문에 nas 서버에서 사용하는 것은 권장되지 않습니다.
간단하게는 nextcloud 컨테이너 내부에서 sudo nextcloud.enable-https lets-encrypt
명령어를 사용해 https를 구성하거나 nginx 컨테이너를 별도로 생성해 https를 설정할 수도 있습니다.
🚨 경고: 도메인을 설정하지 않고 HTTP로만 접속하면 보안에 취약해 집니다.
NAS는 기본적으로 사용자 로그인을 통해 사용자를 인증합니다. 하지만 아무리 계정 인증이 있다고 하더라도, NAS가 외부에 노출되어 있다면 해킹의 위협에 노출될 가능성이 존재합니다.
만약 다루는 데이터가 보안 상 중요도가 높은 데이터들이라면 vpn을 통해 이중 보안을 구성하는 것을 권장드립니다.
vpn에 대한 자세한 내용은 VPN으로 내부망 구축하기을 참조해 주세요
사내 NAS는 클라우드 드라이브와 비교해 초기 비용은 부담스러울 수 있지만, 장기적인 저장 비용 절감과 데이터 보안 측면에서 NAS는 좋은 선택입니다. 자신의 상황을 고려해 드라이브, NAS 등 다양한 선택지를 비교하고 적합한 솔루션을 선택해 보세요!
A1. 네! 시놀로지와 같은 직관적인 솔루션은 개인 사용자를 위한 모델도 많이 제공하며, 사진, 영상, 문서 등을 안전하게 저장할 수 있습니다.
A2. 물론입니다. NAS에 저장한 데이터를 Google 드라이브나 Dropbox에 자동 백업하는 설정도 가능합니다.
A3. 포트포워딩과 HTTPS 설정, 강력한 비밀번호를 사용하면 안전하게 외부에서 NAS에 접속할 수 있습니다.
A4. RAID는 여러 개의 하드 디스크를 묶어 데이터 손실을 방지하거나 성능을 높이는 기술입니다. RAID 1(미러링)이 가장 일반적입니다.
A5. 시놀로지 같은 완성형 제품은 설정이 매우 간단하며, 넥스트클라우드는 IT 지식을 요구합니다.
상담만 받아보셔도 좋습니다 긱다이브의 상담으로 업체 비교를 시작해보세요