🚀 AWS 핵심 서비스 완벽 정리: S3와 CloudFront
AWS의 가장 대표적인 서비스 중 두 가지인 S3와 CloudFront에 대해 개념과 실습 내용을 정리해 보았습니다. 초보자도 쉽게 이해할 수 있도록 구성했습니다.
🪣 S3 (Simple Storage Service)
📌 S3 기본 개념
- S3는 AWS가 제공하는 객체(Object) 스토리지 서비스입니다.
- 객체 단위로 데이터를 관리하며, 객체는 고유한 ID(키), 데이터, 메타데이터로 구성됩니다.
- HTTP(S)를 통해 접근하며, 파일의 일부분만 수정할 수 없고 전체 파일을 덮어써야 합니다.
✅ S3 객체 특징 요약
- 객체는 독립적으로 존재하며 확장성이 뛰어남
- 수정 빈도 낮은 데이터 저장에 적합 (이미지, 동영상, 백업, 로그 등)
- 높은 내구성 (여러 가용 영역에 데이터 복제)
✅ 스토리지 유형 비교
유형설명용도 예시
객체 스토리지 (S3) | 파일의 일부 수정 불가능, 전체 덮어쓰기 | 이미지, 동영상, 백업 데이터 |
파일 스토리지 (EFS) | 파일의 일부 수정 가능, 폴더 계층 구조 사용 | 홈 디렉터리, 공유 데이터 |
블록 스토리지 (EBS) | 블록 단위 관리, 빠른 입출력 속도 | 데이터베이스(DB), 운영 체제 디스크 |
💻 S3 실습 과정
✅ 버킷(Bucket) 생성 및 객체 업로드
- S3에서는 버킷이라는 저장소를 먼저 만들고, 그 안에 객체를 업로드하여 사용합니다.
- 버킷 이름은 전 세계적으로 유일해야 하며 URL에 포함됩니다.
✅ 정적 웹사이트 호스팅
- HTML 파일을 업로드하고 정적 웹사이트 호스팅을 설정하여 웹페이지로 배포할 수 있습니다.
- 퍼블릭 액세스 및 버킷 정책을 설정하여 외부 접근을 허용합니다.
✅ 사이버덕(Cyberduck)을 통한 접근
- 외부 프로그램으로도 S3 버킷 접근 가능
- 키 발급 및 IAM 권한을 이용해 관리
💡 S3 비용 최적화 팁
S3는 데이터 다운로드 횟수와 용량이 많아지면 비용이 증가할 수 있습니다. 다음의 스토리지 클래스를 통해 비용을 효율적으로 관리할 수 있습니다.
✅ 스토리지 클래스 요약
클래스비용 특성사용 용도
Standard | 보관비용↑, 접근비용↓ | 자주 접근하는 데이터 |
Standard IA | 보관비용↓, 접근비용↑ | 자주 접근하지 않는 데이터 |
Glacier | 보관비용 매우 낮음, 접근 속도 느림 | 장기 보관 데이터 |
✅ 자동화된 라이프사이클 관리
- 객체의 수명 주기(Lifecycle)를 설정하여 자동으로 비용 절감 가능
- Intelligent-Tiering을 통해 접근 빈도를 자동 모니터링하여 최적의 클래스로 이동 가능
✅ S3 호환 대체 서비스 추천
- 비용을 절약하기 위해 Cloudflare R2 같은 S3 호환 서비스를 고려할 수 있습니다.
- R2는 데이터 전송(다운로드) 비용이 없습니다.
- MinIO는 온프레미스 환경에서 구축 가능한 S3 호환 스토리지입니다.
🌎 CloudFront (CDN 서비스)
📌 CloudFront 기본 개념
- CloudFront는 AWS의 CDN (Content Delivery Network) 서비스입니다.
- 전 세계의 엣지 로케이션에서 데이터를 캐싱하여 빠른 콘텐츠 전달을 지원합니다.
- 웹 콘텐츠(이미지, 동영상, HTML, 자바스크립트 등)의 성능 향상과 DDoS 보호 기능 제공
✅ 기본 용어
- 디스트리뷰션(배포): CloudFront의 기본 단위
- 오리진(Origin): 원본 콘텐츠 저장 위치 (S3, EC2, ELB 등)
✅ 캐시 히트(Cache Hit)와 미스(Cache Miss)
상태설명
Hit | 엣지 로케이션에 캐싱된 데이터를 제공 |
Miss | 엣지 로케이션에 데이터가 없어 원본에서 가져와 캐싱 |
💻 CloudFront 실습 과정
✅ S3와 CloudFront 연동
- S3 버킷을 오리진으로 설정하여 CloudFront 배포 생성
- OAC(Origin Access Control)를 설정하여 보안 강화 (외부 접근 금지, CloudFront 통해서만 접근 가능)
✅ 배포 설정 과정
- 배포는 생성에 약 5~10분 소요
- 루트 객체 지정 (index.html 등)을 통해 기본 페이지 설정 가능
- 배포 후 제공되는 도메인으로 접근 가능
✅ 캐시 무효화(Invalidation)
- 캐시된 데이터가 오래되었을 때 사용하는 기능
- 새로 업데이트된 데이터를 반영하려면 무효화가 필요
- 주기적인 무효화가 번거롭다면 고유한 파일 이름(해시값)을 사용하여 해결 가능
🧠 캐싱 전략 및 Stale Data 관리
- Stale Data란 캐싱된 데이터가 원본보다 오래된 경우를 의미합니다.
- 캐시 무효화를 하지 않으면 사용자에게 오래된 정보가 제공될 수 있으므로 주의가 필요합니다.
- 데이터가 빈번하게 변경될 때는 무효화 전략을 필수로 고려하거나 고유 키(파일 이름)을 부여하는 것이 좋습니다.
📌 정리 요약 & 복습 체크리스트
✅ S3 핵심 포인트
- 객체 단위 관리, 수정 불가능(덮어쓰기 필요)
- 정적 웹사이트 호스팅 가능
- 비용 절약을 위해 다양한 스토리지 클래스 활용
- Cloudflare R2 등 S3 호환 서비스 고려
✅ CloudFront 핵심 포인트
- 콘텐츠 전달 성능 향상을 위한 CDN 서비스
- 캐시 관리 중요 (무효화 또는 고유 키 전략 사용)
- OAC로 보안 강화, 외부 직접 접근 방지
🎯 마무리
S3와 CloudFront는 웹 서비스를 구성할 때 필수적인 AWS 서비스입니다. 데이터 저장과 빠른 콘텐츠 전송을 위해 각 서비스의 특징과 활용법을 잘 익혀두세요. 특히 비용과 성능을 최적화하기 위한 다양한 전략과 대체 서비스도 꼭 기억하시기 바랍니다. 🚀🌐✨
'AWS_Cloud' 카테고리의 다른 글
11강 Iam 강의 및 실습노트 AWS Cloud (0) | 2025.04.09 |
---|---|
10강 Route53 강의 및 실습노트 AWS Cloud (0) | 2025.04.09 |
8강 S3 compatible storage (AWS Cloud) (0) | 2025.04.09 |
9강 Cloudfront 실습 노트 (AWS Cloud) (0) | 2025.04.08 |
8강 S3 실습 노트 (AWS Cloud) (0) | 2025.04.08 |