Search
📄

S3 개요

“인터넷용 스토리지 서비스”
언제 어디서나 원하는 양의 데이터를 저장 및 검색 가능. 또한 개발자는 높은 확장성과 신뢰성을 갖춘 빠르고 경제적인 데이터 스토리지 인프라에 액세스 가능하다는 장점이 존재

# S3 장점

1.
버킷 만들기
버킷 = 데이터 스토리지를 위한 Amazon S3의 기본 컨테이너
데이터를 저장하는 버킷을 만들고 해당 버킷의 이름을 지정
2.
데이터 저장
각 객체(파일)는 고유한 개발자 할당 키를 사용해 저장하거나 검색
버킷에 데이터를 무한정 저장하는데, S3 버킷에 객체를 원하는 만큼 업로드 가능하며, 각 객체에 최대 5TB의 데이터를 포함 가능
3.
데이터 다운로드
언제든지 데이터를 직접 다운로드하거나 다른 사람이 다운로드하도록 허용
4.
권한
데이터를 Amazon S3 버킷으로 업로드하거나 다운로드하려는 사용자에게 액세스 권한을 부여하거나 해당 권한을 거부 가능
3가지 유형의 사용자에게 업로드하거나 다운로드 권한을 부여 가능. 인증 메커니즘을 사용하면 데이터가 무단으로 액세스되지 않도록 보호하는 데 도움될 수 있음
5.
표준 인터페이스
모든 인터넷 개발 도구 키트에서 사용 가능하도록 설계된 표준 기반 REST 및 SOAP 인터페이스를 사용

# S3 개념

Amazon S3를 효과적으로 사용하기 위해 이해해야 할 핵심 개념 및 용어만 다루며, 가장 먼저 접하게 될 개념부터 순서대로 작성되어있음

## 버킷

Amazon S3에 저장된 객체에 대한 컨테이너
모든 객체는 어떤 버킷에 포함됨. 예를 들어 photos/dog.jpg 이름의 객체는 서울 리전의 awsdogexamplebucket 버킷에 저장되며 URL https://awsdogexamplebucket.s3.ap-northeast-2.amazonaws.com/photos/dog.jpg를 사용해 주소를 지정 가능
버킷은 다음과 같은 용도들로 사용됨 :
Amazon S3 네임스페이스를 최상위 수준으로 구성
스토리지 및 데이터 전송 요금을 담당하는 계정을 식별
액세스 제어에 사용
사용량 보고를 위한 집계 단위로 사용
특정 AWS 리전에서 생성되도록 버킷을 구성 가능. 객체가 추가될 때마다 Amazon S3에서 고유한 버전 ID를 생성하고 이를 객체에 할당하도록 버킷 구성 가능

## 객체

Amazon S3에 저장되는 기본 개체
객체는 객체 데이터메타데이터로 구성됨. 데이터 부분은 Amazon S3에서 볼 수 없음. 메타데이터는 객체를 설명하는 이름-값 페어의 집합. 여기에는 마지막으로 수정한 날짜와 같은 몇 가지 기본 메타데이터Content-Type 같은 표준 HTTP 메타데이터가 포함됨. 객체를 저장할 때 사용자 정의 메타데이터를 지정하는 것도 가능
객체는 키(이름) 및 버전 ID를 통해 버킷 내에서 고유하게 식별됨(즉, 객체는 고유한 URL을 가짐)

## 키

버킷 내 객체의 고유 식별자
버킷 내 모든 객체는 정확히 하나의 키를 가짐. “버킷, 키, 버전 ID” 조합은 각 객체를 고유하게 식별(즉, Amazon S3를 “버킷 + 키 + 버전”과 객체 자체 사이의 데이터 맵으로 생각해볼 수 있음)
Amazon S3 내 모든 객체는 웹 서비스 엔드포인트, 버킷 이름, 키, 버전(선택사항)의 조합을 통해 고유하게 주소를 지정 가능(예 : https://docs.s3.amazonaws.com/2025-12-18/AmazonS3.wsdl에서 docs는 버킷 이름이고 2025-12-18/AmazonS3.wsdl은 키)

## Regions

Amazon S3에서 사용자가 만드는 버킷을 저장할 지리적 AWS 리전을 선택 가능
지연 시간 최적화, 비용 최소화, 규정 요구 사항 준수 등 다양한 필요에 따라 리전 선택 가능. 특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않음. 예를 들어, 유럽 리전에 저장된 객체는 해당 리전을 벗어나지 않음

# S3 스토리지 클래스

## 자주 액세스하는 객체를 위한 스토리지 클래스

성능에 민감한 사용 사례(밀리초 액세스 시간을 필요로 하는 경우)와 자주 액세스되는 데이터를 위해 Amazon S3는 다음과 같은 스토리지 클래스 제공 :
S3 Standard
기본 스토리지 클래스
객체 업로드시 스토리지 클래스를 지정하지 않으면 Amazon S3가 S3 Standard 스토리지 클래스를 할당함
Reduced Redundancy(RRS)
중요치 않고 재현 가능한 데이터용으로 설계된 스토리지 클래스
S3 Standard 스토리지 클래스보다 더 적은 중복성으로 저장 가능. S3 Standard보다 더 싼 요금이 필요한 경우라면 사용하지만, 객체가 대용량(TB 단위) 데이터가 아니라면 그냥 S3 Standard 스토리지 클래스를 사용하는 게 좋음(용량 단위가 작을 때는 가격 차이가 거의 없기 때문)

## 자주 액세스하는 객체와 자주 액세스하지 않는 객체를 자동으로 최적화하는 스토리지 클래스

S3 Intelligent-Tiering
해당 스토리지 클래스는 성능 영향 또는 운영 오버헤드 없이 가장 비용 효율적인 스토리지 액세스 계층으로 데이터를 자동으로 이동하여 스토리지 비용을 최적화하도록 설계되었음
액세스 패턴이 변경될 때 자주 액세스하는 계층과 저렴한 비용의 자주 액세스하지 않는 계층 간에 세분화된 객체 수준의 데이터를 이동함으로써 자동 비용 절감 효과를 제공. 즉, Intelligent-Tiering 스토리지 클래스는 액세스 패턴을 알 수 없거나 예측할 수 없어 수명이 긴 데이터에 대해 스토리지 비용을 자동으로 최적화하려는 경우에 이상적
해당 스토리지 클래스는 두 액세스 계층에 객체를 저장. 계층은 자주 액세스하는 데이터에 최적화되어 있으며 비용이 저렴한 다른 계층은 자주 액세스하지 않는 데이터에 최적화되어 있음. Amazon S3는 객체당 소액의 월별 모니터링 및 자동화 요금으로 S3 Intelligent-Tiering 스토리지 클래스에서 객체의 액세스 패턴을 모니터링하고 연속 30일 동안 액세스하지 않은 객체를 자주 액세스하지 않는 액세스 계층으로 이동시킴
S3 Intelligent-Tiering 스토리지 클래스를 사용할 때 검색 요금은 없음. 빈번하지 않은 액세스 계층의 객체에 액세스하면 이 객체는 자동으로 빈번한 액세스 계층으로 다시 이동함. 객체가 S3 Intelligent-Tiering 스토리지 클래스 내 액세스 계층 간에 이동될 때는 계층화 요금이 추가로 적용되지 않음

## 자주 액세스하지 않는 객체를 위한 스토리지 클래스

S3 Standard-IA S3 One Zone-IA
해당 스토리지 클래스들은 수명이 길고 자주 액세스하지 않는 데이터용으로 설계됨. 여기서 IA는 “자주 액세스하지 않음”을 의미. 이 스토리지 클래스들의 객체는 밀리초 액세스에 사용 가능(= S3 Standard 스토리지 클래스). 다만, S3 Standard는 객체에 대한 검색 요금을 부과하므로, 이러한 객체는 S3 Standard-IA, S3 One Zone-IA 클래스가 적절 :
백업을 저장하는 경우
자주 액세스되지는 않지만, 그래도 밀리초 액세스가 필요한 오래된 데이터의 경우. 예를 들어, 데이터 업로드시 S3 Standard 스토리지 클래스를 선택하고 수명 주기 구성을 사용해 Amazon S3에 객체를 S3 Standard-IA나 S3 One Zone-IA 클래스로 전환하도록 지시 가능
S3 Standard-IA, S3 One Zone-IA 클래스 간의 차이는 다음과 같음 :
S3 Standard-IA
Amazon S3가 객체 데이터를 지리적으로 분리된 여러 개의 가용 영역에 중복 저장(S3 Standard 스토리지 클래스와 유사). S3 Standard-IA 객체는 가용 영역의 손실에 대한 복원성이 존재. 이 스토리지 클래스는 S3 One Zone-IA 클래스보다 뛰어난 가용성 및 복원성을 제공함
S3 One Zone-IA
Amazon S3가 객체 데이터를 한 개의 가용 영역에만 저장하므로 S3 Standard-IA보다 비용이 더 저렴함. 다만, 데이터는 지진 및 홍수와 같은 재해에 의한 가용 영역의 물리적 손실에 대해서는 복원성이 없음. Standard-IA만큼 내구성이 있지만 가용성과 복원성은 더 낮음
S3 Standard-IA : 기본 데이터나 다시 생성할 수 없는 데이터의 복사본에만 사용
S3 One Zone-IA : 가용 영역에 장애 발생 시 데이터를 다시 생성할 수 있는 경우, S3 교차 리전 복제(CRR)를 설정하는 경우 객체 복제본에 사용

## 객체 아카이빙을 위한 스토리지 클래스

S3 Glacier, S3 Glacier Deep Archive
해당 스토리지 클래스들은 저비용 데이터 아카이빙을 위해 설계됨. S3 Standard 스토리지 클래스와 동일한 내구성과 복원성 제공
두 스토리지 클래스 간 차이는 다음과 같음 :
S3 Glacier
분 단위로 데이터의 일부를 검색해야 하는 아카이브에 사용. 해당 스토리지 클래스에 저장된 데이터는 최소 스토리지 기간이 90일이며 신속 검색을 사용하여 최소 1~5분 이내에 액세스 가능. 90일 최소 기간 이전에 삭제했거나 덮어썼거나 다른 스토리지 클래스로 이전한 경우, 90일 요금이 부과됨
S3 Glacier Deep Archive
거의 액세스할 필요가 없는 데이터를 보관할 때 사용. 해당 스토리지 클래스에 저장된 데이터의 최소 스토리지 기간은 180일이고 기본 검색 시간은 12시간. 180일 최소 기간 이전에 삭제했거나 덮어썼거나 다른 스토리지 클래스로 이전한 경우, 180일 요금이 부과됨
AWS에서 가장 저렴한 스토리지 옵션. 48시간 이내에 데이터를 반환하는 대량 검색을 사용하여 S3 Glacier Deep Archive 검색 비용을 절감 가능