CloudFront / GlobalAccelerator

최수환·2022년 10월 13일
0

AWS-SAA

목록 보기
20/23
post-thumbnail

CloudFront

CDN(Content Delivery Network)라 부르며, 전 세계에 걸쳐 저지연의 속도 로 사용자에게 컨텐츠를 전달할 수 있는 캐싱 서비스이다.
📌 Elastic cache, DAX는 KB수준의 작은 데이터를 캐싱하는데 적합하지만 Cloudfront는 이미지,비디오,스트리밍 데이터등 큰 단위의 데이터를 캐싱하는데 적합하다.
📌 정적컨텐츠 (이미지,비디오,스트리밍 영상 등)를 캐싱하여 전달한다. <> 동적컨텐츠 X
📌 프로토콜 = HTPP / HTTPS

Cloudfront를 사용하는 이유는 예를들어, 사용자가 한국에 위치하는데 미국에서 데이터를 전송해서 받는다면 이것은 매우 느리고 비효율적이기 때문이다.
마치 돈을 인출하기 위해서 해당 은행에 가지 않고 곳곳에 배치된 ATM에 가서 인출하는것과 같다.
( 우리가 흔히 아는 NETFLIX도 이 CDN을 이용하여 컨텐츠를 전달한다. )

전세계에 216개의 edge locations이 배치되어 있어 사용자의 위치에 가장 근접한 edge location에서 미리 캐싱된 데이터를 전달하는 방식이다.

Origin

곳곳에 배치된 edge locations에 컨텐츠를 전달하는 기원을 Origin이라 하며, Origin은 크게 세가지 서비스가 될 수 있다.

  • S3

    S3를 Origin으로 설정한 경우 OAI(Origin Access Identity)를 사용할 수 있다.

  • EC2

    EC2가 Origin이 되려면 반드시 퍼블릭 서브넷안에 존재해야 한다.
  • ALB

    ALB가 Origin이 되려면 반드시 퍼블릭 서브넷안에 존재해야 한다.
    💡 만약 EC2가 프라이빗서브넷에 존재해 Origin이 될 수 없다면 해당 EC2를 퍼블릭 서브넷에 있는 ALB에 연결 후 ALB를 Origin으로 사용하면 된다.
    💡 Cloudfront는 NLB(TCP, UDP프로토콜)가 아닌 ALB와 같이 존재한다.

Origin Groups


만약 Origin이 하나라면 가용성이 낮고 , 재해 복원력이 낮을 것이다. 따라서 위 그림처럼 Second Origin을 만들어 다른 EC2 또는 S3를 지정하고 Origin Groups로 묶어서 재해가 발생하면, 다른 Second Origin으로 페일오버 후 정상적으로 컨텐츠 배포를 가능하게 한다.

보안

  • Field Level Encryption

    쉽게 말해 edge location을 암호화 하는 방법으로 암호화된 edge location에 있는 컨텐츠 또한 암호화 되어 HTTPS를 통한 전달에 있어 보안을 높일 수 있다.

  • 전송 중 암호화

    ACM( Amazon Certification Manager)에서 SSL/TLS인증서를 발급받고 Cloudfront에 배포하면 이동중인 데이터들이 암호화 된다.

  • Signed URL / Cookie

    원하는 사용자만 해당 컨텐츠에 접근하게 할 때, 프리미엄 사용자만이 사용할 수 있도록 할 때, 컨텐츠에 같이 배포한다. 해당 URL / Cookie를 받은 사용자만 해당 컨텐츠에 접근할 수 있다.
    📌 Signed URL = '개별 파일'
    📌 Signed Cookie = '많은 파일'
    💡 만료시간을 설정하여 이후에는 삭제되게 할 수 있다.

  • OAI

    OAI(Origin Access Identity)는 S3를 Origin으로 설정했을 때 사용가능하며, Cloudfront를 제외한 다른 경로로 접근하는 것을 막는다.

    S3버킷정책 설정을 통해 OAI권한이 있는 사용자만이 S3의 컨텐츠에 접근하게 설정해주면 된다.

price class


edge location을 무분별하게 다 사용하는 것은 매우 비용 비효율적일 것이다. 만약 회사가 서비스를 하는 리전이 미국,캐나다 밖에 없는데 Class All 또는 Class 200을 선택하면 해당 리전을 제외한 다른 리전의 edge location도 사용하므로 비용이 많이 들 것이다.

Global Accelerator

보통 CloudFront와 함께 글로벌 리전에 컨텐츠를 배포 하기 위해 많이 거론되는 서비스이다.
전세계 곳곳에 배치된 edge locations에 고속으로 도달해서 edge loaction에서 컨텐츠를 배포하는 방법이다.

CloudFront와 차이점

  • 1 : TCP, UDP프로토콜을 사용한다.
  • 2 : Cloudfront는 캐싱을 통해 글로벌하게 컨텐츠를 배포한다면 GA는 'AWS전용 내부 네트워크'를 통해 고속으로 컨테츠를 글로벌하게 배포한다.
  • 3 : 주로 NLB와 연관성이 있다.
  • 4 : 주로 Origin과 계속해서 컨텐츠를 주고받아야 하는 동적컨텐츠를 배포한다.

GA 활용

  • 리전내에서 HTTPS의 IP를 Static IP로 만들고 싶을 때 ALB앞에 NLB를 배치한다. 하지만 이것은 리전에 국한되어 있고, 만약 글로벌 리전에서 HTTPS의 Static IP를 사용하고싶다면 GA를 사용한다.
  • 한 리전에서 다른 여러 리전에 고속으로 컨텐츠를 전달하고 싶을 때 GA의 엔드포인트를 여러 리전이 가진 ALB의 엔드포인트에 연결 후 GA를 통해 여러 리전의 ALB에 트래픽을 전송하면, ALB는 리스너 규칙을 통해 트래픽을 리디렉션하거나 , 해당/여러 EC2 OR Autoscailing Group에 트래픽을 분산시킨다.
profile
성실하게 열심히!

0개의 댓글