← 목록으로

AWS의 신규 기능, S3 Files 탐색하기

·6 min read#AWS#S3

대략 2달 전이던가? 늘 그렇듯 하릴없이 인터넷을 서칭하는 중이었다. 그때 AWS에 썩 흥미로운 신기능이 출시됐다는 글을 봤다. S3 Files라는 기능이었다. 나는 산만히 화면을 터치하던 손가락을 잠시 멈춰세웠다. S3와 파일의 조합이라. 직관적으로 흥미로운 조합이었다. S3 버킷을 파일처럼 쓸 수 있다면, S3의 내구성과 비용효율성을 파일 시스템 차원에서 살릴 수 있다면 그만한 기능이 없지 않을까?

그런 연유에서 AWS의 S3 Files 소개글을 훑어봤다. 일단 직관적으로 생각해봤을 때 최대 장점은 두말할 것 없이 EFS 대비 훨씬 가격이 저렴하다는 거다. EFS와 기능적으로 유사한데, S3 버킷을 기반으로 하는지라 어지간해서는 구태여 EFS를 이용할 이유가 없다. 나머지 장점들은 사실 EFS와 S3를 일원화한다고 가정했을 때 자연스레 따라나오는 강점들이다.

  • IAM으로 권한 제어 가능 (귀찮게 EFS와 S3 IAM 권한 제어를 나눠 관리할 필요 없음)
  • CloudWatch/CloudTrail로 모니터링 가능
  • 데이터 복제 없이 여러 컴퓨트 클러스터에서 동시 공유 접근 가능

등등. 사실 이를 통해 ML 워크로드에서 데이터 사일로를 제거할 수 있다는데, 이건 잘 모르겠다. S3 -> dvc pull -> 로컬로 데이터 로드 -> 학습 이 프로세스 S3에서 다이렉트 스트리밍 -> 학습 이 프로세스로 단축시킬 수 있다는 얘기인 것 같음. 이름 그대로 DVC는 데이터 버전을 전제한다. 반대로 별도 절차 없이 S3 Files로 DVC를 스킵하면? 버저닝이 없어진다. 히스토리 추적 차원에서든, 롤백 차원에서든 학습 데이터에 버전이 없는 건 말이 되지 않는다. 그래서 택도 없는 얘기라 생각하는.

물론 그렇다 할지라도 S3 Files는 흥미로운 기능이며, 앞으로 EFS를 사용하는 워크로드를 본다면 S3 Files로 전환하길 검토해볼 수 있을 거다. 그래서 기능이 나온지 얼마 지나지 않는 현시점에서 간단하게 기능 동작을 실습해보려 한다.

s3-files-2026-06-27_1

s3-files-2026-06-27_2

간단하게 Terraform으로 가벼운 EC2 인스턴스 하나와 S3 버킷 하나를 생성했다. 탭에 보면 ‘파일 시스템 – 신규’가 있는데, 이를 통해 S3 파일을 활성화할 수 있는 것 같다.

s3-files-2026-06-27_3

그리고 역시나 테스트용으로 S3 버킷에다 s3-mount-test.txt 라는 파일을 하나 넣어뒀다.

s3-files-2026-06-27_4

S3 파일 마운트를 사용하려면 mount-s3를 설치해야 한다. 여기에서 한 가지 유의사사항. 위 인스턴스는 Amazon Linux로 만들어 mount-s3가 기본 패키지 저장소에 포함되어 있는데, Amazon Linux가 아닌 다른 리눅스 os를 사용한다면 당연하게도 mount-s3가 기본 패키지가 포함되어 있지 않으며, wget으로 외부에서 설치 파일을 구해와서 mount-s3를 다운로드해야 한다.

s3-files-2026-06-27_5

그리고 mount-s3로 버킷 마운트를 시도했는데… 오류가 났다. 여기에서 두 번째 유의사항. mount-s3 cli로 EC2 인스턴스에 S3를 마운트하려면 EC2에 몇 가지 S3 권한을 줘야한다.

권한이유
s3:ListBucket버킷 내 파일 목록 조회
s3:GetBucketLocation버킷 리전 확인
s3:GetObject파일 읽기
s3:PutObject파일 쓰기
s3:DeleteObject파일 삭제
s3:AbortMultipartUpload대용량 업로드 중단 처리

다만 NFS로 직접 마운트할 때는 ClientMount, ClientWrite 두 가지만 필요하다는데, 내 실습에서는 mount-s3를 사용했으니 이는 일단 스킵.

s3-files-2026-06-27_6

권한을 준 뒤, 다시 마운트를 시도하면 파일 시스템에 S3가 마운트된 걸 정상적으로 확인할 수 있다. 따봉.