Amazon Cloudfront 비용을 절감하는 방법
지난 며칠간 트래픽이 폭발적으로 증가한 사이트가 있습니다.W3 Total Cache 플러그인과 Amazon Cloudfront를 사용하여 사이트에서 이미지와 파일을 전달하고 있습니다.
문제는 Cloudfront의 비용이 지난 주에 500달러에 육박할 정도로 매우 크다는 것입니다.비용을 줄일 수 있는 방법이 있나요?다른 CDN 서비스를 이용하는 건 어때요?
저는 CDN이 처음이라 잘 구현되지 않을 수 있습니다.클라우드 프런트 배포를 생성하여 W3 Total Cache Plugin으로 구성했습니다.하지만 저는 S3를 사용하지 않기 때문에 어떻게 해야 할지 모르겠습니다.솔직히 Cloudfront와 S3의 차이점은 잘 모르겠습니다.
여기서 힌트 좀 주실 분?
Cloudfront와 S3의 차이점은 잘 모르겠습니다.
그건 쉬워요.S3는 데이터 저장소입니다.파일을 저장하고 확장성이 매우 뛰어납니다(한 번에 1,000명까지 쉽게 확장할 수 있습니다).문제는 중앙 집중화(즉, 세계 한 곳에서 서비스를 제공)된다는 것입니다.
CloudFront는 CDN입니다.파일을 전 세계에 캐시하여 보다 빠르게 처리할 수 있습니다.눈을 가늘게 뜨면 파일을 '저장'하고 있는 것처럼 보이지만 언제든지(또는 새 노드를 부팅하면) 캐시가 손실될 수 있으므로 원본에 파일이 여전히 필요합니다.
파일당 히트 수가 너무 적으면 CF는 실제로 피해를 줄 수 있습니다.예를 들어 도쿄에서는 CF에 노드가 20개 있는 경우가 있습니다.20개의 CF 노드가 모두 파일을 캐시하기 전에 파일에 대해 100개의 요구가 필요할 수 있습니다(요구는 랜덤하게 배포됩니다).100개의 리퀘트 중 20개는 빈 캐시에 도달하고 파일을 가져올 때 200ms의 지연이 발생합니다.일반적으로 파일을 장기간 캐시합니다.
저는 S3를 사용하지 않고 있습니다.그래야 할지 모르겠어요
아마 아닐 것입니다.사이트의 미디어가 큰폭으로 증가할 것으로 예상되는 경우는, S3 의 사용을 검토해 주세요.(즉, 많은 양의 사진을 업로드합니다.)
비용을 줄일 수 있는 방법이 있나요?다른 CDN 서비스를 이용하는 건 어때요?
그것은 전적으로 당신의 사이트에 달려 있습니다.몇 가지 아이디어:
1) 적절한 헤더를 사용하고 있는지 확인합니다.유효기간이 너무 짧지 않은지 확인합니다(이상적으로는 며칠, 몇 주, 몇 개월로 하는 것이 좋습니다).
"최적의 방법"은 X분, 시간 또는 일마다 만료되어야 하는 인덱스 페이지를 제외하고 페이지를 만료하지 않는 것입니다(업데이트 속도에 따라 다름).모든 페이지/이미지에 캐시할 수 있는 기간이 표시되어 있는지 확인합니다.
2) 위와 같이 CF는 각 페이지가 캐시 시간당 100회 이상 요구될 경우에만 유용합니다.수백만 페이지가 있는 경우, 각각 몇 번인가 요구되었을 경우, CF는 유용하지 않을 수 있습니다.
3) 아시아로부터의 요구는 미국으로부터의 요구보다 훨씬 비싸다.Toyko에서 더 인기가 있다면 Toyko에서 서버를 시작하는 것을 고려해보세요.
4) 웹 서버 로그를 보고 CF가 각 자산을 요구하는 빈도를 확인합니다.캐시 헤더가 예상보다 자주 설정되면 캐시 헤더의 설정이 잘못되어 있는 것입니다."cache this for months"를 설정하면 하루에 몇 개의 요구(새로운 서버 부팅 시 등)만 표시되며, 새 파일을 게시할 때 수백 개의 요구(예: CF 엣지 노드당 1개의 요구)만 표시됩니다.
설정에 따라서는, 다른 CDN 의 가격이 저렴할 수 있습니다.또, 서버에 따라서는, 그 외의 설정도 코스트가 적게 드는 경우가 있습니다(예를 들면, 많은 작은 파일을 서포트하고 있는 경우는, EC2로 독자적인 캐싱을 실시하는 것이 좋을지도 모릅니다.
클라우드 플레어를 시도해 보세요.완전한 CDN은 아니기 때문에 클라우드 프런트로서의 모든 기능을 갖추고 있지는 않을 수 있지만 기본 패키지는 무료이며 서버에서 많은 트래픽을 오프로드합니다.
Amazon Cloudfront 비용 2가지 요소 기준
- 요청 수
- GB 단위로 전송되는 데이터
솔루션
- 이미지 요청을 줄입니다.작은 이미지를 하나의 이미지로 조합하여 https://www.w3schools.com/css/tryit.asp?filename=trycss_sprites_img (이미지 스프라이트)를 사용합니다.
- 비디오 크기가 크고 CDN 해안에서 너무 높기 때문에 비디오 파일에 CDN을 사용하지 마십시오.
어떤 성분이 청구서를 구성합니까?W3 Total Cache 플러그인에서 확인해야 할 것은 CloudFront로 전송되는 비활성화 요청 수입니다.각 변경에 대해 대량의 무효화 경로를 보내는 것으로 알려져 있으며, 이는 합산될 수 있습니다.
이와는 별도로, 지출이 예측 가능한 경우 CloudFront Security Savings Bundle을 사용하여 최소 1년간 비용을 절감함으로써 최대 30%를 절감할 수 있습니다.셀프 서비스이므로 콘솔에서 등록하고 사용량이 증가함에 따라 추가 약정을 구입할 수 있습니다.
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/savings-bundle.html
Cloudfront에는 3가지 가격 클래스가 있으며, 이는 데이터의 복제 정도에 영향을 미치지만 동시에 비용을 절감할 수 있습니다.
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html
핵심은 다음과 같습니다. "모든 엣지 위치가 포함되지 않은 가격 클래스를 선택하더라도 CloudFront는 여전히 자신의 가격 클래스에 포함되지 않은 지역의 엣지 위치에서 요청을 처리할 수 있습니다.이 경우 더 비싼 지역에 대한 요금이 부과되지 않습니다.대신 가격 클래스에서 가장 저렴한 지역에 대한 요금이 부과됩니다."
즉, 가격 클래스 100(가장 싼 것)을 사용해도, 3 미만의 요금을 지불하지 않는 지역에서는 레플리케이션을 받을 수 있습니다.
언급URL : https://stackoverflow.com/questions/22752280/how-to-reduce-amazon-cloudfront-costs
'programing' 카테고리의 다른 글
스프링 부트 Mongo Repository 유닛 테스트 방법 (0) | 2023.03.21 |
---|---|
스프링 - 여러 스프링 데이터 모듈이 발견되어 엄격한 저장소 구성 모드로 들어갑니다. (0) | 2023.03.21 |
고급 사용자 지정 필드를 표시하는 JSON API - WordPress (0) | 2023.03.21 |
최신 Spring Boot + Data JPA 및 휴지 상태 설정을 사용하여 ddl 작성 스크립트를 생성하는 방법 (0) | 2023.03.21 |
리액트에서 쉼표로 숫자를 포맷하려면 어떻게 해야 합니까? (0) | 2023.03.21 |