학습 목표

블록 · 객체 · 파일 — 어떤 계열이 필요한가

스토리지 선택 문항의 첫 갈림길은 성능이 아니라 접근 방식입니다. 애플리케이션이 스토리지를 어떻게 붙잡는지가 계열을 정하고, 계열이 정해진 다음에야 서비스와 성능 옵션을 고릅니다.

스토리지 세 계열의 접근 방식과 대표 서비스
계열 접근 방식 동시 접근 대표 서비스
블록 운영체제가 디스크로 인식하고 파일 시스템을 직접 올린다 원칙적으로 인스턴스 한 대 Amazon EBS, 인스턴스 스토어 (6장)
객체 HTTP API로 객체 단위 읽기·쓰기. 부분 수정 없음 제한 없음 Amazon S3 (8장)
파일 NFS · SMB 같은 파일 프로토콜로 마운트한다 여러 인스턴스가 동시에 Amazon EFS, Amazon FSx

시험에서 파일 스토리지를 지목하는 문장은 거의 정해져 있습니다. "애플리케이션 코드를 바꾸지 않고", "기존 파일 경로를 그대로 쓰면서", "여러 서버가 같은 디렉터리를 공유해야"가 그것입니다. 애플리케이션이 파일 시스템 호출을 그대로 쓰고 있다면 S3로 바꾸는 것은 코드 변경을 뜻하고, "코드 변경 없이"라는 한정어와 충돌합니다.

공유 스토리지 선택 매트릭스 — 프로토콜과 동시 접근 범위 세로축은 스토리지가 노출하는 인터페이스이고 가로축은 몇 대가 동시에 붙을 수 있는가입니다. 맨 아래 블록 인터페이스에는 Amazon EBS 가 있으며 기본적으로 인스턴스 한 대에 붙는 볼륨입니다. 그 위 NFS 행에는 Amazon EFS 가 있고 여러 가용 영역의 리눅스 인스턴스 수천 대가 같은 파일 시스템을 동시에 마운트할 수 있습니다. 그 위 SMB 행에는 FSx for Windows File Server 가 있으며 윈도우 파일 공유와 Active Directory 통합이 필요한 경우의 답입니다. 맨 위 고성능 병렬 행에는 FSx for Lustre 가 있고 대규모 계산 클러스터가 S3 데이터를 밀리초 미만 지연으로 읽어야 할 때 씁니다. 애플리케이션 코드를 고치지 않고 공유 스토리지를 붙여야 한다는 요구는 운영체제가 리눅스면 EFS 로, 윈도우면 FSx for Windows File Server 로 수렴합니다. 객체 API 로 다시 짜야 하는 S3 는 이 요구의 답이 아닙니다. 인터페이스와 동시 접근 범위로 자리가 정해집니다 인스턴스 한 대 여러 인스턴스 여러 AZ에서 동시에 동시 접근 → 고성능 병렬 POSIX · HPC FSx for Lustre S3 연동 · 계산 클러스터 SMB Windows FSx for Windows Active Directory 통합 NFS Linux Amazon EFS 여러 AZ · 자동 확장 블록 파일 시스템은 직접 Amazon EBS 기본은 인스턴스 하나 인터페이스 ↑ "코드를 바꾸지 않고 공유 스토리지" — 리눅스면 EFS, 윈도우면 FSx for Windows 객체 API 로 다시 짜야 하는 S3 는 이 요구의 답이 아닙니다
프로토콜과 동시 접근 범위를 축으로 배치한 공유 스토리지 선택 매트릭스 — Amazon EFS(NFS · 다중 가용 영역), FSx for Windows File Server(SMB), FSx for Lustre(고성능 컴퓨팅), Amazon EBS(단일 인스턴스)의 영역이 갈립니다

Amazon EFS — 리눅스용 NFS 공유 파일 시스템

Amazon EFS는 NFS 프로토콜로 마운트하는 완전 관리형 파일 시스템입니다. 여러 EC2 인스턴스, 컨테이너, Lambda 함수가 동시에 같은 파일 시스템을 마운트할 수 있고, 용량을 미리 정할 필요 없이 파일을 넣고 지우는 대로 자동으로 늘고 줄어듭니다.

접속 지점은 각 가용 영역의 마운트 타깃(mount target)입니다. 가용 영역마다 마운트 타깃을 만들어 두면 그 가용 영역의 인스턴스가 자기 가용 영역의 마운트 타깃으로 붙습니다. 마운트 타깃은 VPC 안의 네트워크 인터페이스이므로 보안 그룹으로 접근을 통제합니다.

성능 모드와 처리량 모드

Amazon EFS의 성능 모드와 처리량 모드
구분 값 특성
성능 모드 generalPurpose (기본값) 지연 시간이 낮다. AWS가 모든 파일 시스템에 이 모드를 권장한다
성능 모드 maxIO 총 처리량과 초당 작업 수를 더 높일 수 있으나 작업당 지연이 다소 높다. One Zone 파일 시스템에서는 지원되지 않는다
처리량 모드 bursting (기본값) 저장 용량에 따라 기준 처리량이 정해지고 버스트가 허용된다
처리량 모드 elastic 워크로드에 맞춰 처리량이 자동으로 오르내린다
처리량 모드 provisioned 필요한 처리량을 직접 지정한다. 유효 범위는 1–3,414 MiB/s이며 상한은 리전에 따라 다르다

성능 모드는 파일 시스템을 만든 뒤에 바꿀 수 없습니다. 처리량 모드는 시간 제약이 있지만 나중에 바꿀 수 있습니다. 판단이 서지 않으면 generalPurpose로 만드는 것이 안전합니다.

스토리지 클래스와 수명 주기

EFS도 접근 빈도에 따라 자동으로 계층을 옮깁니다. 수명 주기 관리 정책에서 며칠간 접근하지 않은 파일을 저빈도 계층이나 아카이브 계층으로 옮길지 지정합니다. 지정할 수 있는 값은 1일 · 7일 · 14일 · 30일 · 60일 · 90일 · 180일 · 270일 · 365일입니다.

가용 영역 범위도 두 가지입니다.

암호화는 생성 시 켤 수 있고, KMS 키를 지정하지 않으면 EFS 기본 KMS 키 (aws/elasticfilesystem)가 쓰입니다. 여러 애플리케이션이 한 파일 시스템의 서로 다른 디렉터리만 보게 하려면 액세스 포인트(access point)로 진입 디렉터리와 POSIX 사용자·그룹을 고정합니다.

create-efs.sh — 파일 시스템 생성과 마운트 타깃 구성 (리소스 ID와 가용 영역은 예시입니다)
FS_ID=$(aws efs create-file-system \
  --performance-mode generalPurpose \
  --throughput-mode elastic \
  --encrypted \
  --query 'FileSystemId' --output text)

# 가용 영역마다 마운트 타깃을 만들어야 그 가용 영역에서 마운트할 수 있습니다.
aws efs create-mount-target \
  --file-system-id "$FS_ID" \
  --subnet-id subnet-0123456789abcdef0 \
  --security-groups sg-0123456789abcdef0

# 인스턴스에서 마운트합니다.
sudo mount -t nfs4 -o nfsvers=4.1 \
  "$FS_ID".efs.ap-northeast-2.amazonaws.com:/ /mnt/shared

Amazon FSx 네 종류 — 워크로드가 선택 기준 SAA 빈출

Amazon FSx는 널리 쓰이는 파일 시스템을 그대로 관리형으로 제공합니다. API의 파일 시스템 유형 열거값은 WINDOWS · LUSTRE · ONTAP · OPENZFS 네 가지입니다. 네 종류는 성능 등급이 아니라 서로 다른 파일 시스템이므로, 선택 기준은 언제나 워크로드가 무엇을 요구하는가입니다.

Amazon FSx 네 종류의 대상 워크로드와 배포 유형
종류 이럴 때 고른다 배포 유형
FSx for Windows File Server Windows 애플리케이션이 SMB로 접근해야 하고 Active Directory 통합이 필요하다. 기존 Windows 파일 서버를 그대로 옮기는 경우 SINGLE_AZ_1(기본) · SINGLE_AZ_2 · MULTI_AZ_1. 다중 가용 영역은 가용 영역이 3개 이상인 리전에서만 만들 수 있다
FSx for Lustre 고성능 컴퓨팅, 기계 학습 학습, 미디어 처리처럼 대규모 병렬 처리량이 필요하다. Amazon S3와 연동해 데이터 리포지토리로 쓸 수 있다 SCRATCH_1 · SCRATCH_2(임시·단기 처리) / PERSISTENT_1 · PERSISTENT_2(장기 저장·처리량 중심)
FSx for NetApp ONTAP NFS · SMB · iSCSI를 한 파일 시스템에서 함께 써야 하거나, 온프레미스 ONTAP 환경의 기능과 운영 방식을 그대로 유지해야 한다 SINGLE_AZ_1 · SINGLE_AZ_2 · MULTI_AZ_1 · MULTI_AZ_2
FSx for OpenZFS NFS 기반 리눅스 워크로드를 ZFS 기능(스냅샷·복제)과 함께 옮긴다 SINGLE_AZ_1 · SINGLE_AZ_2 · SINGLE_AZ_HA_1 · SINGLE_AZ_HA_2 · MULTI_AZ_1

Lustre의 배포 유형 구분이 자주 출제됩니다. 스크래치(scratch)는 임시 스토리지와 단기 처리용이고, 지속형(persistent)은 장기 저장과 처리량 중심 워크로드용입니다. SCRATCH_2는 SCRATCH_1보다 전송 중 암호화와 더 높은 버스트 처리량을 제공하고, PERSISTENT_2는 지연에 민감하고 가장 높은 IOPS·처리량이 필요한 워크로드를 대상으로 합니다.

FSx for Lustre의 S3 연동은 시험에서 자주 쓰이는 조합입니다. S3 버킷을 데이터 리포지토리로 연결해 두면 객체를 파일처럼 읽고, 결과를 다시 S3로 내보낼 수 있습니다. "S3에 있는 대용량 데이터셋으로 고성능 분석을 돌려야 한다"가 그 신호입니다.

EFS와 FSx를 가르는 한 문장

요구사항에서 공유 스토리지 서비스로 가는 대응
요구사항의 신호 선택 근거
리눅스 서버 여러 대가 같은 디렉터리를 공유 Amazon EFS NFS, 다중 가용 영역, 용량 자동 확장
Windows 애플리케이션이 SMB 공유를 요구 FSx for Windows File Server SMB와 Active Directory 통합을 제공하는 유일한 선택
수천 개 코어가 동시에 읽는 병렬 파일 시스템 FSx for Lustre 고성능 컴퓨팅용 병렬 파일 시스템이며 S3와 연동된다
한 스토리지를 리눅스와 Windows가 함께 사용 FSx for NetApp ONTAP NFS · SMB · iSCSI 다중 프로토콜을 한 파일 시스템에서 제공
인스턴스 한 대만 붙는 저지연 디스크 Amazon EBS 공유가 필요 없으면 파일 시스템 서비스는 과잉이다
HTTP로 객체를 읽고 쓰며 무한히 확장 Amazon S3 파일 시스템 의미가 필요 없다면 객체 스토리지가 가장 저렴하고 확장된다

Storage Gateway — 온프레미스와 AWS의 경계

AWS Storage Gateway는 온프레미스 애플리케이션이 익숙한 프로토콜을 그대로 쓰면서 데이터는 AWS에 저장하게 하는 하이브리드 서비스입니다. 온프레미스에는 게이트웨이 어플라이언스(가상 머신 또는 하드웨어)를 두고, 그 뒤로 데이터가 AWS로 넘어갑니다. 자주 쓰는 데이터의 캐시가 온프레미스에 남는다는 점이 지연 시간 요구를 만족시키는 근거입니다.

Storage Gateway 세 종류에서 온프레미스와 AWS의 경계 가운데 세로선이 온프레미스와 AWS 의 경계입니다. 파일 게이트웨이에서는 서버들이 평소처럼 NFS 나 SMB 로 파일 공유를 마운트하고, 게이트웨이 어플라이언스가 그 파일을 S3 객체로 옮깁니다. 파일 하나가 객체 하나에 대응하므로 S3 쪽에서도 원래 파일 형태로 보입니다. 볼륨 게이트웨이에서는 서버가 iSCSI 블록 볼륨을 보고, 게이트웨이가 그 볼륨의 스냅샷을 AWS 에 EBS 스냅샷으로 저장합니다. 테이프 게이트웨이에서는 기존 백업 소프트웨어가 가상 테이프 라이브러리를 진짜 테이프 장비로 인식하고, 가상 테이프가 S3 와 Glacier 아카이브로 넘어갑니다. 세 종류 모두에서 자주 쓰는 데이터는 온프레미스 어플라이언스의 로컬 캐시에 남습니다. 그래서 대부분의 읽기가 로컬 디스크 속도로 처리되고, 클라우드로 옮기면서도 낮은 지연 시간 요구를 만족시킬 수 있습니다. 무엇이 남고 무엇이 넘어가는가 온프레미스 AWS 파일 게이트웨이 서버 NFS · SMB 마운트 게이트웨이 어플라이언스 로컬 캐시가 여기 남습니다 Amazon S3 객체 파일 하나가 객체 하나로 그대로 보입니다 볼륨 게이트웨이 서버 iSCSI 블록 볼륨 캐시 볼륨 · 저장 볼륨 로컬 캐시가 여기 남습니다 EBS 스냅샷 스냅샷에서 EBS 볼륨을 만들 수 있습니다 테이프 게이트웨이 백업 소프트웨어 기존 그대로 가상 테이프 라이브러리 테이프 장비로 인식됩니다 S3 · Glacier 아카이브 테이프 장비와 유지보수 계약이 사라집니다 세 종류 모두 자주 쓰는 데이터는 온프레미스 캐시에 남습니다 "클라우드로 옮기되 접근 지연은 지금과 같아야 한다"는 요구를 만족시키는 근거가 이 캐시입니다
Storage Gateway 세 종류에서 온프레미스에 남는 것과 AWS로 넘어가는 것의 경계 — 파일 게이트웨이는 파일 공유를 S3 객체로, 볼륨 게이트웨이는 iSCSI 볼륨을 스냅샷으로, 테이프 게이트웨이는 가상 테이프를 아카이브로 옮깁니다
Storage Gateway 세 종류의 프로토콜과 저장 위치
종류 온프레미스가 보는 인터페이스 AWS 쪽 저장 형태 대표 용도
파일 게이트웨이 (S3 File Gateway) NFS 또는 SMB 파일 공유 파일 하나가 S3 객체 하나로 저장된다 파일 서버의 데이터를 S3로 옮기되 애플리케이션은 그대로 두기
볼륨 게이트웨이 — 캐시형(cached) iSCSI 블록 볼륨 주 데이터가 AWS에 있고 자주 쓰는 부분만 온프레미스에 캐시 온프레미스 스토리지 용량을 늘리지 않고 데이터를 키우기
볼륨 게이트웨이 — 저장형(stored) iSCSI 블록 볼륨 주 데이터가 온프레미스에 있고 스냅샷이 AWS로 비동기 백업된다 전체 데이터에 낮은 지연으로 접근하면서 클라우드 백업 확보
테이프 게이트웨이 (VTL) 가상 테이프 라이브러리 가상 테이프가 아카이브 스토리지로 저장된다 기존 백업 소프트웨어를 그대로 쓰면서 물리 테이프 없애기

볼륨 게이트웨이의 두 유형을 뒤집어 외우는 실수가 흔합니다. "캐시형은 주 데이터가 클라우드에, 저장형은 주 데이터가 온프레미스에"가 구분의 전부입니다. 이름이 가리키는 것은 온프레미스 디스크의 역할입니다 — 캐시형에서는 캐시이고, 저장형에서는 원본 저장소입니다.

데이터 전송 — 대역폭과 기간이 판단 기준 SAA 빈출

전송 수단 문항은 서비스 이름을 외워서 푸는 것이 아니라 두 숫자를 대입해서 푸는 문제입니다. 옮길 데이터의 양과 쓸 수 있는 회선 대역폭을 나누면 걸리는 시간이 나오고, 그 시간이 허용 기간을 넘으면 회선으로 보내는 선택지는 전부 소거됩니다.

데이터 전송 수단 결정 — 데이터량과 가용 대역폭 가로축은 실제로 쓸 수 있는 회선 대역폭이고 세로축은 옮겨야 하는 데이터의 양입니다. 왼쪽 위, 즉 데이터는 많은데 회선이 좁은 영역이 Snow Family 의 자리입니다. 같은 양을 회선으로 보내면 몇 주에서 몇 달이 걸리는 구간이라 장비에 담아 물리적으로 보내는 편이 빠릅니다. 오른쪽 위, 데이터도 많고 회선도 충분한 영역이 AWS DataSync 의 자리입니다. 한 번 옮기고 끝나는 것이 아니라 온프레미스와 AWS 사이를 주기적으로 동기화해야 할 때 특히 여기가 답입니다. 아래쪽 넓은 띠는 AWS Transfer Family 입니다. 이쪽은 데이터량보다 프로토콜이 판단 기준으로, 거래처가 이미 SFTP 나 FTPS 로 파일을 주고받고 있어 그 방식을 바꿀 수 없을 때 씁니다. 판단은 언제나 같은 질문에서 시작합니다. 지금 회선으로 이 데이터를 다 보내는 데 며칠이 걸리는가입니다. 회선으로 며칠이 걸리는지가 첫 질문입니다 데이터량 많음 적음 Snow Family 장비에 담아 물리적으로 보냅니다 회선으로 몇 주 이상 걸리는 구간 현장에 회선이 아예 없는 경우도 포함 AWS DataSync 회선으로 빠르게 옮깁니다 반복 동기화가 필요하면 여기입니다 일정 예약 · 검증 · 증분 전송 AWS Transfer Family SFTP · FTPS · FTP · AS2 로 들어오는 파일을 S3 나 EFS 에 받습니다 판단 기준은 데이터량이 아니라 상대가 쓰는 프로토콜입니다 좁음 가용 대역폭 → 넓음 "지금 회선으로 다 보내는 데 몇 달" 이면 그 구간은 물리 전송의 영역입니다 한 번 옮기고 끝이 아니라 계속 맞춰야 한다면 DataSync 를 먼저 봅니다
데이터량과 가용 대역폭을 두 축으로 놓고 나눈 전송 수단 영역 — 회선으로 몇 달이 걸리는 구간이 물리 전송의 영역이고, 반복 동기화가 필요한 구간이 DataSync의 영역입니다
데이터 전송 수단의 성격과 선택 신호
수단 성격 이럴 때 고른다
AWS DataSync 에이전트가 온라인으로 대량 파일을 옮기고 검증한다. 일회성 이전과 반복 동기화 모두 지원한다 회선으로 감당할 수 있는 데이터량이고, NFS · SMB · HDFS · 객체 스토리지에서 S3 · EFS · FSx로 옮겨야 한다. 예약 실행과 대역폭 제한이 필요하다
AWS Transfer Family SFTP · FTPS · FTP · AS2 서버를 관리형으로 제공하고 저장소로 Amazon S3 또는 Amazon EFS를 쓴다 외부 파트너가 기존 전송 프로토콜을 계속 써야 한다. 프로토콜을 바꿀 수 없는 상대가 있을 때
AWS Snow Family 물리 장비에 데이터를 담아 배송한다 회선으로 보내면 몇 주에서 몇 달이 걸린다. 대역폭이 좁거나 회선이 없다. 아래 변경 이력을 함께 확인한다
AWS Direct Connect 온프레미스와 AWS를 잇는 전용 네트워크 연결이다 일회성 이전이 아니라 지속적으로 많은 데이터가 오가고, 인터넷을 거치지 않는 일관된 대역폭이 필요하다 (4장 VPC 연결과 하이브리드)

네 수단은 서로 대체재가 아닙니다. Direct Connect는 회선을 까는 일이고, DataSync는 그 회선 위로 데이터를 옮기는 일이며, Snow Family는 회선을 포기하는 선택이고, Transfer Family는 외부 사용자에게 창구를 여는 일입니다. 실제 설계에서는 Direct Connect 위에서 DataSync를 돌리는 조합도 흔합니다.

AWS DataSync

DataSync는 위치(location) 두 개와 작업(task) 하나로 구성됩니다. 지원하는 위치 유형에는 NFS · SMB · HDFS · 객체 스토리지 · Amazon S3 · Amazon EFS · FSx 네 종류가 있어서, 온프레미스에서 AWS로 옮기는 것뿐 아니라 AWS 스토리지 사이의 이동에도 씁니다. 작업에는 대역폭 제한과 실행 일정을 지정할 수 있어 업무 시간의 회선을 비워 둘 수 있습니다.

datasync-task.sh — 온프레미스 NFS 공유에서 S3로 옮기는 작업 생성 (ARN과 경로는 예시입니다)
SRC=$(aws datasync create-location-nfs \
  --server-hostname fileserver.example.internal \
  --subdirectory /export/shared \
  --on-prem-config AgentArns=arn:aws:datasync:ap-northeast-2:123456789012:agent/agent-0123456789abcdef0 \
  --query 'LocationArn' --output text)

DST=$(aws datasync create-location-s3 \
  --s3-bucket-arn arn:aws:s3:::example-migration-target \
  --s3-config BucketAccessRoleArn=arn:aws:iam::123456789012:role/datasync-s3-role \
  --query 'LocationArn' --output text)

aws datasync create-task \
  --source-location-arn "$SRC" \
  --destination-location-arn "$DST" \
  --name onprem-nfs-to-s3

AWS Transfer Family

Transfer Family는 파일 전송 프로토콜 서버를 관리형으로 제공합니다. 지원 프로토콜은 SFTP · FTPS · FTP · AS2이고, 저장소는 Amazon S3 또는 Amazon EFS를 고릅니다. 엔드포인트는 퍼블릭 또는 VPC 내부로 만들 수 있어서, 전송 창구를 인터넷에 노출하지 않는 구성도 가능합니다.

핵심은 상대방을 바꿀 수 없을 때 쓴다는 것입니다. 파트너가 수십 년째 SFTP로 파일을 보내고 있고 그 관행을 바꿀 수 없다면, S3 API로 바꾸라고 요구하는 대신 SFTP 창구를 열어 주고 도착지만 S3로 만드는 것이 답입니다.

AWS Snow Family

Snow Family는 물리 장비에 데이터를 담아 배송하는 오프라인 전송 수단입니다. 판단 기준은 언제나 같습니다 — 회선으로 보내면 허용 기간을 넘기는가입니다. 전송 시간은 데이터량을 가용 대역폭으로 나누어 계산하고, 그 결과가 몇 주에서 몇 달이라면 물리 전송이 유일한 현실적 선택입니다.

온프레미스 파일 서버를 옮기는 시나리오

실제 문항은 위 서비스를 하나씩 묻지 않고 조합해서 묻습니다. 전형적인 시나리오는 이렇습니다 — Windows 파일 서버 수십 테라바이트를 AWS로 옮기되, 사용자는 지금처럼 파일 공유에 접근해야 하고, 이전 기간에는 양쪽이 동기화되어야 한다.

온프레미스 파일 서버 이전의 단계별 선택
단계 질문 선택
1. 도착지 결정 애플리케이션이 어떤 프로토콜을 쓰는가 SMB이면 FSx for Windows File Server, NFS이면 Amazon EFS, 파일 의미가 필요 없으면 Amazon S3
2. 이전 수단 결정 회선으로 기간 안에 끝나는가 끝나면 AWS DataSync, 넘으면 물리 전송
3. 이전 기간 운영 이전이 끝날 때까지 양쪽을 함께 써야 하는가 DataSync 작업을 일정에 걸어 반복 동기화한다
4. 남는 온프레미스 처리 온프레미스에서 계속 접근해야 하는가 계속 필요하면 Storage Gateway로 연장하고, 아니면 전환 후 정리한다

여기서 자주 헷갈리는 지점은 2단계와 4단계를 같은 문제로 보는 것입니다. DataSync는 옮기는 도구이고 Storage Gateway는 남기는 도구입니다. "이전 후 온프레미스 애플리케이션이 계속 파일 공유를 쓴다"면 게이트웨이가 필요하고, "이전 후 온프레미스를 폐기한다"면 게이트웨이는 불필요한 구성 요소입니다.

흔한 오해

시험 포인트 정리

확인 문제

이 장의 핵심을 확인하는 10문항입니다. 키보드만으로 완주할 수 있습니다 — 숫자키 1~5로 선택지를 고르고 Enter로 제출합니다.

이어서 볼 곳

공식 문서 출처

이 장의 수치 · 기본값 · 동작은 모두 아래 문서에서 확인했습니다.