인프라
Module 4 : Adding a Storage Layer with Amazon S3
Section 1 : Amazon S3 정의
스토리지 유형
블록 스토리지 : 고정된 크기의 블록 단위로 장치에 저장된다.
데이터를 블록으로 분할한 후, 각 블록을 고유 식별자를 가진 별도의 조각으로 저장한다.
이러한 블록은 가장 효율적인 위치에 저장된다.
여러 시스템에 걸쳐 저장될 수 있고, 각 블록은 다양한 OS에서 작동하도록 구성 가능하다.
예시 : 데이터베이스, VM 디스크
파일 스토리지 : 사용자, 애플리케이션 및 서비스가 공유 파일 시스템의 데이터에 엑세스할 수 있도록 지원한다.
데이터는 계층으로 저장된다.
회사의 중앙 집중식 공유 네트워크 드라이브와 유사하다.
예시 : 사무용 파일 서버
객체 스토리지 : 속성과 메타데이터를 기반으로 객체로 젖아된다.
데이터, 메타데이터, 객체키로 구성된다.
객체 스토리지에서 파일을 업데이트하면, 블록 스토리지처럼 파일의 일부가 업데이트되는 대신, 전체 파일 객체가 업데이트된다.
예시 : Amazon S3와 같은 클라우드 스토리지
☑️
한 줄 요약
블록 : 빠르고 세밀한 데이터 처리
파일 : 폴더처럼 관리하는 공유 저장소
객체 : 메타데이터와 함께 대용량 저장, 클라우드 서비스에 최적
Amazon S3
기본 개념
객체 스토리지 서빗 : 데이터를 객체 단위로 저장
사실상 무제한 용량 사용 가능
데이터를 담는 버킷 안에 저장
각 버킷은 리전 전역에서 고유한 이름을 가져야 한다.
저장 단위와 크기
객체 최대 크기 : 5TB
단일 파일도 5TB까지 가능
개별 객체는 제한이 있지만, 전체 저장 용량은 사실상 무제한
접근 방식
객체는 URL(네임스페이스 기반)로 접근 가능.
각 객체에는 키(Key), 버전 ID, 값(Value), 메타데이터, 하위 리소스가 있다.
주요 특징 (5가지)
1) 객체 키(Object Key)
객체를 구분하는 고유 이름.
S3 콘솔에서 디렉터리처럼 보이지만 실제로는 키 값 구조일 뿐.
2) 버전 ID
버전 관리가 켜져 있으면 같은 객체를 여러 버전으로 저장 가능.
3) 객체 값(Value)
실제 데이터 내용.
수정하려면 새 객체로 업로드해야 함(부분 수정 불가).
4) 메타데이터
객체에 대한 추가 정보.
예: 파일 타입, 사용자 정의 태그 등.
5) 하위 리소스(Subresource)
접근 권한 같은 세부 설정을 관리할 때 사용.
☑️
한 줄 요약
사실상 무제한 객체 스토리지: 버킷에 저장, 최대 5TB 단일 객체 지원, URL 기반 접근, 키·버전·메타데이터·권한 관리 가능
Amazon S3의 구성 요소

버킷
객체를 담는 컨테이너 역할
버킷 이름은 전 세계적으로 고유해야 한다.
저장/데이터 전송 요금 과금 단위 + 엑세스 제어 단위 + 사용량 보고 단위
리전을 선택해서 생성하며, 해당 리전 안에서만 저장된다.
예 : 미국 오리건 리전 → us-west-2
객체
S3에 저장되는 실제 데이터 단위
텍스트, 이미지, 비디오, 문서 등 다양한 형식 가능
구성 요소
데이터(파일 내용)
메타데이터 : 객체 설명 정보 (예 : Content-Type : image/png)
키(Key) : 버킷 내에서 객체를 구분하는 고유한 이름
버킷 이름 + 객체 키 조합으로 정확히 특정이 가능하다.
리전
버킷은 특정 리전에 속한다.
AWS는 객체를 리전 간 자동으로 이동시키지 않는다.
따라서 데이터를 어디 리전에 저장할지 명확히 선택해야 한다.
☑️
한줄 요약
Amazon S3는 데이터를 버킷(bucket) 안에 객체(object) 형태로 저장하며
각 객체는 키(key)와 메타데이터로 구분되고, 버킷은 반드시 특정 리전(region) 에 속한다.
Amazon S3의 버킷의 폴더 구조 (접두사 활용)
기본 개념
Amazon S3에는 버킷과 객체가 기본 단위
실제로는 폴더 개념이 없지만, 접두사를 이용해 객체를 그룹화하여, 마치 폴더처럼 사용 가능
예 : image/2022/catpiano.jpg (여기서 image/2022가 접두사)
폴더처럼 동작하는 원리
객체 이름 안에 /(슬래시)를 넣으면, 콘솔에서 폴더처럼 표시된다.
실제로 폴더를 만드는 게 아니라, 경로 문자열을 기반으로 그룹화해서 보여준다.
쿼리 활용
버킷에서 특정 접두사로 시작하는 객체만 검색 가능
예 : prefix가 image/2022/ 인 경우, 2022년에 저장된 모든 사진 객체 검색
결과 : image/2022/catpiano.jpg, image/2022/catonphone.jpg, image/2022/ninepuppies.png
☑️
한줄 요약
Amazon S3는 실제 폴더 구조가 없지만, 객체 키에
/를 포함시켜 접두사(Prefix) 로 관리하면 콘솔과 쿼리에서 폴더처럼 그룹화할 수 있다.
Amazon S3의 장점
내구성(Durability)
99.999999999(%) (9가 11개)의 내구성을 제공한다.
객체가 손실된 확률이 거의 없다.
예 : 1천만 개 저장 시, 1년에 평균 1개 손실될 가능성
여러 시설(데이터 센터)에 중복 저장하여 장애에도 안전
지속적으로 체크섬을 사용하여 데이터 무결성을 검증한다.
유효성 (Availability)
99.99% 가용성을 제공한다. (S3 Standard 기준)
사실상 무제한의 데이터 저장 용량
필요할 때 빠른 엑세스가 가능하다.
데이터 암호화 및 다양한 접근 제어 기능을 제공하여, 보안성을 포함한다.
높은 성능 (Performance)
대규모 동시 업로드/검색에도 안정적이다.
초당 수천 건의 트랜잭션 처리가 가능하다.
트래픽 증가 시 자동으로 확장한다.
☑️
한줄 요약
Amazon S3는 거의 손실 없는
내구성, 빠른 액세스와 무제한 용량의가용성, 자동 확장되는고성능을 제공하는 클라우드 객체 스토리지 서비스다.
Section 2 : Amazon S3 사용
Amazon S3 활용 사례
수요 급증 (Scalability)
웹 콘텐츠(이미지, 동영상, 정적 자원 등)을 호스팅
갑작스러운 트래픽 증폭에도 안정적으로 대응 가능
예 : 쇼핑몰 할인 이벤트, 라이브 방송
정적 사이트 호스팅 (Static Website Hosting)
HTML, CSS, JS 파일로 구성된 정적 웹사이트를 직접 호스팅
이미지, 비디오 같은 미디어 파일도 함께 제공 가능.
저렴하고 빠른 정적 사이트 운영에 적합하다.
재무 분석 (Data Analytics)
대규모 데이터를 저장한 뒤, 다른 서비스와 연계해 분석
S3는 데이터 레이크(Data Lake)의 저장소 역할을 자주 수행
재해 복구 및 백업 (Disaster Recovery & Backup)
중요한 데이터를 백업해두고, 장애 발생 시 복구 가능
다른 리전에 복제 젖아하여, 안정적인 재해 복구 지원.
기업의 비즈니스 연속성을 보장하는 핵심 요소.
☑️
한줄 요약
Amazon S3는 대규모 트래픽 대응(수요 급증), 정적 웹사이트 호스팅, 데이터 분석 기반 저장소, 백업/재해 복구 솔루션으로 다양하게 활용된다.
사용 사례 : Amazon S3 미디어 호스팅

기본 개념
Amazon S3를 이용해 비디오, 사진, 음악, 기타 미디어 파일을 저장하고 배포 가능.
각 객체는 고유한 HTTP URL을 가져서 웹에서 바로 접근 가능.
사용자는 S3에서 직접 파일을 다운로드하거나, 스트리밍 가능.
동작 방식
사용자가 S3 버킷에서 콘텐츠를 직접 스트리밍.
동시에 다른 사용자는 Amazon CloudFront(CDN) 경유로 더 빠르고 안정적으로 스트리밍.
즉, S3 + CloudFront 조합으로 글로벌 콘텐츠 전송 최적화.
장점
고가용성 & 확장성 : 트래픽이 급격히 늘어나는 상황에서도 안정적인 서비스 제공
비용 효율성 : 별도의 전용 스트리밍 서버 없이 바로 호스팅 가능.
CDN 최적화 : CloudFront와 연동 시, 전 세계 사용자에게 지연 없이 콘텐츠 제공.
사용자 생성 콘텐츠(UGC) 서비스에도 적합
예 : 비디오 공유 플랫폼, 사진 공유 사이트 등
☑️
한줄 요약
Amazon S3는 비디오·이미지 같은 미디어 파일 저장소로 활용된다.
CloudFront와 함께 쓰면 대규모 스트리밍 서비스나 사용자 콘텐츠 공유 플랫폼에 이상적이다.
사용 사례 : Amazon S3 정적 웹사이트 호스팅

개념
AMazon S3에 HTML, CSS, JS, 이미지 같은 정적 콘텐츠를 업로드 → 웹사이트처럼 서비스 가능
URL 형식: http://<bucket-name>.s3-website.<region>.amazonaws.com
특징
정적 웹사이트는 서버 실행 없이도 제공 가능.
HTML, 이미지, 동영상, 클라이언트 측 JS 포함 가능
동적 웹사이트(PHP, JSP, ASP, NET 등)는 서버 측 로직이 필요 → S3에서는 지원하지 않음
하지만 AWS의 다른 서비스(Labda, API Gateway)와 조합하면 동적 기능도 구현 가능
장점
저비용 : 별도의 서버 실행 없이 웹 호스팅 가능
확장성 : 사용자가 늘어나도 안정적으로 콘텐츠 제공
고가용성 : S3의 내구성과 가용성을 그대로 활용.
사용 절차
1) S3 버킷 생성
2) 버킷 정책을 통해 객체(파일)에 대한 엑세스 권한 허용
3) HTML, CSS, JS, 이미지 파일 업로드
4) 정적 웹사이트 엔드포인트 활성화
☑️
한줄 요약
Amazon S3는 서버를 직접 운영하지 않아도 정적 웹사이트(HTML·CSS·JS·이미지) 를 손쉽게 호스팅할 수 있는 저비용·고확장성 웹 솔루션이다
사용 사례 : Amazon S3 데이터 분석 활용

기본 개념
Amazon S3는 금융 거래 분석, 클릭스트림 분석, 미디어 트랜스코딩과 같은 대규모 데이터 분석의 저장소 역할을 수행한다.
여러 개의 동시 트랜잭션을 처리할 수 있는 수평적 확장성을 제공한다.
데이터는 가공되지 않은 원본(Raw) 형태로 들어오고, 변환/처리 후 다른 S3 버킷에 저장하여, 이후 분석 도구에서 사용된다.
처리 흐름 (워크로드 예시)
1) EC2 Spot 인스턴스 or ERM 클러스터 시작 → 저렴한 비용으로 컴퓨팅 파워 확보
2) S3 또는 다른 소스에서 원본 데이터 추출
3) 컴퓨팅 알고리즘으로 데이터 변환/정제
4) 결과 데이터를 다른 S3 버킷에 저장
5) 컴퓨팅 리소스 종류 → 비용 절감
6) 분석 도구 (Amazon QuickSight 등)로 데이터를 시각화/분석하여 의미 있는 인사이트 도출
장점
저비용 확장성 : 필요할 때만 인스턴스를 띄우고 종료 가능 → 비용 최적화
대규모 분석 지원 : 빅데이터, 로그 분석, 머신러닝 전처리 등 가능
S3 + 분석 도구 조합 : 강력한 데이터 레이크 아키텍처 구축
☑️
한줄 요약
Amazon S3는 원본 데이터를 저장하고, EC2/EMR 같은 컴퓨팅 리소스와 결합해 데이터 분석·변환·시각화까지 지원하는 데이터 레이크 기반 분석 솔루션이다.
사용 사례 : Amazon S3 데이터 백업 및 보관
기본 개념
Amazon S3는 기업 데이터 백업 및 보관용 스토리지 활용 가능
내구성과 확장성 덕분에 중요한 데이터를 안전하게 저장할 수 있다.
시나리오
기업의 온프레미스 데이터 센터의 데이터를 S3 버킷에 업로드한다.
여러 개의 Amazon EC2 인스턴스에서 생성되는 데이터를 동일한 버킷에 백업한다.
이렇게 하면, 기업 전체 데이터의 중앙 집중식 백업이 가능하다.
고가용성 및 복제
S3 버킷 간 리던 복제(CRR, Corss-Region Replication)이 가능하다.
한 리전의 S3 버킷에 저장된 객체는 다른 리전의 S3 버킷에 자동 복제된다.
복제 과정은 비동기적으로 진행된다.
이를 통해, 재해 복구(Disaster Recovery) 및 고가용성 확보
장기 보관
자주 사용하지 않는 데이터는 Amazon S3 Glacier로 아카이빙할 수 있다.
저비용 장기 스토리지 솔루션
규제 준수(Compliance), 장기 백업, 기록 보관에 적합.
☑️
한줄 요약
Amazon S3는 기업 데이터 백업·보관에 최적화된 스토리지이다.
EC2·온프레미스 데이터 통합 백업 → 리전 간 복제 → 장기 보관(Glacier) 까지 지원하는 완전한 백업·DR 솔루션이다.
Section 3 : Amazon S3에서 데이터 이동 및 가져오기
Amazon S3에 객체 저장
객체 저장 특징
객체 개수 제한이 없음 : 버킷에 무제한으로 저장 가능
업로드 권한 필요 : S3 버킷에 파일을 올리려면, 해당 버킷에 대한 쓰기 권한이 있어야 함
파일 종류 제한 없음 : 이미지, 백업, 데이터, 동영상 등 어떤 파일로도 업로드 가능
보안 (암호화)
업로드 되는 객체는 기본적으로 암호화된다.
서버 측 암호화(Server-Side Encryption, SSE-S3) 방식을 사용한다.
업로드 시 자동 암호화되며, 다운로드 시 자동 해독된다.
장점
무제한 확장성 : 저장 가능한 객체 개수에 제한이 없다.
자동 암호화 제공 : 보안 강화 기본 적용
손쉬운 관리 : 어떤 데이터 유형도 쉽게 업로드 및 다운로드 가능
☑️
한줄 요약
Amazon S3는 무제한 객체 저장이 가능하다.
업로드 시 자동 암호화(SSE-S3) 가 적용되어 안전하게 데이터를 관리할 수 있다.
Amazon S3 객체 업로드 옵션
AWS Management Console
웹 기반 그래픽 콘솔 사용
파일을 ‘드래그 앤 드롭’으로 업로드 가능
단일 파일 최대 160GB까지 업로드 지원
직관적이고 쉬운 방식이라, 초보자나 관리자가 많이 사용한다.
AWS CLI
명령어 기반 업로드 방법
스크립트로 자동화 가능하며, 대규모 업로드 작업에 유용하다.
대량의 파일을 반복적으로 업로드할 때 적합하다.
AWS SDK
프로그래밍 방식으로 업로드
다양한 언어(Java, Python, Node.js 등) 지원
애플리케이션 내부에서 직접 파일 업로드 기능 구현 가능
AMazon S3 REST API
HTTP PUT 요청을 통해 객체 업로드
가장 저수준 접근 방식으로, 모든 동작을 직접 제어 가능
다른 방법의 기반이 되는 핵심 API
대용량 파일 업로드
160GB 이상 ~ 최대 5TB은 멀티파트 업로드가 필요하다.
파일을 여러 조각으로 나누어 업로드하며, 실패 시 ‘일부’만 재전송 가능하다.
성능과 안전성을 위해 대규모 업로드에서 권장한다.
☑️
한줄 요약
Amazon S3 객체 업로드는 콘솔(간단), CLI(자동화), SDK(프로그래밍), REST API(직접 제어) 네 가지 방법이 있다.
5TB 대용량 파일은 멀티파트 업로드를 통해 처리한다.
Amazon S3 멀티파트 업로드

개념
단일 객체(파일)를 여러 개의 파트(조각)으로 나누어 업로드한다.
각 파트는 독립적으로 전송 가능하며, 순서와 관계없이 업로드 가능하다.
모든 파트가 업로드되면, Amazon S3가 이를 조합하여 최종 객체를 생성한다.
장점
향상된 처리량: 파일을 여러 조각으로 분할해 ‘병렬’ 방식으로 업로드하여, 속도와 효율이 증가된다.
네트워크 장애 복구 용이: 일부 파트 전송 실패 시, ‘해당 부분만’ 재전송하여, 전체 업로드 실패를 방지한다.
업로드 중지 및 재개 가능: 네트워크 상태나, 작업 상황에 맞춰 업로드를 일시 중지/재가 가능하다.
최종 크기 알기 전에도 시작 가능: 객체의 전체 크기를 미리 몰라도, 업로드 시작이 가능하다.
활용 사례
대용량 파일 업로드 시 필수
네트워크 불안정 환경에서도 안정적으로 업로드할 때 유용
비용 최적화 : 실패한 부분만 다시 업로드하면 되므로, 재전송 비용 절감
☑️
한줄 요약
Amazon S3 멀티파트 업로드는 대용량 파일을 여러 조각으로 나누어 병렬·안정적·유연하게 업로드할 수 있는 기능으로, 속도와 신뢰성을 동시에 확보한다
Amazon S3 전송 가속 (S3 Transfer Acceleration)

개념
멀리 떨어진 지역에서 S3 버킷으로 파일 업로드 시, 전송 속도를 최적화하는 기능
데이터를 CloudFront Edge Location을 통해 전달하여, 글로벌 네트워크를 활용해 더 빠르고 안정적인 전송이 가능하다.
동작 방식
일반 업로드 : 인터넷을 통해 S3 버킷에 직접 전송
전송 가속 사용 : 인터넷을 토해 가장 가까운 CloudFront Edge Location을 통해 최적화된 AWS 네트워크를 활용해 S3 버킷에 전송
결과 : 50~ 500% 속도 향상 (특히 대륜 간 대용량 전송에 효과적이다)
장점
전 세계 어디서나 빠른 업로드: 글로벌 사용자들이 중앙 S3 버킷에 접근할 때 유리
대규모 데이터 이동 최적화: 테라바이트 단위의 데이터도 빠르게 전송 가능
안정성 보장: 네트워크 경로가 최적화되어 잇어서, 전송 실패 및 지연을 최소화한다.
실제 사례
다국적 기업의 글로벌 데이터 업로드
미디어, 연구 데이터, 로그 등 대규모 파일을 본사 리전에 모아야 할 때
인터넷 환경이 불안정하거나, 지리적으로 먼 지역에서 파일을 올릴 때
☑️
한줄 요약
Amazon S3 전송 가속은 CloudFront 글로벌 네트워크를 활용해 장거리·대규모 파일 업로드 속도를 50~500% 향상시켜주는 기능이다.
데모 : S3 버킷 생성
검색 창에 S3을 검색해서 콘솔 페이지로 이동한다.
CREATE Bucket 버튼을 누른다.
Bucket name을 작성한다. (예 : my-aws-demo-102)
Choose Bucket 버튼을 누른다.
General pupose buckets 목록에 생성된 것을 볼 수 있다.
해당 버킷을 클릭한다.
Properties 탭을 클릭한다.
아래로 내려서 Transfer Acceleration 섹션의 ‘Edit’ 버튼을 클릭한다.
Enable을 클릭 후 Save Changes 버튼을 클릭한다.
상단의 AWS Cloudshell icon을 클릭한다.
time dd if=/dev/zero of-file.dat bs=1G seek-1 count=0을 입력한다.
결과를 볼 수 있다.
aws s3 cp file.dat s3://my-aws-demo-102/file.dat —region use-east-1 —endpoint-url http://s3-accelerate.amazonaws.com을 입력한다.
Region,endpoint을 확인하는 것이 중요하다.
입력 시, 업로드가 진행된다.
aws s3api get-bucket-accelerate-configuration —bucket my-aws-demo-102 —query ‘Status’을 입력한다.
입력 시, Enable라는 결과를 볼 수 있다.
Amazon S3 Transfer Acceleration 페이지로 이동한다. (어디서,,?)
리전, S3 업로드, 가속 업로드를 각각볼 수 있다.
가속 업로드가 속도가 더 빠른 것을 볼 수 있다.
AWS Transfer Family
개념
AWS에서 제공하는 완전 관리형 전송 서비스
파일을 S3 또는 EFS로 안전하게 전송/수신할 수 있도록 지원
별도의 서버 구축이나, 관리가 필요 없어서, 운영 부담을 최소화 시켜준다.
지원 대상 스토리지
Amazon S3(객체 스토리지)
Amazon EFS(NFS 기반 파일 스토리지)
지원 프로토콜
SFTP (Secure File Transfer Protocol) → SSH 기반 파일 전송
FTPS (File Transfer Protocol Secure) → 암호화된 FTP 전송
FTP (File Transfer Protocol) → 일반 파일 전송
AS2 (Applicability Statement 2) → 기업 간 EDI(전자 문서 교환) 전송용 표준 프로토콜
장점
보안 : 암호화 전송을 지원하며, 기업 간 안전한 데이터 교환이 가능하다.
확장성 : 기존 FTP/SFTP 워크플로우를 클라우드로 쉽게 이전한다.
운영 단순화 : 서버 관리 필요 없이 AWS에서 자동으로 운영한다.
다양한 프로토콜 호환 : 기존 기업 시스템과 연계하기에 용이하다.
☑️
한줄 요약
AWS Transfer Family는 SFTP, FTPS, FTP, AS2 프로토콜을 지원하는 완전 관리형 서비스
기업이 기존 파일 전송 워크플로우를 Amazon S3·EFS와 안전하게 연계할 수 있도록 돕는다.
AWS Transfer Family 혜택
관리형 서비스
완전 관리형 서비스로, 요구 사항에 맞춰 실시간 확장이 가능하다.
서버나 인프라를 직접 구축/운영할 필요가 없다.
애플리케이션 수정 불필요
기존 애플리케이션을 변경하거나, 파일 전송 프로토콜을 새로 구현할 필요가 없다.
기존 워크플로우를 그대로 AWS 환경에 연계가 가능하다.
AWS 서비스 연동
S3와 연계 → 저장된 데이터를 처리, 분석, 감사, 보고가 가능하다.
EFS와 연계 → 대규모 파일 시스템 확장 및 축소를 자동으로 지원한다.
자동화 및 모니터링
업로드/전송/실행/자동화/모니터링 기능을 제공하는 관리형 서비스
일일이 관리하지 않아도, 안정적으로 워크플로우 운영이 가능하다.
비용 효율성
사전 비용이 없고, 사용한 만큼만 지불한다.
초기 투자 없이, 필요에 따라 유연하게 확장이 가능하다.
☑️
한줄 요약
AWS Transfer Family는 S3·EFS와 연동되는 완전 관리형 파일 전송 서비스
기존 시스템 수정 없이 자동 확장·자동화·모니터링 지원, 사용량 기반 과금으로 운영 효율성을 극대화한다.
Transfer Family 사용 사례
S3와 함께 사용하는 경우
데이터 레이크 구축: 공급망, 파트너, 제 3자 등에서 업로드되는 데이터를 수집해서 AWS 데이터 레이크로 활용한다.
고객 구독 기반 데이터 배포: 고객에게 정기적으로 데이터 제공 시, 자동화된 배포에 활용된다.
조직 내부 전송: 부서 간, 지사 간 내부 데이터 공유 및 전송에 사용된다.
EFS와 함께 사용하는 경우
데이터 분포: 여러 사용자와 애플리케이션이 공유해야 하는 파일을 쉽게 분배한다.
공급망 관리: 공급 업체 간 대규모 데이터를 교환한다.
콘텐츠 관리: 이미지, 문서, 미디어 파일 등의 효율적 관리가 가능하다.
웹 서비스 애플리케이션: 웹 기반 애플리케이션에서 필요한 파일 전송/저장 백엔드 역할을 한다.
장점
기존 FTP/SFTP 기반 워크플로우를 클라우드와 자연스럽게 연결할 수 있다.
S3는 데이터 수집/배포/내부 공유, EFS는 협업/애플리케이션 통합에 강점이 있다.
☑️
한줄 요약
AWS Transfer Family는 아래와 같은 다양한 파일 전송 시나리오를 지원한다.
S3와 결합 시 데이터 레이크·배포·내부 전송,
EFS와 결합 시 협업·공급망·콘텐츠 관리
Section 4 : Amazon S3로 콘텐츠 저장
Amazon S3 스토리지 클래스 요약
일반 용도
1) S3 Standard
자주 엑세스되는 데이터를 위한 기본 클래스
높은 내구성(11 9s), 가용성(99.99%), 짧은 지연 시간
웹 애플리케이션, 모바일 앱, 콘텐츠 배포, 빅데이터 분석 등에 적합
지능형 계층화
1) S3 Intelligent-Tiering
엑세스 패턴에 따라 데이터를 자동으로 계층 이동.
비용 최적화 : 자주 엑세스(Frequent) ↔ 덜 엑세스(Infrequent) ↔ 아카이브로 전환하다.
예측하기 어려운 엑세스 패턴의 데이터 저장에 적합
드물게 접근
1) S3 Standard-IA (Infrequent Access)
장기 저장이 필요하지만, 자주 접근하지 않는 데이터에 적합
저렴한 스토리지 비용, 다만 검색 시 ‘추가 요금’ 발생
2) S3 One Zone-IA
하나의 가용 영역(AZ)에만 저장
백업/재생성 가능한 데이터 보관에 저비용으로 적합
보관소 (아카이브)
1) S3 Glacier Instant Retrieval
거의 접근하지 않지만 밀리초 단위 검색 필요 → 의료 이미지, 뉴스 미디어 등.
2) S3 Glacier Flexible Retrieval (구 S3 Glacier)*
몇 시간 내 검색 가능, 드문 액세스용 장기 보관.
백업, 재해 복구, 규제 준수 데이터 보관에 적합.
3) S3 Glacier Deep Archive*
가장 저렴한 클래스, 7~10년 이상 장기 보관에 적합.
금융, 의료, 공공 규제 산업 데이터 보관에 최적.
4) S3 on Outposts*
온프레미스 환경에서 AWS 하드웨어로 S3 API 제공.
로컬에서 데이터 저장, 검색, 보안/보고/태깅 지원.
클라우드 대신 로컬 데이터 주권 요구가 있는 경우 활용.
☑️
한줄 요약
Amazon S3는 액세스 빈도와 비용 최적화를 기준으로 Standard → Intelligent-Tiering → Infrequent Access → Glacier 계열까지 다양한 스토리지 클래스를 제공
실시간 접근부터 수십 년 보관까지 모든 데이터 저장 요구를 충족한다.
S3 스토리지 클래스 분석
S3 스토리지 클래스 공통 특징
내구성 : 99.999999999% (11 9s)
SLA(서비스 수준 계약) : 99% 이상의 가용성 보장
지연 시간 : 첫 번째 바이트까지 밀리초 단위 응답
다양한 객체 스토리지 유형 제공
수명 주기 정책으로 자동 전환이 가능
주요 클래스 별 특징
| 클래스 | 가용 영역(AZ) 수 | 최소 객체 크기 | 최소 보관 기간 | 검색 요금 |
| --- | --- | --- | --- | --- |
| **S3 Standard** | ≥ 3 | 제한 없음 | 없음 | 없음 |
| **S3 Intelligent-Tiering** | ≥ 3 | 제한 없음 | 없음 | 없음 |
| **S3 Standard-IA** | ≥ 3 | `128KB` | `30일` | `있음` |
| **S3 One Zone-IA** | `1` | `128KB` | `30일` | `있음` |
| **S3 Glacier Instant Retrieval** | ≥ 3 | `128KB` | `90일` | `있음` |
| **S3 Glacier Flexible Retrieval** | ≥ 3 | - | `90일` | `있음` |
| **S3 Glacier Deep Archive** | ≥ 3 | - | `180일` | `있음` |추가 설명
One Zone-IA: 단일 AZ에 저장, 비용 절감 가능하지만 복원력 낮음.
Standard-IA & One Zone-IA & Glacier Instant Retrieval: 최소 객체 크기 128KB → 작은 파일 저장 시 비효율적.
최소 보관 기간
30일: Standard-IA, One Zone-IA
90일: Glacier Instant, Glacier Flexible Retrieval
180일: Glacier Deep Archive
검색 요금: Standard와 Intelligent-Tiering 제외, 나머지는 검색할 때 데이터 양에 따라 추가 비용 발생.
☑️
한줄 요약
Amazon S3 스토리지 클래스는 비용·가용성·복원력·보관 기간에 따라 선택할 수 있으며, 자주 접근은 Standard/Intelligent-Tiering, 드문 접근은 IA 계열, 장기 보관은 Glacier 계열을 활용하면 된다.
Amazon S3 수명 주기 구성
개념
S3 수명 주기 정책은 객체 그룹에 대해 저장소 클래스 전환이나 만료(삭제) 시점을 자동으로 정의하는 규칙이다.
데이터의 비용 절감과 자동 관리를 위해 활용된다.
작업 유형
1) 전환 작업(Transition)
특정 시점 이후 객체를 더 저렴한 스토리지 클래스로 자동 이동
예시
객체 생성 후 30일 → S3 Standard-IA로 이동
객체 생성 후 1년 → S3 Glacier Flexible Retrieval로 이동
전환 작업 시 비용이 발생할 수 있다.
2) 만료 작업(Expiration)
특정 시점 이후 객체를 자동으로 삭제
비용 절감에 유용 (특히, 임시 데이터나 로그 파일 등)
삭제 비용은 객체 크기/시점에 따라 달라진다.
장점
자동화 : 애플리케이션을 수정할 필요 없이, 정책에 따라 데이터가 자동 전환/삭제 된다.
비용 최적화 : 액세스 빈도가 낮아지는 데이터를 저렴한 Glacier/Deep Archive로 옮겨, 전체 스토리지 비용을 절감한다.
유연성 : 객체 별로 전환 규칙과 만료 규칙을 세밀하게 설정 가능하다.
☑️
한줄 요약
Amazon S3 수명 주기 정책은 객체를 저렴한 스토리지로 자동 전환하거나 삭제하는 규칙을 설정해, 장기적으로 비용 최적화와 관리 효율성을 제공한다.
Amazon S3 수명 주기 예시

삭제되는 데이터
로그 파일처럼 단기간(예 : 1주~1달)만 필요한 데이터.
예 : S3 Standard에 저장 → 30일 보관 후 자동 삭제(Delete)
장점 : 불필요한 저장 비용 절감.
장기 보관 데이터
규제나 법적 요구사항으로 오랜 기간 보관해야 하는 데이터
예 : S3 Standard에 저장 → 이후 S3 Glacier로 전환 → 10년 보관 → 만료 시 삭제
대상 : 재무 데이터, 의료 기록, 법적 준수용 데이터 등.
점진적 접근 감소 데이터
초반에는 자주 사용되지만, 시간이 지나면 빈도가 낮아지는 데이터
예 : S3 Standard에서 60일 보관 → St Standard-IA로 1년 보관 → S3 Glacier로 7년 보관 → 삭제
대상 : 프로젝트 문서, 연구 결과물, 기록 보관 데이터
☑️
한줄 요약
Amazon S3 수명 주기 정책은 데이터 특성(짧게 사용 / 장기 보관 / 점진적 접근 감소) 에 따라 자동으로 클래스 전환·보관·삭제를 적용할 수 있어, 비용 최적화 + 규정 준수를 동시에 달성할 수 있다.
데모 : 관리 수명 주기 아마존 S3
검색 창에서 S3를 검색하여 이동한다.
버킷을 선택한다.
Management 탭을 클릭한다.
Lifecycle rules 섹션의 ‘Create lifecycle rule’ 버튼을 클릭한다.
입력해야 할 부분
Lifecycle rule name을 입력한다.
Rule scope를 Apply to all objects in the bucket으로 클릭한다.
i acknowledge that this rule will apply to all objects in the bucket도 클릭한다.
Lifecycle rule actions을 클릭한다.
Move current versions of objects between storage classes
Permanently delete noncurrent versions of objects
Transition current versions of objects between storage classes
스토리지 class transitions를 Standard-IA로 선택한다.
Days after object creation을 30으로 작성한다.
Permanently delete noncurrent versions of objects
Days after objects become noncurrent을 60으로 작성한다.
Create rule 버튼을 클릭한다.
Management 탭을 클릭한다.
Lifecycle rules 섹션에 생성된 것을 볼 수 있다.
룰의 라디오 버튼을 클릭한 뒤, actions 드롭다운의 Enable rule을 클릭 후 Enable 버튼을 누른다.
삭제도 가능하다. 룰의 라이도 버튼을 클릭한 뒤, delete 버튼을 누른다.
Amazon S3 버전 관리
버전 관리 기능의 목적
객체(Object)를 실수로 덮어쓰기/삭제하는 것을 방지한다.
사용자가 원치 않게 작업을 해도, 이전 버전 데이터를 복구할 수 있다.
버전 관리 동작 방식
버킷 단위로 활성화할 수 있다.
각 객체는 버전 ID를 가진다. (기본은 Null)
버전 관리 활성화 후, 새로운 객체 업로드 시, 새 버전 ID가 생성된다.
기존 객체는 그대로 유지된다.
버전 관리 상태
1) 활성화 (Enable)
같은 키로 업로드하면, 새로운 버전이 생성된다.
삭제 시, 삭제 마커(Delettion Marker)만 추가, 기존 버전은 그래도 보존한다.
과거 버전 조회도 가능하다.
2) 비활성화 (Unversioned, 기본)
같은 키로 업로드하면 이전 버전은 덮어 쓰여지며, 보국가 불가능하다.
삭제하면 객체가 완전히 삭제 된다.
3) 중단(Suspended)
새로운 객체는 Null 버전으로 저장된다.
이전에 생성된 버전은 그대로 유지된다.
특징
버전 관리 활성화는 되돌릴 수 없다. (단, 중단은 가능)
각 객체 버전은 독립적으로 관리되어, 스토리지 비용에 영향을 준다.
하지만, 데이터 보호 및 복구 측면에서 매우 중요하다.
☑️
한줄 요약
Amazon S3 버전 관리는 객체를 덮어쓰기/삭제로부터 보호하기 위한 기능
활성화 시 모든 변경 내역이 버전별로 보존되며 과거 상태 복원이 가능하다.
Amazon S3 버전 관리 흐름 정리
객체 추가
버전 관리가 활성화된 버킷에 같은 키(photo.gif)로 새로운 객체 업로드 시
새 버전 ID 생성 (예 : 121245)
기존 버전은 그대로 보존됨. (예 : 111111)
덮어쓰기 대신, 여러 버전이 누적 저장된다.
객체 삭제
객체를 삭제하면, 실제 객체는 남아 있고, 삭제 마커(Delete Marker)가 추가된다.
최신 상태는 삭제된 것처럼 보이지만, 이전 버전(121245, 111111)은 여전히 검새 가능하다.
최신 버전 검색
기본적으로 GET 요청은 가장 최신 버전을 반환한다.
하지만, 최신 버전이 삭제 마커라면, 404 Not Found 오류가 발생한다.
사용자는 과거 버전을 직접 요청해야 한다.
특정 ID로 검색
버전 ID를 명시하면, 해당 버전의 객체를 가져올 수 있다.
예 : photo.gif의 121245 버전 지정 시, 최신이 아니어도 해당 버전을 반환한다.
객체 영구 삭제
버전 ID를 지정해 삭제하면, 해당 버전은 완전히 삭제된다.
이 경우 삭제 마커가 추가되지 않고, 복구가 불가능하다.
‘실수 방지’ 기능은 기본 삭제에서만 제공되고, 특정 버전 삭제는 돌이킬 수 없다.
☑️
한줄 요약
추가: 새 버전 생성, 기존 버전 유지.
삭제: 삭제 마커 추가 → 최신 상태는 삭제된 것처럼 보임.
검색: 최신 버전 조회 시 삭제 마커면 오류, 특정 버전 ID로 조회 가능.
영구 삭제: 특정 버전 ID 지정 시 완전 삭제, 복구 불가.
데모 : Amazon S3 버전 관리
검색창에 S3를 검색하여 이동한다.
Create bucket 버튼을 클릭한다.
Bucket name을 입력한다. (my-aws-demo-101)
Create buckets 버튼을 클릭한다.
생성된 버킷을 확인하고, 클릭한다.
Properties 탭으로 이동하고, Bucket Versiong 섹션의 Disabled를 확인한 후, 우측의 Edit 버튼을 클릭한다.
Enable을 체크한 뒤, Save chnages 버튼을 클릭한다.
Enable로 변경된 것을 볼 수 있다.
Objects 탭으로 이동하고, 아래의 흰색으로 된 Upload 버튼을 클릭한다.
Add files을 클릭 후, 업로드하고자 하는 파일을 선택한다.
Upload 버튼을 클릭한다.
업로드된 파일을 클릭한다.
Size를 확인한다.
우측의 Open 클릭을 확인한다.
파일의 내용을 확인한다.
Objects 탭에서 우측의 주황색으로 된 Upload 버튼을 클릭한다.
add files 버튼을 클릭한다.
수정된 내용의 파일을 선택한다.
Upload 버튼을 클릭한다.
내용은 다르지만, 파일 크기와 이름이 같다.
업로드된 파일을 클릭한다.
우측의 Open을 클릭한다.
버킷으로 돌아간 뒤, Object 탭에서 show versions 토글을 클릭한다.
두 개의 파일이 보여진다.
show versions 토클을 다시 눌러 해제한다.
파일의 체크박스를 활성화시킨 뒤, Delete 버튼을 클릭한다.
delete을 입력하고, Delete Objects 버튼을 클릭한다.
Close 버튼을 클릭한다.
show versions을 클릭하면 세 개의 파일이 있다.
첫번째와 두 번쨰의 체크박스를 활성화시킨 뒤, Delete 버튼을 클릭한다.
permanently delete을 입력하고, Delete Objects 버튼을 클릭한다.
Close 버튼을 클릭한다.
Objects 탭에 있는 파일을 클릭한다.
우측의 Open 클릭을 확인한다.
파일의 내용을 확인한다.
CORS(교차 출처 리소스 공유) in Amazon S3

CORS란?
교차 출처 리소스 공유(CORS): 한 도메인에서 로드된 웹 어플리케이션이 다른 도메인의 리소스(S3 버킷 등)에 접근할 수 있도록 허용하는 방식
예시
example.com 도메인에서 실행 중인 웹 앱이
mybucket.s3.amazonaws.com에 정의된 데이터를 가져오는 경우
CORS를 설정해야 하는 이유
브라우저는 보안 정책(Smae-Origin Policy) 때문에 기본적으로 다른 도메인의 요청을 차단한다.
Amazon S3에 CORS 규칙을 설정하면, 특정 출처(Origin)와 HTTP 메서드(GET, POST 등)에 대해 접근 허용이 가능하다.
CORS 구성(XML 예시)
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>AllowedOrigin: 접근 허용할 도메인 (예: = 모든 도메인 허용)AllowedMethod: 허용할 HTTP 메서드 (예: GET, PUT, POST 등)필요 시 헤더나 만료 시간도 추가 가능
동작 방식
브라우저가 요청을 보낼 때, S3는 CORS 규칙을 확인한다.
규칙에 맞으면 요청을 허용하고, 아니면 차단한다.
이를 통해 다른 도메인에서 S3 버킷 리소스를 안전하게 공유 가능하다.
활용 예시
웹 폰트 호스팅
S3 버킷에 폰트를 저장하고, 웹사이트에서 로딩한다.
다른 도메인의 웹페이지가 이 폰트를 가져와도, CORS 설정이 되어 있으면 정상으로 동작한다.
☑️
한 줄 요약
Amazon S3의 CORS 설정을 통해 특정 도메인/메서드에 대해 교차 출처 접근을 허용할 수 있으며, 웹 앱이 다른 도메인의 S3 리소스를 안전하게 사용할 수 있게 해준다.
Amazon S3 데이터 일관성 모델 정리

주요 특징
모든 지역의 모든 새 객체와 기존 객체에 대한 강력한 일관성(Strong Consistency)을 보장한다.
S3 버킷의 객체에 대한 모든 GET, LIST, PUT, DELETE 작업에 대해 읽기-쓰기 일관성(Read-after-write consistency)를 제공한다.
빅데이터 워크로드와 온프레미스 분석 마이그레이션에 유리하다.
동작 방식
1) 객체 업로드(PUT)
객체가 업로드되면, 즉시 최신 버전으로 읽기(GET)가 가능하다.
모든 지역의 S3 버킷에 동일하게 반영된다.
2) 객체 삭제(DELETE)
객체 삭제 후에도 잠시 동안 LIST 결과에 삭제된 버킷이 나타날 수 있다.
하지만, 곧 삭제된 상태가 모든 LIST 결과에 반영한다.
→ 최종 일관성(Eventual COnsistency) 모델3) 복제 및 고가용성
AWS 데이터 센터 내 여러 서버에 데이터가 복제 저장된다.
장애 발생 시에도 데이터가 안전하게 유지된다.
장점
강력한 읽기/쓰기 일관성 : 추가적인 애플리케이션 코드나 DB Lock이 필요 없다.
운영 효율성 : 온프레미스 워크로드 마이그레이션을 단순화한다.
비용 절감 : S3Guard 같은 추가 인프라가 불필요하다.
예시
새로운 객체 업로드 후 바로 GET 요청 → 최신 객체 반환
삭제된 객체는 잠시 LIST에 보일 수 있지만, 곧 반영되어 사라진다.
☑️
한줄 요약
Amazon S3는 객체에 대해 강력한 읽기/쓰기 일관성을 제공하여 안정적이고 예측 가능한 스토리지 사용이 가능하다.
Section 5 : Amazon S3로 디자인하기.
Amazon S3 기본 보안 구성
기본 보안 특징
기본 비공개 : 새로 생성된 S3 버킷과 객체는 기본적으로 비공개로 보호된다.
자동 암호화 : 모든 S3 버킷은 기본적으로 암호화가 적용된다.
기본 암호화 방식 : Amazon S3 관리형 키(SSE-S3)을 사용한다.
추가 옵션 : 필요시 AWS KMS를 활용하여 비밀 키를 직접 관리할 수 있다.
보안 모범 사례
데이터 엑세스 제어 : IAM 정책, 버킷 정책, ACL을 사용하여 누가 어떤 권한으로 접근 가능한지 관리해야 한다.
최소 권한 원칙 적용 : 필요한 권한만 부여하여, 보안 리스크를 최소화한다.
암호화 유지 : 저장 시 암호화 + 전송 시 암호화 병행 사용을 권장한다.
☑️
한줄 요약
S3는 기본적으로 비공개 + 암호화 적용 → 안전한 데이터 보호 제공
데이터 액세스 권한 관리와 최소 권한 원칙이 핵심
필요에 따라 AWS KMS로 암호 키를 직접 관리해 더 강력한 보안 적용 가능
Amazon S3에서 객체 암호화
암호화란?
비밀 키로 데이터를 인코딩하여, 키 없이는 읽을 수 없게 하는 것이다.
저장 중 데이터를 보호하고, 무단으로 접근하는 것을 방지한다.
암호화 방식
1) 서버 측 암호화 (SSE, Server-Side Encryption)
객체를 S3에 저장하기 전에 AWS가 자동으로 암호화한다.
다운로드 시 AWS가 자동으로 복호화한다.
S3 버킷에서 기본 암호화 옵션을 활성화 가능하다.
유형
SSE-S3 : Amazon S3 관리형 키 (기본 옵션)
SSE-KMS : AWS KMS 키 사용 (더 세밀한 권한 제어 및 감사 로그 제공)
DSSE-KMS : 이중 계층 서버 측 암호화 (더 높은 보안 수준)
SSE-C : 고객이 제공한 키 사용
2) 클라이언트 측 암호화 (CSE, Client-Side Encryption)
데이터를 사용자 애플리케이션에서 직접 암호화 후 Amazon S3에 업로드한다.
복화도 애플리케이션에서 처리한다.
AWS는 암호화되지 않은 데이터에 접근하지 못한다.
키 관리 및 암호화 프로세스를 직접 책임져야 한다.
☑️
한줄 요약
모든 S3 버킷은 기본적으로 암호화 구성.
서버 측 암호화는 AWS가 처리 → 사용 편리.
클라이언트 측 암호화는 완전한 통제권을 주지만 관리 부담이 큼.
버킷 및 객체 보호를 위한 Amazon S3 도구
주요 도구와 설명
| 도구 | 설명 |
| --- | --- |
| **공개 액세스 차단 기능** | 대중이 버킷에 접근할 수 없게 제한 |
| **IAM 정책** | IAM을 사용해 사용자 인증 및 권한 부여 |
| **버킷 정책** | 특정 버킷 규칙에 따라 액세스 권한 제어 |
| **액세스 제어 목록 (ACL)** | 버킷/객체 레벨에서 액세스 규칙 세부적으로 설정 |
| **S3 액세스 포인트** | 애플리케이션에 맞춘 이름 기반 액세스 구성을 제공 |
| **미리 할당된 URL (Pre-Signed URL)** | 임시 URL을 사용해 제한된 시간 동안만 접근 허용 |
| **AWS 신뢰할 수 있는 고문 (Trusted Advisor)** | 보안 점검 기능 제공, 불필요한 공개 액세스 여부 확인 |각 도구 별 설명
1) 공개 액세스 차단
Amazon S3 퍼블릭 액세스 차단 기능을 활성화하면 의도치 않은 데이터 유출 방지 가능.
2) IAM 정책*
특정 사용자/역할(Role)에게만 액세스 부여.
세밀한 권한 관리 가능 (리소스 단위).
3) 버킷 정책*
특정 버킷 전체 또는 객체 단위로 액세스 제어.
신중히 설계 필요 (공개 권한 부여 시 보안 위험 발생).
4) ACL (Access Control List)*
객체 및 버킷에 세부적인 권한 부여 가능.
예: 특정 사용자에게만
읽기/쓰기권한.5) S3 액세스 포인트*
대규모 데이터셋 접근 시 유용.
각 애플리케이션별로 개별 액세스 포인트 생성 가능.
6) Pre-Signed URL*
인증된 사용자가 생성.
제한된 시간 동안만 URL로 객체 접근 허용. (예: 파일 다운로드 링크 발급)
7) AWS Trusted Advisor*
잘못된 권한 설정 탐지.
글로벌 공개 여부 등을 점검해 보안 강화.
☑️
한 줄 요약
Amazon S3는 IAM 정책, 버킷 정책, ACL, 액세스 포인트, Pre-Signed URL, 공개 차단, Trusted Advisor와 같은 다양한 도구를 통해 세밀하고 안전하게 버킷과 객체를 보호할 수 있다.
S3 엑세스 구성을 위한 세 가지 접근 방식

기본 (Default)
모든 S3 버킷과 객체는 기본적으로 비공개(private)로 설정된다.
새로 생성된 버킷은 버킷 소유자와 AWS 계정 루트 사용자만 접근 가능하다.
리소스 소유자는 다른 사용자에게 필요한 경우 특정 엑세스 권한을 부여할 수 있다.
제한적 접근(Controlled Access)
버킷 소유자가 특정 사용자에게만 제한된 엑세스 권한을 제공한다.
예 : 사용자 A는 접근 허용, 사용자 B는 거부됨.
IAM 정책, 버킷 정책, ACL 등을 조합해서 시나리오를 구성할 수 있다.
가장 일반적이며, 권장되는 보안 구성 방식
공공 접근 (Public Access)
보안 설정이 비활성화된 상태에서 누구나 객체를 접근 가능하다.
예 : 웹사이트 정적 파일 호스팅 시
하지만 대부분의 경우, 보안 위험이 크기 때문에 권장하지 않는다.
권장하지 않는 접근
공개 접근 허용은 AWS 보안 아키텍처에서 일반적으로 지양한다.
public access가 필요한 경우에도, 최소한으로 설정해야 한다.
애플리케이션에서 사용하는 일반 데이터, 내부 데이터, 백업 데이터는 public 권한을 주면 안 된다.
☑️
한 줄 요약
기본(Private): 모든 버킷과 객체는 기본적으로 비공개.
제한적 접근(Controlled Access): 권한이 있는 사용자만 접근 가능 → 권장.
공공 접근(Public Access): 모든 사용자 접근 가능 → 비권장.
지역 선택 시 고려 사항 (AWS S3 관점)
주요 고려 사항
1) 데이터 개인정보 보호법 및 규정 준수
해당 지역에 데이터 개인정보 보호법이 존재하는가?
국제/지역적 규제 적용 대상인지 확인 필요
의료, 금융 등 특정 산업 규제(HIPAA 등) 준수 여부 확인.
2) 사용자와 데이터의 근접성
사용자가 위치한 곳과 가까운 리전을 선택하면, 지연(Latency)을 최소화할 수 있다.
지연 시간이 짧을수록, 고객 경험 개선에 기여된다.
3) 서비스 및 기능 가용성
모든 AWS 서비스가 모든 Region에 있는 것은 아니다.
특정 Region에서는 일부 서비스가 지원되지 않을 수도 있다.
필요한 서비스가 가용한지 확인해야 한다.
4) 비용 효율성
Region 별 서비스 비용은 다르다.
가까운 Region 선택이 기본적으로 효율적이지만, 특정 상황에서는 원격 Region이 더 저렴할 수도 있다.
글로벌 환경 고려
여러 Region에 애플리케이션 환경을 분산 배치하면, 가용성과 안정성이 향상된다.
가까운 Region에서 서비스를 제공하여 응답 속도와 고객 경험을 최적화할 수 있다.
단, 여러 리전을 관리해야 하므로, 운영 복잡성이 증가할 수 있다.
비용과 성능의 트레이드오프
가까운 Region을 선택하면, 성능이 향상되지만, 비용이 다소 증가할 수 있다.
멀리 있는 Region을 선택하면, 비용 절감이 가능하지만, 네트워크 지연이 발생한다.
따라서 균형 잡힌 선택이 필요하다.
☑️
한줄 요약
리전 선택은 단순히 데이터 저장 장소를 고르는 문제가 아니라, 규제 준수, 사용자 경험, 서비스 가용성, 비용을 모두 고려해야 하는 종합적인 의사결정임.
Amazon S3 인벤토리
정의
Amazon S3 인벤토리는 S3 버킷 또는 특정 객체 집합에 대해 객체 메타데이터를 목록화하여 제공하는 기능이다.
스토리지 관리, 규정 준수, 빅데이터 분석 가속화에 도움이 된다.
주요 활용
규정 준수 및 감사 : 객체의 복제 및 암호화 상태를 추적하고 보고할 수 있다.
워크플로우 가속화 : S3 동기식 List API의 부하를 줄이고, 예약된 대안을 제공한다.
빅데이터 처리 : Athena, Redshift SPecturm, Hive, Spark 등과 통합해 쿼리가 가능하다.
동작 방식
인벤토리는 CSV, ORC, Parquet 포맷의 파일로 제공된다.
주간 또는 일간 단위로 인벤토리를 생성한다.
지정된 소스 버킷의 객체 메타데이터를 수집하고, 목적지 버킷에 저장한다.
설정 시 지정할 수 있는 요소
포함할 객체 메타데이터 항목 (예 : 버전 ID 포함 여부)
모든 객체 버전을 포함할지 여부
인벤토리 파일 저장 위치
인벤토리 파일 압축 여부 (GZIP, ZIP)
생성 주기 (일별 / 주별)
데이터 분석 연계
Amazon Athena: 인벤토리 파일에 대해 SQL 쿼리 수행.
Amazon Redshift Spectrum: 대규모 데이터 웨어하우스 분석 가능.
Presto / Hive / Spark: 빅데이터 프레임워크와 통합해 분석 가속화
☑️
한 줄 요약
S3 인벤토리는 S3 객체의 메타데이터를 체계적으로 관리하고, 규정 준수·보안 감사·분석 작업을 단순화 및 가속화하는 강력한 도구이다.
Amazon S3 비용
기본 과금 원칙
사용한 만큼만 비용을 지불한다. (Pay-as-you-go)
최소 요금이 없으며, 저장한 객체의 크기/저장기간/스토리지 클래스에 따라 요금이 부과된다.
PUT, COPY, POST, LIST 요청이나, 수명 주기 규칙으로 클래스 이동 시에도 요청 요금이 발생한다.
Intelligent-Tiering은 자동 모니터링 및 계층 간 이동을 지원하며, 이동 시 추가 요금이 없다.
비용 발생 구간
스토리지 사용량
객체 크기 * 저장 일수 * 스토리지 클래스 단가
클래스마다 요금이 다르다. (예 : S3 Standard vs Glacier)
요청(Request) 비용
PUT, GET, LIST, COPY 요청 별 과금
데이터 전송 비용
무료 : 매월 첫 100GB 인터넷 송신, 동일 Region 내 전송, CloudFront로 전송
과금 : Region간 전송, 인터넷 송신
암호화 관련 비용
SSE-S3 (서버 측 기본 암호화) : 추가 비용 없음
SSE-KMS (KMS 키 사용 암호화) : KMS 요청 비용 추가 부과.
DSSE-KMS (이중 계층 암호화) : KMS 요청 + 키 관리 비용 발생
AWS Free Tier(무료 티어)
신규 AWS 고객은 다음 무료 제공:
5GB Amazon S3 Standard 스토리지.
매월 20,000건 PUT, COPY, POST 요청.
매월 2,000건 GET 요청.
15GB 인터넷 데이터 전송.
단, GovCloud 리전 제외.
☑️
한 줄 요약
Amazon S3는 “저장 용량 + 요청 + 데이터 전송” 세 가지가 주요 비용 요소이다.
초기 학습 단계에서는 무료 티어를 적극 활용하면 실습 비용을 절약할 수 있다.
Activity1
활동 설명
1) 상황 : 카페 주인은 직원들이 문서(조리 지침, 공급업체 정보, 급여, 규정 준수 교육 등)에 쉽게 접근할 수 있도록 하려 하지만, 문서는 직원만 접근 가능해야 한다.
2) 문제 : 직원별 접근 권한 제어가 필요하다.
3) 질문 : 소유자의 요구에 맞게, S3를 어떻게 설정할 수 있을까?
솔루션
1) 폴더 구분 : S3 버킷 내에 콘텐츠 유형별 폴더를 생성한다.
Cooking (조리 지침)
Vendors (공급업체 정보)
Payroll (급여
Conpliance (규정 준수)
2) IAM 정책 사용 : 사용자 직급에 맞게 엑세스 허용/거부 정책을 설정
예 : User A → Payroll 접근 가능
예 : User B → Vendors 접근 가능
다른 사용자 → 특정 폴더 접근 불가
3) 특징
공개 엑세스는 허용하지 않는다.
IAM 정책(그룹/개인)을 통해 사용자별 맞춤 엑세스를 제어.
S3 버킷 → 직원 역할 기반으로 안전하게 문서 공유 가능
☑️
한 줄 요약
Amazon S3 + IAM 정책을 사용하면 직원별로 필요한 정보에만 접근할 수 있도록 안전하게 제어할 수 있다.
즉, 폴더 단위 분리 + 사용자 맞춤 IAM 정책 적용이 핵심!
Cafe Lab : Cafe를 위한 정적 웹사이트 만들기
진화하는 카페 건축: 버전 1
V1: 소규모 기업용 정적 웹사이트 구축
Amazon S3에 웹사이트 호스팅
V2: 온라인 주문 기능 추가
EC2에서 웹 애플리케이션과 DB 배포
V3: 데이터베이스 유지·관리 강화
Amazon RDS로 DB 마이그레이션
V4: 보안 강화
Amazon VPC로 퍼블릭/프라이빗 서브넷 구성
V5: 역할 기반 액세스 제어
IAM 그룹/리소스 정책 적용
V6: 트래픽 증가 대비 확장성 강화
로드밸런서·EC2 오토스케일링, DB 분산
➡️ 핵심 포인트: S3를 활용해 정적 웹사이트를 시작점으로, 점차 보안·확장성·관리 편의성을 추가하며 아키텍처가 발전.
카페 웹사이트 랩 작업
실습 작업 내용
S3 버킷 생성 후 정적 웹사이트 콘텐츠 업로드
공개 읽기 권한 부여 버킷 정책 생성
S3 버킷에서 버전 관리 활성화
수명 주기 정책 설정 포함
리전 간 복제 활성화
➡️ 실제 환경에서 S3 기능을 직접 구성하며 웹사이트를 배포하는 실습.
디브리핑: 카페 웹사이트 랩
논의 주제
카페 웹사이트가 실수로 덮어쓰이거나 삭제되는 것을 어떻게 방지했는가?
→ 버전 관리 활성화로 데이터 보호
웹사이트 규모가 커질 때, 버전 관리 비용 절감을 위한 전략은 무엇인가?
→ 수명 주기 정책을 활용하여 오래된 버전을 자동 삭제/아카이빙
➡️ 핵심 교훈:
S3 버전 관리와 수명 주기 정책을 통해 데이터 무결성과 비용 효율성을 동시에 확보.
실습을 통해 단순 정적 웹사이트를 시작으로 점차 보안, 관리, 확장성을 고려하는 설계로 발전.
Section 6 : AWS WELL-Architected Framework 원칙을 스토리지에 적용
저장소를 위한 Well-Architected Framework 모범 사례
개요
AWS Well-Architected Framework는 6가지 핵심 요소로 구성된다.
각 요소는 클라우드 솔루션을 설계할 때, 반드시 고려해야 할 모범 사례와 핵심 질문을 포함한다.
이 슬라이드에서는 그 중 S3와 관련된 주요 요소를 소개한다.
저장소와 관련된 핵심 요소들
1) Security (보안)
데이터 보호 및 접근 제어 정책 강화.
암호화, IAM 권한 관리, 최소 권한 원칙 적용.
2) Reliability (안정성)*
장애 발생 시 데이터 손실을 최소화.
S3 버전 관리, 다중 AZ 저장, 리전 간 복제를 통한 복구 전략 포함.
3) Performance Efficiency (성능 효율성)*
워크로드 특성에 맞는 스토리지 클래스 선택.
요청 패턴과 데이터 접근 빈도에 따라 S3 Standard, S3 IA, S3 Glacier 등 최적화.
4) Cost Optimization (비용 최적화)*
사용량 기반 과금 → 필요한 만큼만 지불.
수명 주기 정책(Lifecycle Policy)으로 오래된 데이터 아카이빙/삭제.
S3 Intelligent-Tiering을 통해 자동 비용 절감.
☑️
한줄 요약
S3 저장소를 설계할 때는 보안, 안정성, 성능, 비용 최적화의 균형을 맞춰야 함.
Well-Architected Framework는 이런 요소들을 점검하고, 효율적이고 안전한 클라우드 아키텍처를 만드는 가이드라인 역할을 함.
모범 사례 접근 방식 : 데이터 보호 - 저장된 데이터 보호
핵심 모범 사례
저장 시 암호화 수행
모든 데이터는 저장 전에 암호화되어야 하며, 암호화되지 않은 데이터는 목록화 및 관리가 불가능하다.
무단 접근/공개 상황에서도 데이터 기밀성을 유지한다.
엄호화되지 않은 상태로 저장이 금진된다.
접근 제어 실행
최소 권한 원칙을 적용하여, 필요한 사용자만 접근을 허용한다.
IAM 정책/버킷 정책 활용하여 사용자와 리소스 단위로 접근을 제한한다.
정기적 백업 및 버전 관리로 실수나 오류로 인한 데이터 손실을 방지한다.
중요 데이터는 별도 계정/리전으로 분리하여 무결성을 보장한다.
Amazon S3에서 제공하는 지원 기능
기본 암호화 지원 : SSe-S3, SSE-KMS 등 다양한 옵션 제공
기본 비공개 설정 : 액세스 권한은 반드시 명시적으로 부여해야 한다.
버전 관리 : 실수로 인한 삭제덮어쓰기를 방지한다.
공개 엑세스를 차단 기능 : 실수로 전체 공개를 방지한다.
☑️
한 줄 요약
데이터 보호를 위해 저장 시 암호화 + 접근 제어는 필수.
Amazon S3는 자동 암호화, 비공개 기본 설정, 버전 관리, 공개 차단 기능을 통해 보안 강화를 지원.
최적의 설계 원칙은 최소 권한 접근과 정기적 백업 및 분리 저장.
모범 사례 접근 방식 : 아키텍처 선택 (Performance Efficiency)
핵심 모범 사례
사용 가능한 서비스 및 기능 이해
다양한 클라우드 서비스와 기능을 파악하고 활용한다.
워크로드 특성에 맞는 최적의 솔루션을 선택해야 성능 향상이 가능하다.
비용 요소 반영
스토리지나 아키텍처 선택 시, 성능뿐 아니라, 비용도 고려해야 한다.
S3 관련 적용 포인트
유연한 객체 스토리지 선택
구조적/비정형 데이터를 모두 저장할 수 있는 다양한 옵션을 제공한다.
전송 최적화 기능
클라이언트와 버킷 간 거리가 멀어도, 빠른 업로드를 가능하게 하는 S3 전송 가속
대용량 파일을 효율적으로 업로드할 수 있는 멀티파트 업로드 제공
엑세스 패턴 기반 비용 최적화
S3 Intelligent-Tiering: 액세스 패턴을 자동 분석하여, 가장 비용 효율적인 스토리지 클래스로 객체를 이동.
☑️
한 줄 요약
성능 효율성을 위해서는 사용 가능한 다양한 서비스와 기능을 이해하고 활용해야 함.
Amazon S3는 대규모 데이터 저장·전송·최적화 기능을 제공하며, 비용까지 고려한 아키텍처 선택을 지원.
핵심 전략: 전송 효율(Transfer Acceleration & Multipart Upload) + 자동 비용 최적화(Intelligent-Tiering).
모범 사례 접근 방식 : 비용 효율적인 리소스 선택 (Cost Optimization)
핵심 모범 사례
비용 분석 수행
다양한 사용 사례에 대해 시간 경과에 따른 비용 분석이 필요하다.
워크로드는 시간에 따라 사용 패턴과 요구 사항이 변할 수 잇으므로, 주기적으로 비용 효율성을 점검해야 한다.
비용 최적화 원칙 적용
적절한 서비스/리소스/구성을 사용하여 비용 절감을 극대화한다.
사용 수준에 따라 자동으로 더 효율적인 리소스로 전환하는 기능 활용
S3 관련 적용 포인트
스토리지 클래스 최적화
다양한 스토리지 클래스를 제공하여, 수명 주기 규칙으로 데이터를 자동 이동시킨다.
S3 Intelligent-Tiering : 엑세스 패턴을 분석하여 가장 비용 효율적인 스토리지 클래스로 자동 변환한다.
결과적으로 성능과 비용 절감을 동시에 지원한다.
S3 인벤토리 활용
조직 내에서 S3가 어떻게 사용되는지 감사/분석이 가능하다.
실제 사용 현황을 기반으로 비용 효율적인 선택을 내리는데 도움이 된다.
☑️
한 줄 요약
비용 최적화 핵심 전략:
수명 주기 관리 + Intelligent-Tiering → 데이터 자동 최적화
S3 인벤토리 활용 → 사용 패턴 분석 및 개선점 도출
모범 사례 접근 방식 : 장애 관리 (Reliability)
핵심 모범 사례
다중 위치 배포
장애는 피할 수 없으므로, 복원력 확보가 중요하다.
고가용성을 위해 여러 가용 영역에 워크로드 요소를 분산 배치한다.
“장애는 피할 수 없으며, 결국 모든 것은 실패한다” 그렇기에, 대비가 필요하다.
S3 적용 포인트
높은 내구성 및 가용성
99.999999999% 내구성과 99.99% 가용성을 제공하도록 설계 되었ㄷ.
필요 시 언제든 데이터에 접근이 가능하다.
중복 저장
사용자 지정에 따라 S3 객체가 여러 가용 영역에 자동 복제되어 저장된다.
무결설 검증
체크섬을 활용하여, 데이터가 손상되지 않았는지 정기적으로 확인한다.