AWS_Cloud

8,9강 강의 및 실습 복습 S3와 CloudFront

Chansman 2025. 4. 9. 11:04

🚀 AWS 핵심 서비스 완벽 정리: S3와 CloudFront

AWS의 가장 대표적인 서비스 중 두 가지인 S3CloudFront에 대해 개념과 실습 내용을 정리해 보았습니다. 초보자도 쉽게 이해할 수 있도록 구성했습니다.


🪣 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 서비스입니다. 데이터 저장과 빠른 콘텐츠 전송을 위해 각 서비스의 특징과 활용법을 잘 익혀두세요. 특히 비용과 성능을 최적화하기 위한 다양한 전략과 대체 서비스도 꼭 기억하시기 바랍니다. 🚀🌐✨