[AWS] S3 (Simple Storage Service) #7

­박찬영·2025년 2월 16일

AWS

목록 보기
7/15


📌 S3


스토리지의 종류

  • 객체 스토리지(Object Storage) : 데이터를 객체로 관리 (아이디 + 데이터 + 메타 데이터)

    • 방대한 확장성, 메타 데이터 → 규모와 유연성이 필요한 애플리케이션 구축에 적합

    • 데이터를 일부분만 수정하는 것이 불가능함

    • 분석, 백업, 아카이브 목적

  • 파일 스토리지(File Storage) : 데이터를 파일로 관리, 파일 시스템의 다양한 경로에 파일들이 존재함(계층적)

    • 파일 시스템을 통한 파일 단위의 저장 → 공유 파일 액세스, 파일 시스템 필요 시 적합

    • 파일의 일부분만 수정 가능

    • NAS, 대규모 콘텐츠 리포지토리, 미디어 스토어, 사용자 홈 디렉터리 등

객체 스토리지(객체의 고유 ID)파일 스토리지(파일의 경로)
객체 데이터 일부분만 수정 불가능파일 내용 일부분만 수정 가능
운영체제에서 직접 접근 불가운영체제에서 직접 접근 가능(볼륨 마운트)
큰 확장에 유연하게 대처 가능큰 확장에 대처하기 어려움
다수의 사본을 분산시켜 저장(안정성)사본을 저장하지 않음
  • 블록 스토리지(Block Storage) : 데이터를 블록(저장 공간을 나누는 단위)으로 관리, 각 블록은 고유한 주소 또는 식별자를 가짐

    • 블록 스토리지는 개별 가상 서버로 프로비저닝되어 낮은 지연 시간 제공 → 고성능 워크로드 사용에 적합

    • 순수한 데이터 블록만을 저장함

    • 데이터베이스 시스템, 가상 머신, 클라우드 스토리지 등

    • EBS가 블록 스토리지에 속함


S3란?

  • S3 (Simple Storage Service) : 객체 기반의 무제한 파일 저장 스토리지

    • AWS의 클라우드 스토리지 : S3(Simple Storage Service, 객체 스토리지), EFS(Elastic File System, 파일 스토리지), EBS(Elastic Block Store, 블록 스토리지)

    • URL을 통한 파일 공유, 안전하게 파일 저장 가능

    • 정적 웹사이트 호스팅 기능

    • 다른 AWS 서비스와 쉽게 통합해서 사용 가능

    • 주로 수정이 잘 일어나지 않는 최종 파일을 저장하는 용도 (파일의 일부분만 수정 불가)

    • 빠른 Read/Write 요구 시 부적합함 (미디어 파일, 로그 파일 보관에 적합)

    • 데이터 백업에도 적합함

  • S3 관련 용어

    • Bucket(버킷) : 객체를 담는 최상위 단위 (이름, 개수 제한)

    • Object(객체) : Bucket에 담는 데이터 단위 (파일)

    • Metadata(메타데이터) : Object에 대한 여러 가지 정보를 담은 데이터

    • Policy(정책) : Bucket, Object에 대한 접근을 통제하는 권한 정보

  • S3 사용 방법 : Bucket 생성 → HTTP로 Bucket에 파일 업로드 → Object에 권한 설정 → HTTP로 Bucket에서 파일 다운로드

  • S3 스토리지 클래스 : 스토리지를 저장하는 형태

    • S3 Standard : 자주 액세스하는 객체를 위한 스토리지 클래스, 최소 3개의 가용 영역(AZ)에 데이터 저장

    • S3 Standard-IA : 자주 액세스하지 않지만(Infrequent Access) 빠르게 액세스해야 하는 객체를 위한 스토리지 클래스, 최소 3개의 가용 영역(AZ)에 데이터 저장

    • S3 OneZone-IA : 자주 액세스하지 않는(Infrequent Access) 객체를 위한 스토리지 클래스, 단일 가용 영역에만 데이터 저장, 복원력이 없음

    • S3 Glacier : 데이터 아카이빙을 위한 백업 스토리지(자주 액세스하지 않는 객체를 저렴한 비용으로 보관하기 위한 스토리지 클래스)

    • 객체의 라이프사이클에 따라 스토리지 클래스를 변경하여 비용 효율적으로 객체 보관 가능



📌 S3 사용해보기


S3 버킷 생성하기

  • S3에서는 리전을 선택할 필요가 없음 (버킷에 대한 리전만 지정)

  • 버킷 이름은 DNS 형식으로 전 세계에서 유일해야 함 (중복 X)

  • 퍼블릭 액세스 차단 시 외부에서 버킷에 있는 객체에 접근 불가


  • 파일 업로드 및 다운로드

  • 객체 URL(객체의 고유 주소)에는 버킷의 이름과 객체의 ID가 포함됨


  • 폴더 생성

  • S3에서 폴더는 파일 이름의 Prefix 개념 (객체 스토리지에서는 모든 파일이 depth 1인 tree로 저장되기 때문)


Cyberduck으로 S3 다루기

  • IAM (권한 관리) → Cyberduck(외부 프로그램)으로 S3를 다룰 수 있도록 권한 설정


  • Cyberduck : FTP, SFTP 등 다양한 형태로 원격 서버에 접속해 사용할 수 있는 스토리지 브라우저 (다운로드)


S3 정적 웹사이트 호스팅

  • 버킷의 속성


  • index.html 파일 업로드 후 최상위 경로에 업로드
<html>
	<head>
		<title>S3 정적 웹 사이트 호스팅</title>
	</head>
	<body>
		<h1>Hello, S3!</h1>
	</body>
</html>

  • 접속이 안 되는 이유는 버킷에 있는 객체에 접근 권한이 없기 때문임

  • 모든 사용자가 접근할 수 있도록 wildcard(*)로 Principal 설정


S3 버킷 삭제하기

  • 버킷이 비어있어야 삭제 가능

  • 버킷 삭제 후 곧바로 같은 이름으로 버킷을 만들기는 어려울 수 있음



📢 세 줄로 정리해보기!

1️⃣ S3(Simple Storage Service)객체 기반의 파일 저장 스토리지로, 파일 기반 스토리지와 달리 데이터의 일부분만 수정이 불가능한 대신 확장성이 높고 안전하게 파일을 저장할 수 있다.

2️⃣ S3를 사용할 때는 먼저 Bucket(버킷)을 생성하고 파일을 업로드한 다음 Object(객체)의 권한을 설정하여 HTTP로 파일을 다운받을 수 있다.

3️⃣ S3를 사용하면 URL을 통해 파일을 공유하고 정적 웹사이트를 호스팅할 수 있으며 데이터 백업에도 적합하다.


참고 자료
소플의 처음 만난 AWS
S3 개념 & 버킷 · 권한 설정 방법

profile
Develop하는 개발자

0개의 댓글