DevOps
NAS란 무엇인가: 파일 저장소에서 개인 클라우드까지
NAS(Network Attached Storage)의 기본 개념부터 RAID, 파일 공유 프로토콜, 네트워크 구성, 백업과 보안까지 실제 구축 전에 알아두면 좋은 핵심 내용을 정리합니다.
NAS란 무엇인가: 파일 저장소에서 개인 클라우드까지
개발을 하다 보면 저장 공간은 생각보다 빠르게 부족해집니다.
프로젝트 파일과 Docker 볼륨, 데이터베이스 백업, 사진과 영상, 각종 문서까지 쌓이다 보면 어느 순간 외장 SSD 하나로는 관리가 번거로워집니다. 여러 컴퓨터를 사용한다면 문제는 조금 더 복잡해집니다. 파일이 어느 장치에 있는지 기억해야 하고, 필요한 파일을 매번 복사하는 일도 생깁니다.
이럴 때 선택할 수 있는 방법 중 하나가 NAS(Network Attached Storage) 입니다.
NAS를 단순히 "네트워크에 연결된 외장 하드"라고 생각할 수도 있지만, 최근의 NAS는 파일 저장뿐 아니라 백업 서버, 미디어 서버, 개인 클라우드, Docker 호스트 등 작은 서버에 가까운 역할까지 담당합니다.
이번 글에서는 NAS의 기본 구조부터 실제 구축 시 고려해야 할 RAID, 네트워크, 프로토콜, 백업과 보안까지 차근차근 살펴보겠습니다.
NAS란?
NAS는 Network Attached Storage, 즉 네트워크에 연결된 저장 장치입니다.
일반적인 외장 HDD나 SSD는 USB 또는 Thunderbolt 등을 통해 특정 컴퓨터에 직접 연결합니다.
Computer
│
USB
│
External HDD
반면 NAS는 공유기나 스위치 같은 네트워크 장비에 연결됩니다.
Laptop ─────┐
Desktop ────┼──── Router / Switch ──── NAS
Server ─────┤
Phone ──────┘
따라서 같은 네트워크에 있는 여러 장치가 하나의 저장 공간을 공유할 수 있습니다.
예를 들어 노트북에서 NAS에 프로젝트 파일을 저장한 뒤 데스크톱에서 같은 파일을 바로 열 수 있습니다. 스마트폰의 사진을 자동으로 NAS에 백업하거나 서버에서 생성한 데이터베이스 백업 파일을 NAS로 보내는 것도 가능합니다.
NAS의 핵심은 결국 스토리지를 특정 컴퓨터에서 분리하여 네트워크의 독립적인 리소스로 만드는 것입니다.
NAS 안에는 무엇이 들어 있을까?
NAS의 외형은 하드디스크 여러 개가 들어가는 상자처럼 보이지만 내부 구조는 일반적인 컴퓨터와 크게 다르지 않습니다.
보통 다음과 같은 구성 요소를 가지고 있습니다.
┌──────────────────────────┐
│ NAS │
│ │
│ CPU Memory │
│ │
│ Operating System │
│ │
│ HDD / SSD │
│ HDD / SSD │
│ HDD / SSD │
│ │
│ Network Interface │
└────────────┬─────────────┘
│
Ethernet
│
Router / Switch
CPU와 메모리가 있고 운영체제가 실행되며, HDD 또는 SSD를 저장 장치로 사용합니다.
이 때문에 NAS는 단순한 디스크 케이스와 달리 자체적으로 사용자 인증, 파일 공유, RAID 관리, 백업, 애플리케이션 실행 같은 작업을 처리할 수 있습니다.
일부 NAS에서는 Docker 컨테이너나 가상 머신을 실행할 수도 있습니다.
NAS에서 파일은 어떻게 공유될까?
NAS에 디스크를 장착했다고 해서 다른 컴퓨터가 자동으로 파일을 사용할 수 있는 것은 아닙니다.
클라이언트와 NAS가 파일을 주고받기 위한 프로토콜이 필요합니다.
대표적으로 SMB, NFS가 많이 사용됩니다.
SMB
SMB(Server Message Block)는 Windows 환경에서 특히 널리 사용되는 파일 공유 프로토콜입니다.
예를 들어 NAS에 다음과 같은 공유 폴더가 있다고 해보겠습니다.
\\nas\projects
Windows에서는 네트워크 드라이브로 연결하여 일반 디스크처럼 사용할 수 있습니다.
macOS와 Linux에서도 SMB를 지원하기 때문에 여러 운영체제가 함께 존재하는 환경에서 사용하기 편합니다.
NFS
NFS(Network File System)는 Linux와 Unix 계열 시스템에서 흔히 사용됩니다.
Linux 서버에서는 NAS의 디렉터리를 다음과 같이 로컬 디렉터리에 마운트할 수 있습니다.
mount -t nfs 192.168.0.10:/volume/projects /mnt/projects
이후 애플리케이션 입장에서는 /mnt/projects가 로컬 디렉터리처럼 보입니다.
Linux 서버 중심의 환경이라면 NFS가 자연스러운 선택이 되는 경우가 많습니다.
NAS와 RAID는 같은 것이 아니다
NAS를 알아보기 시작하면 거의 반드시 RAID라는 용어를 만나게 됩니다.
여기서 먼저 구분해야 할 점이 있습니다.
NAS는 네트워크 스토리지의 형태이고, RAID는 여러 디스크를 구성하는 방법입니다.
즉 서로 다른 개념입니다.
NAS에서 RAID를 많이 사용할 뿐입니다.
예를 들어 4개의 디스크가 있는 NAS를 생각해보겠습니다.
Disk 1 ─┐
Disk 2 ─┤
Disk 3 ─┼── RAID ── Storage Pool ── Shared Folder
Disk 4 ─┘
RAID 방식에 따라 저장 용량과 장애 대응 방식이 달라집니다.
RAID 0
데이터를 여러 디스크에 나누어 기록합니다.
성능과 전체 용량 활용에는 유리하지만 디스크 하나만 고장 나도 전체 데이터가 손실될 수 있습니다.
중요한 데이터를 보관하는 NAS에서는 신중하게 사용해야 합니다.
RAID 1
같은 데이터를 두 디스크에 복제합니다.
Disk A → DATA
Disk B → DATA
한쪽 디스크에 장애가 발생해도 다른 디스크에서 데이터를 읽을 수 있습니다.
구조가 단순하고 이해하기 쉬워 2-bay NAS에서 자주 사용됩니다.
RAID 5
최소 3개의 디스크를 사용하며 데이터와 패리티 정보를 분산하여 저장합니다.
디스크 하나가 고장 나더라도 데이터를 복구할 수 있고 RAID 1보다 전체 용량을 효율적으로 활용할 수 있다는 장점이 있습니다.
다만 장애가 발생한 디스크를 교체한 뒤 rebuild하는 과정에서 상당한 시간이 필요할 수 있습니다.
특히 대용량 HDD를 사용할수록 rebuild 시간과 그 과정에서의 추가 장애 가능성도 고려해야 합니다.
가장 중요한 오해: RAID는 백업이 아니다
NAS를 처음 구축할 때 가장 흔하게 생기는 오해 중 하나입니다.
RAID를 구성했으니 데이터가 안전하다.
RAID는 주로 디스크 장애에 대한 가용성을 높여주는 기술입니다.
사용자가 실수로 파일을 삭제한다면 RAID에 있는 파일도 삭제됩니다.
랜섬웨어가 공유 폴더의 파일을 암호화한다면 RAID가 이를 원래 상태로 되돌려주지는 않습니다. NAS 자체가 물리적으로 손상되거나 도난당하는 상황에서도 마찬가지입니다.
그래서 중요한 데이터라면 NAS 외부의 별도 백업이 필요합니다.
예를 들면 다음과 같은 구조를 생각할 수 있습니다.
Computer
│
▼
Primary NAS
│
├──── Snapshot
│
├──── Backup NAS
│
└──── Cloud / Off-site Backup
NAS를 구축하면서 RAID보다 먼저 생각해야 하는 것이 백업 전략이라고 해도 과하지 않습니다.
흔히 사용하는 기준이 3-2-1 백업 원칙입니다.
데이터를 3개 보관하고, 2종류의 서로 다른 저장 매체를 사용하며, 그중 1개는 물리적으로 다른 장소에 보관하는 방식입니다.
네트워크가 NAS의 성능을 결정한다
빠른 HDD와 SSD를 장착했다고 NAS가 항상 빠른 것은 아닙니다.
NAS는 이름 그대로 네트워크를 통해 데이터를 전달하기 때문에 네트워크 대역폭이 병목이 될 수 있습니다.
일반적인 1GbE 네트워크의 이론적인 최대 전송률을 단순 계산하면 다음과 같습니다.
1 Gbit/s ÷ 8
= 125 MB/s
프로토콜 오버헤드와 실제 환경을 고려하면 실효 속도는 이보다 낮습니다.
NAS에 여러 개의 고성능 HDD나 SSD를 구성해도 클라이언트와 NAS 사이가 1GbE라면 스토리지 자체의 성능을 모두 활용하지 못할 수 있습니다.
대용량 영상이나 데이터셋을 자주 다룬다면 2.5GbE, 5GbE, 10GbE 같은 더 빠른 네트워크를 고려할 수 있습니다.
하지만 NAS만 10GbE로 바꾼다고 끝나는 것은 아닙니다.
PC
│ 10GbE
▼
Switch
│ 10GbE
▼
NAS
PC의 NIC, 케이블, 스위치, NAS의 NIC까지 데이터가 지나가는 경로 전체가 필요한 속도를 지원해야 합니다.
그래서 NAS 성능을 계획할 때는 디스크보다 end-to-end network path를 먼저 확인하는 편이 좋습니다.
HDD와 SSD 중 무엇을 사용해야 할까?
NAS라고 반드시 HDD만 사용해야 하는 것은 아닙니다.
대용량 데이터 저장이 목적이라면 HDD의 비용 효율이 여전히 매력적입니다.
HDD
→ 대용량 파일
→ 사진 / 영상
→ 백업
→ 아카이브
반대로 작은 파일에 대한 빈번한 접근이나 높은 IOPS가 필요한 워크로드에서는 SSD가 유리할 수 있습니다.
SSD
→ VM
→ Container
→ Database
→ Build Cache
→ Frequently accessed data
일부 시스템에서는 HDD를 메인 스토리지로 사용하고 SSD를 캐시 또는 별도의 고성능 스토리지 풀로 구성하기도 합니다.
어떤 방식이 좋은지는 결국 NAS에서 실행할 workload에 따라 달라집니다.
NAS를 외부에서 사용하고 싶다면
집이나 사무실에 NAS를 구축하면 자연스럽게 외부에서도 파일에 접근하고 싶어집니다.
이때 주의해야 합니다.
NAS 관리 페이지나 SMB 포트를 인터넷에 그대로 노출하는 것은 좋은 접근 방법이 아닙니다.
가능하면 다음과 같은 구조를 사용하는 것이 좋습니다.
Remote Laptop
│
│ Encrypted VPN Tunnel
▼
VPN Gateway
│
▼
Internal Network
│
▼
NAS
WireGuard나 Tailscale 같은 VPN 계층을 이용하면 NAS 자체의 서비스를 인터넷에 직접 노출하지 않고 내부 네트워크에 접근할 수 있습니다.
여기에 강력한 비밀번호, MFA, 최소 권한 계정, 방화벽 정책, 정기적인 OS 및 패키지 업데이트를 함께 적용하는 것이 좋습니다.
NAS는 개인 파일이 모이는 장소인 만큼 스토리지 설계와 보안 설계를 따로 생각해서는 안 됩니다.
NAS는 작은 서버이기도 하다
최근 NAS가 재미있는 이유는 저장 공간 이상의 역할을 할 수 있기 때문입니다.
CPU와 메모리를 갖춘 NAS라면 환경에 따라 여러 서비스를 실행할 수 있습니다.
NAS
├── File Server
├── Backup Server
├── Git Repository
├── Docker
│ ├── Application
│ ├── Database
│ └── Monitoring
├── Media Server
└── Private Cloud
예를 들어 개발 환경에서는 Git 저장소나 CI artifact를 보관하거나 데이터베이스 백업 서버로 활용할 수 있습니다.
홈 서버 환경에서는 사진 관리, 미디어 서버, 개인 클라우드 등의 서비스를 함께 운영할 수도 있습니다.
다만 NAS의 가장 중요한 역할이 데이터 보관이라면 서비스들을 무작정 같은 장비에 올리는 것은 다시 생각해볼 필요가 있습니다.
애플리케이션 하나의 보안 취약점이나 과도한 CPU·메모리 사용이 스토리지의 안정성까지 영향을 줄 수 있기 때문입니다.
중요한 데이터가 있는 NAS일수록 storage와 compute의 책임을 어디까지 함께 둘 것인지 결정하는 것이 중요합니다.
NAS를 직접 구축할 수도 있다
NAS는 완제품을 구매하는 방법과 직접 서버를 구성하는 방법으로 크게 나눌 수 있습니다.
완제품 NAS는 하드웨어와 운영체제, 관리 UI가 하나의 생태계로 제공되어 비교적 쉽게 구축하고 관리할 수 있다는 장점이 있습니다.
반면 직접 구축하는 NAS는 일반 PC 또는 서버 하드웨어에 TrueNAS, Unraid, OpenMediaVault 같은 NAS용 운영체제를 설치하거나 Linux를 직접 구성하는 방식입니다.
직접 구축하면 하드웨어 선택과 확장성이 자유롭지만 그만큼 운영 책임도 커집니다.
특히 다음 항목들을 직접 고민해야 합니다.
Filesystem
RAID / ZFS topology
SMART monitoring
Snapshots
Backup
UPS
Network
Permissions
Security updates
Disaster recovery
그래서 "어떤 NAS가 가장 좋은가?"보다 먼저 해야 할 질문은 다음과 같습니다.
나는 NAS를 얼마나 직접 운영하고 싶은가?
구축하기 전에 먼저 정해야 할 것
NAS를 구매하거나 직접 조립하기 전에 저장 용량부터 계산하고 싶어집니다.
하지만 용량보다 먼저 NAS의 역할을 정의하는 것이 중요합니다.
단순 백업 서버인지, 여러 사용자가 함께 사용하는 파일 서버인지, 사진과 영상을 장기간 보관할 아카이브인지, Docker까지 실행할 홈 서버인지에 따라 필요한 하드웨어가 상당히 달라지기 때문입니다.
예를 들어 다음과 같은 체크리스트를 만들어볼 수 있습니다.
[ ] NAS의 주요 목적은 무엇인가?
[ ] 현재 필요한 실제 데이터 용량은 얼마인가?
[ ] 3~5년 뒤 예상 용량은 얼마인가?
[ ] 몇 명이 동시에 사용할 것인가?
[ ] 1GbE면 충분한가?
[ ] SSD가 필요한 workload가 있는가?
[ ] 디스크 장애를 어떻게 처리할 것인가?
[ ] NAS 자체는 어디에 백업할 것인가?
[ ] 외부에서 접근해야 하는가?
[ ] 정전 시 어떻게 종료할 것인가?
[ ] 장애 발생 시 알림을 받을 수 있는가?
[ ] NAS가 완전히 고장 나도 데이터를 복구할 수 있는가?
마지막 질문은 특히 중요합니다.
좋은 NAS 구성은 "고장 나지 않는 시스템"을 만드는 것이 아니라 고장이 발생해도 데이터와 서비스를 복구할 수 있는 시스템을 만드는 데 가깝습니다.
마치며
NAS를 처음 접하면 HDD 개수, RAID 레벨, CPU 성능 같은 하드웨어 스펙에 먼저 눈이 갑니다.
하지만 실제로 NAS를 운영해보면 더 중요한 것은 데이터의 흐름입니다.
Data
│
▼
Storage
│
├── RAID
├── Snapshot
├── Permission
├── Monitoring
│
▼
Backup
│
▼
Off-site Backup
어디에서 데이터가 생성되고, NAS에 어떻게 저장되며, 누가 접근할 수 있고, 장애가 발생했을 때 어디에서 복구할 것인지까지 하나의 흐름으로 설계해야 합니다.
결국 NAS의 핵심은 디스크 여러 개를 한곳에 모으는 데 있지 않습니다.
내 데이터를 내가 통제할 수 있는 하나의 storage infrastructure를 만드는 것.
NAS를 이해하는 가장 좋은 출발점은 아마 여기일 것입니다.
Tags