일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- TypeScript
- dict
- wetube
- MongoDB
- crud
- S3
- AWS
- flask
- EC2
- socket io
- SSA
- 튜플
- docker
- 카톡
- pandas
- 중급파이썬
- async
- NeXT
- react
- RDS
- git
- 채팅
- Props
- Class
- merge
- node
- lambda
- Vue
- 파이썬
- SAA
- Today
- Total
초보 개발자
AWS CloudFront 본문
CloudFront
CloudFront란 CDN, 즉 컨텐츠 전송 네트워크를 뜻합니다. ( Content Delivery Network )
시험에서 CDN을 보면 CloudFront를 떠올리면 된다. 이건 웹사이트의 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높이는 것이다. 컨텐츠가 네트워크 전체에 캐싱되므로 전세계 사용자들이 낮은 레이턴시로 접근할 수 있어서 사용자 경험을 증대시킬 수 있다.
전세계 총 216개의 엣지 로케이션을 통해 구성이 되어있다. 컨텐츠가 전체적으로 분산되어 있으므로 DDoS 공격에서 보호를 받을 수 있다.
가령 호주에 s3버킷에 웹사이트를 만들었다 하더라도 ( 정적 웹사이트 ) 미국에 있는 사용자는 cloud front를 이용해 미국에 있는 엣지에 컨텐츠를 요청하게 됩니다. 그럼 cloud front가 호주에서 이 컨텐츠를 페치해서 가져오게 된다. 그리고 미국의 다른 사용자가 똑같은 컨텐츠를 요청한다면 이 컨텐츠는 호주에서 출발하지 않고 엣지에서 직접 컨텐츠를 제공받게 된다.
S3 bucket
- For distributing files and caching them at edge
- enhanced security with cloudFront origin access control ( 버킷에는 cloud front만 접근할 수 있도록 보장해준다 ) 이를 가능하게 하는 것이 OAC라고 불리는 Origin Access Control (원본 접근 제어)로 기존의 OAI를 대체한다.
- cloudfront can be used as an ingress ( to upload files to s3 ) 클라우드 프론트를 통해 버킷에 데이터를 보내는 방법도 가능하다.
Custom Origin ( HTTP )
- 로드밸런서
- EC2
- S3 website (must file enable the bucket as a static s3 website )
- any http backend you want
클라우드 프론트 엣지 로케이션에서 오리진에 접근한다고 생각해보자
클라이언트가 먼저 cloud front로 요청을 보내면 요청을 보낸 것이 캐싱이 되어있는 지 확인하고 없다면
cloud front가 s3에서 대신 받아오고 캐싱하여 저장한다. 그리고 이 요청이 한번 더 오면 이번엔 s3에 가지않고 바로
캐싱된 값을 리턴할 것이다.
cloud front vs s3 cross region replication
s3 교차 레전 복제는 반드시 다른 레전에 위치해야하는데 cloud는 그럴필요가없다
s3 교차 레전 복제는 리드 온리이다,
앞서 말했다 싶이 cloudFront는 사용자 지정 http 백엔드에도 접근할 수 있다.
ec2 or ELB
ec2에 접근한다고 가정해보자
사용자는 cloud front에 요청을보내고 cloud front는 ec2에 요청을 보내는데 이 둘이 같은 vpc상에 있지 않으니 ec2는 반드시 퍼블릭으로 접근해야한다., 보안그룹 역시
ELB에 접근한다고 가정해보자
이 때에는 ec2는 프라이빗으로 해도된다. 하지만 ec2에 분산시켜주는 ELB는 반드시 퍼블릭이어야한다.
cloud front로 ec2 elb에 접근할 때는 OAC를 설정할 필요가 없는 것같다.
CloudFront Geo Restriction
이 기능을 사용하면 사용자들의 지역에 따라 배포 객체 접근을 제한할 수 있다 ( 배포 객체란 캐싱되어있는 객체 )
접근 가능 국가를 만들거나, 접근이 불가능한 국가 목록을 만들수 있다.
Pricing
요금과 등급
엣지 로케이션은 전세계에 펼쳐있고 각 지역마다 가격이 다다르다.
price all : 모든 엣지로케이션
price 200 : 가격이 저렴한 200개 로케이션
price 100 : 가격이 저렴한 100개 로케이션
Cache Invalidations
s3에 파일을 업데이트한 경우에 캐싱이 되어있으면 업데이트한 파일을 못본다. 따라서ㅏ 강제로 특정 경로에있는 파일이라던지 모든 파일이라던지 캐싱을 지울 수 있다. 이렇게 되면 새롭 접근하는 유저가 캐싱이 없는걸 확인하고 새로운 파일을 s3에 요청해서 받아올 것이니까 새로 반영된 파일이 캐싱되어있을것이다.
Global Accelerator
Unicast IP, Anycast IP
Unicast IP : 하나의 서버는 하나의 아이피를 가진다.
서버가 2개 있다면 각 서버의 아이피에 해당하는 곳에 접근하면 되는것이다.
Anycast IP : 모든 서버가 동일한 IP 주소를 가지며 클라이언트는 가장 가까운 서버로 라우팅이 된다.
신기하네..
그리고 global accelerator은 애니캐스트 ip개념을 사용한다.
'AWS SAA' 카테고리의 다른 글
AWS Container (0) | 2023.02.14 |
---|---|
AWS SQS, SNS, kinesis, activeMQ (0) | 2023.02.12 |
AWS 보안 (0) | 2023.02.10 |
AWS S3 고급 (0) | 2023.02.09 |
AWS CLI SDK IAM role, policy (0) | 2023.02.08 |