가끔 소프트웨어 업데이트를 배포하는 EC2에서 실행되는 애플리케이션이 존재할 때 소프트웨어가 새로 업데이트되면 요청을 많이 받게 되며 이 때 컨텐츠는 네트워킹을 통해 다수에게 배포되는데 비용이 많이 듦 이를 위해 애플리케이션을 변경하거나 아키텍팅을 다시 하는 일 없이 비용과 CPU를 최적화하는 쉬운 방법이 무엇일까
Our application current state
애플리케이션의 현재 상태
전형적인 ELB와 ASG 개발 애플리케이션이 있을 때 이는 다중 AZ에 걸쳐 작동하며 M5 인스턴스는 소프트웨어 업데이트를 배포 또한 소프트웨어 업데이트는 모두 Amazon EFS에 위치
Easy way to fix things!
위의 애플리케이션에서 전세계로 확장하며 CPU 사용률을 줄이고 비용을 절감하기 위해 CloudFront를 상위에 두면 아키텍처 변화 없이 수행 가능
Why CloudFront?
위처럼 CloudFront를 사용하면 아키텍처에는 변화가 없음
엣지에서 소프트웨어 업데이트 파일은 동적이 아니라 정적이라서 절대 바뀌지 않으며 캐시에 저장됨
EC2 인스턴스는 서버리스가 아니지만 CloudFront는 서버리스라서 확장이 가능
ASG가 많이 확장하지 않아 EC2와 네트워크, EFS 비용을 크게 절감할 수 있으며 가용성도 확보할 수 있음