반응형
CDN 이란?
CDN(Content Delivery Network)은 전 세계에 분산된 서버 네트워크를 통해 콘텐츠를 빠르고 효율적으로 제공하는 기술입니다.
CDN 장점
- 속도 향상: 사용자와 가까운 서버에서 콘텐츠를 제공하여 로딩 시간을 단축합니다.
- 비용 절감: 캐싱을 통해 원본 서버의 부하를 줄이고 데이터 전송 비용을 절감합니다.
- 확장성: 트래픽 급증에도 안정적으로 콘텐츠를 제공할 수 있습니다.
- 글로벌 서비스 지원: 전 세계 사용자에게 균일한 성능을 제공합니다.
- 보안 강화: DDoS 방어, HTTPS 지원, WAF 통합으로 보안을 강화합니다.
CDN을 구축한 이유
- 트래픽 증가로 인한 S3 객체 조회 비용 증가
- 서비스 트래픽이 증가하면서 S3에서 정적 콘텐츠(이미지, 동영상, JavaScript 파일 등)를 직접 조회하는 빈도가 늘어났습니다. 이로 인해 S3의 데이터 전송 비용이 크게 증가했습니다.
- 원본 서버(S3)의 부하를 줄이고 비용을 최적화할 필요가 있었습니다.
- 글로벌 사용자 대상의 콘텐츠 로딩 속도 개선
- 프로젝트가 글로벌 서비스를 목표로 확장되면서, 지리적으로 먼 지역의 사용자들은 콘텐츠 로딩 속도가 느려지는 문제가 발생했습니다.
- 사용자 경험(UX)을 개선하기 위해 콘텐츠를 빠르게 제공할 수 있는 솔루션이 필요했습니다.
이 두 가지 문제를 해결하기 위해 AWS CloudFront를 사용해 CDN을 구축했습니다.
CloudFront 배포 생성
- CloudFront 배포 생성
- AWS Management Console에서 CloudFront로 이동합니다.
- "배포 생성" 버튼을 클릭합니다.
AWS CloudFront CloudFront 배포 생성 배포 생성 - 1 - 원본 도메인 이름: S3 버킷의 도메인 이름을 선택하거나 입력합니다.
- 원본 경로: 기본적으로 비워둡니다.
- 원본 액세스: S3 버킷과 CloudFront 간의 보안을 강화하려면 OAI(원본 액세스 아이덴티티)를 사용합니다.
- "원본 액세스 아이덴티티(OAI)"를 생성하고 S3 버킷 정책을 복사해줍니다.
배포 생성 - 2 - 기본 캐시 동작을 설정합니다.
- 뷰어 프로토콜 정책: "Redirect HTTP to HTTPS" 또는 "HTTPS Only"를 선택합니다.
- 캐싱 정책: "CachingOptimized" 또는 필요에 따라 사용자 정의합니다.
배포 생성 - 3 배포 생성 - 4
- "원본 액세스 아이덴티티(OAI)"를 생성하고 S3 버킷 정책을 복사해줍니다.
- WAF (Web Application FireWall) 을 활성화하면 비용이 추가적으로 발생할 수 있으니 확인 후에 필요하다면 활성화합니다.
배포 생성 - 5 - "가격 분류" 항목에서 CloudFront 가 적용될 리전을 선택할 수 있습니다.
생성된 배포의 원본탭 - S3 정책 수정
- CloudFront 생성 중 복사한 정책을 S3 버킷 정책에 적용
3. CloudFront 도메인 적용
1. CloudFront 대체 도매인 생성
2. Route53 레코드 추가
4. 속도 비교
메인페이지의 배너에 사용되는 가장 큰 사이즈의 이미지를 테스트 해보았습니다.
- CDN 적용 전
- CDN 적용 후
결과적으로 242ms 에서 136ms 로 1.8배 정도 빨라진 것을 확인할 수 있었습니다.
반응형
'DevOps' 카테고리의 다른 글
[우당탕탕 AWS]RDS 인스턴스 스케일 따운! (0) | 2024.10.22 |
---|---|
[우당탕탕 AWS] 신규 개발 및 운영환경 구성 (12) (3) | 2024.10.17 |
[우당탕탕 AWS] EC2, ELB, Route53 을 이용한 운영환경 구성 (11) (1) | 2024.10.15 |
[우당탕탕 AWS]AWS SES에 이메일 연동 및 메일 전송하기 (9) (0) | 2024.09.25 |
[우당탕탕 AWS] S3 CORS Error 해결하기: 버킷 정책 수정 방법 (7) (1) | 2024.09.23 |