본문 바로가기
aws

AWS CloudFront

by 초특급하품 2020. 4. 12.

CloudFront는 전 세계에 흩어져있는 edge location을 통해 사용자에게 빠른 응답을 제공하는 서비스다. backend의 응답을 캐시 해서 데이터를 제공하는 CDN(Content Delivery Network)로 뒷단에 여러 서비스를 연결할 수 있다.

 

사용자와 CloudFront는 인터넷 망을 통해 연결되지만 CloudFront와 뒷단의 aws 서비스는 aws의 private network를 통하기 때문에 더욱 좋은 성능을 보여준다.

 

edge location 분포 (https://aws.amazon.com/cloudfront/features)

 

Origin

다양한 aws 서비스들을 뒷단에 연결할 수 있다.

대표적으로 region 단위의 s3에 위치한 파일을 연결해서 캐싱할 수 있다. 처음 s3에서 데이터를 가져온 뒤로는 빠르게 응답한다. s3를 통해 static web을 호스팅 하는 경우도 마찬가지로 CloudFront를 연결할 수 있다.

 

s3 외에도 ALB나 EC2 등 다른 서비스를 연결해서 사용자 요청에 대한 성능을 높이는 데 사용한다.

 

Geo Restriction

요청한 사용자의 지역에 따라 해당 요청을 승인/거부할 수 있다. 특정 지역에만 서비스를 하거나 제외해야 할 때 사용한다.

 

보안

CloudFront의 OAI(Origin Access Identity)를 s3에 설정하면 해당 bucket에 사용자가 직접 s3에 접근할 수 없도록 제한할 수 있다. OAI를 설정한 후 s3의 권한을 확인해보면 아래와 같이 설정된다.

{
  ...
  "Statement": [
    ...
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity {OAI ID}"
    },
    "Resource": "arn:aws:s3:::{bucket}"
  ]
}

 

이외에도 보안 기능들이 추가로 제공된다. DDoS 감지 기능은 물론이고 WAF(Web Application Firewall)를 사용해서 ip, query string 등을 기반으로 등록한 조건에 따라 요청을 막는다. 이 경우 403 응답을 주고 필요한 경우 custom error page를 돌려준다. 

 

'aws' 카테고리의 다른 글

AWS SNS(Simple Notification Service)  (0) 2020.04.12
AWS SQS(Simple Queue Service)  (0) 2020.04.12
AWS ElastiCache Redis  (0) 2020.04.11
AWS RDS와 Aurora  (0) 2020.04.11
AWS EC2 Instance 종류  (0) 2020.04.09

댓글