NAS 구축기 1부 — DS224+를 사고 나니 NAS는 시작에 불과했다

집에서 사용할 NAS를 하나 제대로 만들어보기로 했다.

처음 NAS를 알아볼 때만 해도 생각은 단순했다.

파일을 저장하고, 노트북과 파일을 동기화하고, 휴대폰 사진을 백업하고, 가끔 영화를 볼 수 있으면 충분하다고 생각했다.

그래서 Synology NAS를 선택했고, 2024년 1월 내가 사용하게 된 모델은 DS224+였다.

그리고 RAM은 기본 구성에서 조금 더 늘려 10GB로 구성했다.(시놀로지 메모리는 노트북 메모리와 동일)

처음에는 정말 단순하게 생각했다.

NAS를 설치하고, 하드디스크를 넣고, 네트워크에 연결하고, 파일을 넣으면 끝.

그런데 막상 사용하기 시작하니 생각보다 할 일이 많았다.

synology nas ds224+

NAS를 산 이유는 생각보다 단순했다

처음 NAS를 구축하면서 가장 먼저 필요했던 것은 파일 관리였다.

노트북에 있는 파일을 NAS에 보관하고 싶었다.

집에서 사용하는 컴퓨터가 바뀌더라도 파일은 NAS에 남아 있었으면 했다.

그래서 Synology Drive를 사용하기 시작했다.

노트북과 NAS를 연결해두고 필요한 파일을 동기화했다.

예전에는 파일을 USB에 복사하거나 컴퓨터의 특정 폴더에만 보관했다면,

NAS를 사용하면서부터는 파일을 어디에 보관하고 어떻게 동기화할지를 조금 더 체계적으로 생각하게 됐다.


휴대폰 사진도 NAS로 보내고 싶었다

파일 다음으로 필요했던 것은 사진이었다.

휴대폰으로 사진을 찍다 보면 어느 순간 저장공간이 부족해진다.

클라우드 서비스를 이용할 수도 있지만,

내가 직접 관리하는 저장공간에 사진을 보관하고 싶었다.

그래서 Synology Photos도 사용하기 시작했다.

휴대폰에서 찍은 사진을 NAS로 백업하도록 구성했다.

이렇게 하나씩 사용하다 보니 NAS가 단순한 저장장치가 아니라는 생각이 들기 시작했다.

파일을 저장하고, 사진을 백업하고, 컴퓨터와 동기화하고, 필요한 데이터를 여러 기기에서 사용하는 하나의 서버가 되어가고 있었다.


그런데 여기서 욕심이 생기기 시작했다

사람이 참 간사한 것 같다.

처음에는

“파일 저장만 되면 충분하다.”

라고 생각했다.

그런데 NAS에 Docker를 사용할 수 있다는 것을 알게 되면서 생각이 달라졌다.

파일만 저장하는 것이 아니라

내가 필요한 서비스를 직접 NAS에서 실행해보면 어떨까?

라는 생각이 들었다.

그때부터 NAS의 용도가 조금씩 바뀌기 시작했다.

단순한 저장장치에서

작은 서버로 변하기 시작한 것이다.


Docker를 알게 되면서 NAS가 재미있어졌다

NAS에 Docker를 올리고 컨테이너를 하나씩 실행해보기 시작했다.

처음에는 각각의 서비스가 별도의 프로그램이라고 생각했다.

그런데 Docker를 사용하면서

“서비스 하나를 컨테이너 하나로 분리해서 운영할 수 있구나.”

라는 것을 알게 됐다.

그때부터 NAS 안에 여러 서비스가 들어가기 시작했다.

WordPress도 올려보고,

MariaDB도 사용하고,

Vaultwarden도 구성하고,

Jellyfin도 실행했다.

나중에는 AdGuard Home, Uptime Kuma, Portainer, Watchtower 같은 서비스까지 추가됐다.

처음에는 하나였던 NAS가 어느 순간 여러 개의 작은 서버가 모여 있는 것처럼 변해갔다.


WordPress를 NAS에서 직접 운영해봤다

NAS에서 가장 재미있었던 작업 중 하나는 WordPress였다.

처음에는 단순히 블로그 하나를 운영해보자는 생각이었다.

하지만 WordPress를 Docker로 구성하려면 생각보다 여러 가지가 필요했다.

WordPress 컨테이너가 필요하고,

데이터베이스도 필요하고,

데이터가 사라지지 않도록 볼륨도 구성해야 했다.

그리고 나중에는 외부에서 접속하기 위한 도메인과 네트워크 구성까지 연결됐다.

처음에는

인터넷
   ↓
WordPress

정도로 생각했는데,

실제로는

인터넷
   ↓
공유기
   ↓
NAS
   ↓
Docker
   ├─ WordPress
   └─ MariaDB

처럼 여러 요소가 연결되어 있었다.

이때부터 NAS를 단순한 저장장치라고 생각하기 어려워졌다.


WordPress를 하나 더 만들게 됐다

그런데 블로그를 하나 운영하다 보니 또 하나 만들어보고 싶어졌다.

결국 WordPress를 하나 더 구성했다.

기존 WordPress와 새로운 WordPress를 같은 NAS에서 동시에 실행했다.

이때부터 조금 재미있는 문제가 생겼다.

같은 NAS 안에서 두 개의 웹서비스가 실행되고 있는데,

외부에서는 각각 다른 도메인으로 접속해야 했다.

그러려면 각각의 서비스를 구분해서 연결해야 했다.

결국

NAS
│
├─ WordPress
│    └─ 8443
│
└─ WordPress2
     └─ 8444

같은 형태로 구성하게 됐다.

이때부터 포트와 도메인, Reverse Proxy 같은 개념을 조금씩 이해하기 시작했다.


서비스가 늘어나면서 NAS 관리도 달라졌다

처음에는 컨테이너 몇 개만 있으면 충분할 줄 알았다.

그런데 어느 순간 NAS 안에 실행되고 있는 서비스가 꽤 많아졌다.

WordPress가 있고,

WordPress2가 있고,

MariaDB가 있고,

Vaultwarden이 있고,

Jellyfin이 있고,

AdGuard Home이 있고,

Portainer가 있고,

Uptime Kuma도 있다.

자동 업데이트를 위해 Watchtower도 사용했다.

각각의 서비스가 모두 다른 역할을 하고 있었다.

그러다 보니 단순히

“NAS가 켜져 있으면 된다.”

라는 생각으로는 관리하기 어려워졌다.

서비스가 정상적으로 실행되고 있는지,

어떤 포트를 사용하는지,

데이터는 어디에 저장되는지,

문제가 발생하면 어디부터 확인해야 하는지까지 생각해야 했다.


NAS가 점점 작은 서버가 되어갔다

돌이켜보면 처음 NAS를 구매했을 때와 지금의 NAS는 용도가 상당히 달라졌다.

처음에는

파일 저장장치

였다.

그다음에는

파일 동기화 서버

가 됐고,

사진 백업 서버가 됐고,

이후에는

웹서버와 각종 서비스를 실행하는 서버

가 됐다.

결국 지금의 NAS를 표현한다면

                    ┌─ Synology Drive
                    │
                    ├─ Synology Photos
                    │
                    ├─ WordPress
                    │
                    ├─ WordPress2
                    │
                    ├─ Vaultwarden
                    │
                    ├─ Jellyfin
                    │
                    ├─ AdGuard Home
                    │
                    ├─ Uptime Kuma
                    │
                    └─ 기타 Docker 서비스
                            │
                            ▼
                         DS224+

이런 모습에 가까워졌다.


그런데 서비스가 많아질수록 새로운 문제가 생겼다

서비스가 많아지니까 자연스럽게 이런 생각이 들었다.

“이 서비스를 외부에서도 사용할 수 있게 만들려면 어떻게 해야 하지?”

집 안에서만 사용할 때는 문제가 별로 없었다.

같은 공유기에 연결되어 있으면 NAS의 내부 IP로 접속하면 됐다.

하지만 밖에서 접속하려면 이야기가 달라졌다.

도메인이 필요했고,

DNS도 알아야 했고,

공유기의 포트포워딩도 알아야 했고,

Reverse Proxy도 알아야 했다.

그리고 무엇보다

NAS를 인터넷에 어떻게 연결할 것인가

라는 문제가 생겼다.

그때부터 NAS 구축이 단순한 설치 작업에서 네트워크 구성 작업으로 넘어가기 시작했다.


NAS를 구축하면서 가장 재미있었던 부분

지금 생각해보면 NAS 구축에서 가장 재미있었던 것은 NAS 자체가 아니었다.

하나의 서비스를 만들고 끝나는 것이 아니라,

하나를 만들면 또 다른 문제가 생기고,

그 문제를 해결하면 새로운 기능을 추가할 수 있다는 점이었다.

WordPress를 만들면 도메인이 필요했고,

도메인을 연결하면 DNS를 알아야 했고,

외부 접속을 하려면 네트워크 구성을 알아야 했다.

서비스가 늘어나면서 Reverse Proxy를 사용하게 됐고,

나중에는 Cloudflare Tunnel과 Tailscale까지 사용하게 됐다.

처음에는 전혀 생각하지 않았던 영역까지 공부하게 된 것이다.


결국 NAS는 ‘사는 것’보다 ‘운영하는 것’이 더 재미있었다

NAS를 구매하기 전에는 좋은 NAS를 사는 것이 중요하다고 생각했다.

하지만 실제로 사용해보니 NAS는 하드웨어를 구매하는 것으로 끝나는 장비가 아니었다.

어떤 서비스를 사용할지 결정하고,

데이터를 어디에 저장할지 정하고,

네트워크를 구성하고,

외부 접근 방법을 정하고,

문제가 생기면 원인을 찾아야 했다.

그리고 서비스가 하나씩 늘어날 때마다

기존에 구성해놓은 것과 충돌하지 않는지도 확인해야 했다.

그렇게 하나씩 만들어가다 보니 어느 순간 NAS가 꽤 그럴듯한 작은 서버가 되어 있었다.


처음에는 저장장치였지만 지금은 나만의 작은 서버가 됐다

DS224+를 처음 설치했을 때만 해도 이렇게까지 많은 것을 하게 될 줄은 몰랐다.

처음 목표는 파일 저장과 사진 백업 정도였다.

그런데 지금은 NAS 안에서 여러 서비스가 돌아가고 있다.

그리고 이제는 단순히

“NAS를 잘 사용하는 것”

보다

“이 NAS를 어떻게 운영하면 좋을까?”

라는 고민을 하게 됐다.

다음 글에서는 이 NAS에 Docker를 올리고, 실제로 여러 서비스를 하나씩 만들어가는 과정을 정리해보려고 한다.

NAS 하나를 샀을 뿐인데,

생각보다 공부해야 할 것이 많았다.

그리고 이상하게도 그 과정이 꽤 재미있었다.