AWS ‐ CloudFront & S3 연동 - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 CDN(콘텐츠 전송 네트워크)

  • 데이터 사용량이 많은 애플리케이션 웹 페이지 속도를 높이는 상호 연결된 서버 네트워크
  • 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달하게끔 해준다.
  • CDN의 주요 목적은 대기 시간을 줄이거나 네트워크 비용을 감소시키는 것이다.
  • CDN은 클라이언트와 웹 서버 간 중간 서버를 두어 효율성을 높인다. 이러한 CDN 서버는 클라이언트 - 서버 통신의 일부를 관리한다.
  • 웹 서버에 대한 웹 트래픽을 줄이고, 대역폭 소비를 줄여 애플리케이션의 사용자 환경을 개선한다.

📚 CDN의 이점

  • CDN은 웹 사이트 성능을 높이고 핵심 네트워크 인프라를 지원하는 여러 가지 이점을 제공한다.
    • 페이지 로드 시간 단축 : 페이지 로드 시간이 너무 느리면 트래픽이 감소할 수 있다. CDN이 반송률을 줄이고 사용자의 경험을 개선할 수 있다.
    • 대역폭 비용 절감 : 외부로부터의 모든 요청은 네트워크 대역폭을 사용하기 때문에 네트워크 대역폭 비용이 상당히 높다. 캐싱 및 기타 최적화를 통해 CDN은 오리진(원 서버)가 제공해야 하는 데이터 양을 줄여 웹 사이트 소유자의 호스트 비용을 절감할 수 있도록 한다.
    • 콘텐츠 가용성 재고 : 한 번에 너무 많은 트래픽이 발생하면 웹 사이트가 중단될 수 있다. CDN 서비스는 많은 트래픽을 처리하고 웹 서버 로드를 줄일 수 있다. 또한 하나 이상의 CDN 서버가 오프라인으로 전환되면 다른 운영 서버가 해당 서버를 대체하여 서비스가 중단되지 않도록 도와준다.
    • 웹 사이트 보안 강화 : 분산 서비스 거부 공격은 대량의 가짜 트래픽을 웹 사이트로 전송하는 악의적 공격이다. CDN은 여러 중간 서버 간 로드를 분산해 오리진 서버에 미치는 영향을 줄임으로써 트래픽 금증을 처리할 수 있다.

📚 CloudFront & S3 연동

  • CloudFront를 사용하는 이유는 위에서 정리를 했지만 S3에 왜 CloudFront를 사용하는지에 대해서 다시 정리해보자.

image

  • S3에 직접 접근을 하게 된다면 S3의 주소가 노출될 위험이 있다. S3 컨텐츠에 퍼블릭 액세스 접근을 차단하고 CloudFront를 거치도록 하여 CloudFront의 보호 기능들을 사용해 S3에 대한 직접적인 부하 감소 그리고 컨텐츠 보안 유지가 가능하다.
  • 회사에서 프로젝트를 하면서 서비스 개선 요청 시 이미지를 업로드하는 요구사항이 접수되었고 이를 위해 CloudFront와 S3를 연동, 그리고 이 리소스를 보기 위해 Signed URL을 도입한 계기 등을 정리해보자.

[ 이해를 돕기 위한 그림 ]

📚 Signed URL(서명된 URL)

  • S3 버킷의 이미지에 대한 액세스를 제한하고자 Signed Cookie, Signed URL, Presigned URL 등 여러가지 방법들을 선임 개발자분들의 조언과 더불어 구글링을 통해 나름대로 공부를 했고 그 내용을 비교해서 간단히 정리해보려고 한다.
Signed Cookie Signed URL PreSigned URL