정지용
기술스택 목록
인프라

AWS S3

프로젝트 2에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

인터넷을 통해 파일을 객체 단위로 저장하고 꺼내 쓸 수 있는 클라우드 스토리지 서비스

AWS S3(Simple Storage Service)는 이미지, 로그, 백업 파일 등 임의의 데이터를 '객체(object)' 형태로 저장하고 HTTP API로 접근할 수 있는 클라우드 오브젝트 스토리지다. 직접 디스크와 파일 서버를 운영·확장·복제할 필요 없이, 사실상 무제한에 가까운 용량과 높은 내구성을 가진 저장소를 API 호출만으로 사용할 수 있게 해준다. 파일 시스템처럼 디렉터리 구조를 강제하지 않고, 버킷(bucket)이라는 네임스페이스 안에 키(key)-객체 쌍으로 데이터를 저장하는 구조를 택해 대규모 비정형 데이터를 다루기 쉽게 설계됐다.

이럴 때 사용합니다

  • 이미지·동영상 등 대용량 파일을 서버 디스크 대신 외부 스토리지에 보관하고 싶을 때
  • 여러 서버나 워커에서 동일한 파일에 안전하게 접근해야 할 때
  • 파일을 다른 스토리지나 버킷으로 마이그레이션·백업해야 할 때
  • 트래픽이 커져도 스토리지 용량과 가용성을 직접 관리하고 싶지 않을 때

핵심 개념

Bucket
객체들을 담는 최상위 컨테이너로, 전역적으로 고유한 이름을 가지며 리전을 지정해 생성한다.
Object
S3에 저장되는 실제 데이터 단위로, 파일 내용과 메타데이터로 구성되며 고유한 키로 식별된다.
Key
버킷 내에서 객체를 식별하는 문자열 경로로, 슬래시(/)를 포함해 폴더처럼 보이게 만들 수 있지만 실제 계층 구조는 아니다.
Storage Class
접근 빈도와 비용에 따라 데이터를 저장하는 등급으로, 자주 쓰는 데이터와 장기 보관용 데이터를 구분해 비용을 최적화할 수 있다.
Presigned URL
일정 시간 동안만 유효한 임시 접근 URL로, 자격 증명 없이도 특정 객체를 업로드하거나 다운로드할 수 있게 해준다.
IAM Policy
버킷이나 객체에 대한 접근 권한을 세밀하게 제어하는 규칙으로, 어떤 주체가 어떤 작업을 할 수 있는지 정의한다.

S3 버킷에 파일 업로드하기

AWS CLI를 이용해 파일을 S3 버킷에 업로드하고, 목록을 조회하고, 다른 버킷으로 복사하는 기본 흐름을 보여준다.

Shell
# 로컬 파일을 S3 버킷에 업로드
aws s3 cp ./nft-image.png s3://my-nft-bucket/images/nft-image.png

# 버킷 안의 객체 목록 확인
aws s3 ls s3://my-nft-bucket/images/

# 객체를 다른 버킷으로 복사(마이그레이션)
aws s3 cp s3://my-nft-bucket/images/nft-image.png s3://backup-bucket/images/nft-image.png

처음 쓸 때 흔한 함정

  • 버킷을 퍼블릭으로 잘못 설정해 민감한 파일이 외부에 노출되는 경우가 흔하다.
  • 키에 슬래시를 쓴다고 실제 폴더가 생기는 것은 아니며, 이름 규칙일 뿐이다.
  • 리전이 다른 버킷 간 이동이나 대량 마이그레이션은 지연·비용이 예상보다 커질 수 있다.

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.