Content Delivery Netwokr 로 컨텐츠 전송 네트워크를 뜻한다.
서로 다른 Edge location 에 미리 캐싱해서 읽기 성능을 높일수 있다.
파일들을 분배하고 Edge 에서 캐시한다.
그리고 OAC 를 사용해서 보안을 높인다고 한다.
OAC 는 OAI 를 대신하고
Cloud Front 를 사용해서 전세계 어느곳에서도 S3 에 파일을 업로드 가능하다.
HTTP 준수 하는 모든것을 Cloud front 적용가능
ALB,EC2,S3 website,,,
먼저 HTTP 요청 보내면 Edge loaction 으로 보낸다.
edge loaction 에 캐시되어있으면 가져오고 그렇지 않으면 origin 에 가ㅈ서 가저온다.
가져오면 local cache 에 저장한다.
edge loaction 이 사설 aws 를 통해서 s3 에서 데이터 가져오고 edge locaiton 에 캐싱한다. 그리고 결과를 유저에게 보낸다.
그래서 특정 region 에 있는걸 전세계 edge loaction 으로 분산가능하다고 한다.
그리고 cloudfront vs 분산 복제 를 생각해볼수있는데
cloudfront 는 global edge loaction 이다.
전세계 대상으로 정적에 용이하다
분산복제는 말그대로 지역마다 복제를 두지만 일부 리전에만 낮은 지연시간으로 제공한다.
그래서 그 차이를 두고 사용하면 된다고 한다.
캐시 무효화 라고 하는것이다.
기존의 방식은 캐시의 TTL 이 만료되면 Update 된 content 를 받게된다.
근데 전체 or 일부 캐시를 강제로 새로고침해서 TTL 삭제가 가능하다.
그게 캐시 무효화이다.
만약 내가 만든 서비스가 정말전세계적으로 사람들이 사용한다고 가정해보자.
한지역에서 제공하는 서비스가 타국까지 도착하기에는 Router로 이동되어지는데 Router 거치는 동안 수많은 홉으로 인해 상당한 지연이 발생하게 된다.
그래서 연결이 끊길수도 있다.
하지만 최대한 빠르게 AWS 네트워크를 통하게 한다면?
위 문제를 해결할수 있게된다.
그게 global accelator 이다.
글로벌엑셀레이터를 공부하기전에 이 개념을 알아야하는데
Unicast IP 는 하나의 서버가 하나의 IP 를 가지는것이고
Anycast IP 는 모든 서버가 동일한 IP 주소를 가지는것이다 가장 가까운 IP 로 Routing 하게된다.
우리는 ANyCastIP 를 주로사용한다고 한다.
어플리케이션을 Routing 하기위해서 AWS 내부 글로벌 VPC 를 사용한다.
미국에서 한국으로 간다고 생각하면 위의 문제 말고 미국 지역에서 가장 가까운 Edge Location 으로 부터 내부 AWS 네트워크를 거쳐 한국 지역 ALB로 바로 연결된다고 한다.
AnyCast IP 는 트래픽을 사용자와 가장 가까운 Edge location 으로 보내준다. 그리고 Edge location 은 Private AWS VPC 를 통해서 ALB로 도착.
이 두개의 차이를 보자
CloudFront 는 이미지나 비디오 처럼 캐시 가능한 컨텐츠의 성능을 높인다.
동적 컨텐츠의 성능을 향상시키고 Content 모두 Edge Location 으로 이동되고 거기에 캐시 되어있는 데이터를 받는다.
Global Accelerator 는 TCP 나 UDP 사용하는 애플리케이션의 성능을 향상시킨다
네트워크 패킷들이 Edge Location 을 통해 한개 이상 Region application 으로 프록시된다.
HTTP 가 아닌것들에 매우 적합하다고 한다.
위 차이점을 보고 맞게 사용하면 될꺼같다.