AWS- CDN(Contents Delivery Network)
CDN이란?
- Contents Delivery Network 로 컨텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템
- CDN을 통해 온라인상의 대용량 컨텐츠를 저렴한 비용으로 빠르게 전송
- 주요 ISP의 CDN서버에 컨텐츠를 분산 시키고 유저의 네트워크 경로 상 가장 가까운 곳의 서버로부터 컨텐츠를 전송받아 트래픽이 특정 서버에 집중되지 않고 각 지역 서버로 분산되도록 하는 기술
CDN 동작원리?
1. PC나 모바일 기기의 웹 브라우저에서 URL을 이용하여 웹 사이트에 접속을 시도하게 되면, 사용자에게 웹페이지를 제공하기 위해 필요한 컨텐츠(HTML, image, CSS 등)를 서버에 요청
2. 대부분 CDN 서비스는 컨텐츠에 대한 요청이 발생하게 되면 사용자와 가장 가까운 위치에 배치된 CDN서버로 사용자를 접속시키게 되며, CDN서버는 요청된 파일 컨텐츠를 사용자에게 전달함.
3. 서버가 파일을 찾는데 실패 했거나 컨텐츠가 너무 오래된 경우 원본 서버에서 파일을 조회하여 사용자에게 전달 하고 이후 동일한 컨텐츠를 요청받게 되면 캐싱된 데이터에서 컨텐츠를 전송하므로 보다 빠르게 전달할 수 있다.
CDN 캐싱 방식 종류
1. static caching : 사용자의 요청이 없이도 origin server에 있는 컨텐츠를 운영자가 미리 cache services에 복사함으로써 사용자가 cache 서버에 접속하여 컨텐츠를 요청하면 cache 서버가 컨텐츠를 전달하는 방식
2. dynamic caching : 최초에는 cache 서버에 컨텐츠가 없으나, 사용자가 컨텐츠를 요청하면 cache 서버에 컨텐츠가 있는지 여부를 확인하고 없으면 오리진 서버에서 다운로드 받아 사용자에게 전달하고, 이후 동일한 요청을 받게 되면 캐싱된 컨텐츠를 사용자에게 제공하게 된다. 컨텐츠는 일정시간(ttl)이 지나면 캐싱된 파일이 삭제될 수 있지만, 필요한 경우 다시 오리진 서버에서 컨텐츠를 확인 후 계속 가지고 있을 수 있다.
Amazon CloudFront
- 짧은 지연시간과 빠른 전송 속도로 최종 사용자에게 데이터, 동영상, 애플리케이션 및 API를 안전하게 전송하는 Contents Delivery Network 서비스
구 분 | 내 용 |
서비스명 | Amazon CloudFront |
설명 | 고도로 프로그래밍 가능하고 안전한 컨텐츠 전송 네트워크 |
특징 | - 정적/동적 컨텐츠 가속 서비스 - HTTP/HTTPS 서비스, Custom SSL 지원 - 커스텀 오류 응답 - 쿠키/헤더 오리진 서버 전달 - 다양한 통계 보고서 -컨텐츠 보안: Signed URL, Signed Cookie - API 호출 감사: CloudTrail 연계 - 업로드 가속 |
프리티어 | 데이터 송신 50GB와 HTTP/HTTPS요청 2백만 건 |
Amazon CloudFront Global Edge 서비스
- 현재 47개국 90개 도시, 225개가 넘는 PoP(Point of Presence) 로 구성된 글로벌 네트워크를 사용
북미
엣지 로케이션: 버지니아주 애슈번(6), 조지아주 애틀랜타(6), 매사추세츠주 보스턴(3), 일리노이주 시카고(6), 텍사스주 댈러스/포트워스(6), 콜로라도주 덴버(2), 캘리포니아주 헤이워드, 오레곤주 힐스버러(3), 텍사스주 휴스턴(4), 플로리다주 잭슨빌, 캘리포니아주 로스앤젤레스(5), 플로리다주 마이애미(4), 미네소타주 미니애폴리스, 퀘벡주 몬트리올, 뉴욕주 뉴욕(2), 뉴저지주 뉴어크(7), 캘리포니아주 팔로알토, 펜실베이니아주 필라델피아(2), 애리조나주 피닉스(2), 유타주 솔트레이크시티, 캘리포니아주 산호세(2), 워싱턴주 시애틀(3), 온타리오주 토론토(2), 브리티시 컬럼비아주 밴쿠버, 멕시코 케라타로(2)
리전별 엣지 캐시: 캘리포니아, 오하이오, 오레곤, 버지니아
유럽
엣지 로케이션: 네덜란드 암스테르담(2), 그리스 아테네, 독일 베를린(2), 벨기에 브뤼셀, 루마니아 부쿠레슈티, 헝가리 부다페스트, 덴마크 코펜하겐, 아일랜드 더블린, 독일 뒤셀도르프, 독일 프랑크푸르트(10), 독일 함부르크, 핀란드 헬싱키, 포르투갈 리스본, 영국 런던(9), 스페인 마드리드(3), 영국 맨체스터(2), 프랑스 마르세유, 이탈리아 밀라노(3), 독일 뮌헨(2), 노르웨이 오슬로, 이탈리아 팔레르모, 프랑스 파리(5), 체코 공화국 프라하, 이탈리아 로마, 불가리아 소피아, 스웨덴 스톡홀름(3), 오스트리아 비엔나, 폴란드 바르샤바, 크로아티아 자그레브, 스위스 취리히(2)
리전별 엣지 캐시: 아일랜드 더블린, 독일 프랑크푸르트, 영국 런던
아시아
엣지 로케이션: 인도 방갈로르(3), 태국 방콕(2), 인도 첸나이(4), 중국 홍콩(3), 인도 하이데라바드(3), 인도네시아 자카르타, 인도 콜카타(2), 말레이시아 쿠알라룸푸르(2), 인도 뭄바이(4), 필리핀 마닐라, 인도 뉴델리(5), 일본 오사카, 대한민국 서울(4), 싱가포르(4), 대만 타이베이(3), 일본 도쿄(16)
리전별 엣지 캐시: 인도 뭄바이, 싱가포르, 대한민국 서울, 일본 도쿄
오스트레일리아 및 뉴질랜드
엣지 로케이션: 뉴질랜드 오클랜드(2), 오스트레일리아 멜버른(2), 오스트레일리아 퍼스, 오스트레일리아 시드니(4)
리전별 엣지 캐시: 시드니
남아메리카
엣지 로케이션: 콜롬비아 보고타, 아르헨티나 부에노스아이레스, 브라질 리우데자네이루(2), 칠레 산티아고, 브라질 상파울루(2)
리전 엣지 캐시: 브라질 상파울루
중동
엣지 로케이션: 아랍에미리트연합 두바이, 아랍에미리트연합 푸자이라, 바레인 마나마, 이스라엘 텔아비브
중국
엣지 로케이션: 베이징, 선전, 상하이, 중웨이
CloudFront의 주요기능
1) 정적 컨텐츠에 대한 캐싱 서비스
- 온디맨드 스트리밍 서비스를 위해 CloudFront를 사용하면 일반적인 형식의 동영상 스트리밍 서비스를 제공
- 정적 컨텐츠(HTTP,CSS, Image 등)에 대해 전송속도를 높일 수 있도록 amazon글로벌 백본 네트워크와 edge서버를 활용하여 해당 웹 사이트에 방문하는 사용자에게 빠르고 안전한 환경을 제공
2) 동적 컨텐츠에 대한 캐싱 서비스
- 이미지, 동영상 등의 정적 파일 외에도 종적인 파일에 대해서도 caching 할 수 있다. 이 중 빈번하게 갱신되거나 동적인 업데이트가 필요한 페이지나 컨텐츠에 대해서도 TTL을 설정하여 캐싱을 지원
3) 보안 서비스
- Amazon Shield(L3,L4단계 보호)를 통한 DDoS 공격차단(무료)
- Amazon CloudFront를 사용하면 기본으로 amazon shield를 사용하게 되며, 외부로부터 인반적인 공격 유형에 대한 방어 및 자동탐지/대응 지원
- Amazon WAF(L7 보호)를 통해 웹 트래픽 모니터링 및 차단(유료)
- Sgined URL/Cookie를 통한 컨텐츠 보호
- HTTPS Redirection과 SSL 인증서 연동 서비스
4) 비용 최적화를 통한 비용 절감
- Amazon CloudFront를 사용하게 되면 기존 S3 bucket, EC2 instance, Elastic Load Balancer 와 같은 서비스에서 사용자에게 데이터를 전송할 때 지불되는 네트워크 out에 대한 데이터 전송 비용을 지불하지 않고, CloudFront 사용료에 대한 부분만 지불
구성 방법(정적 이미지 사이트 구성)
왼쪽 버킷 선택 -> 오른쪽 하단에 버킷 만들기 클릭
버킷이름 : staticweb-210607
AWS 리전: 아시아 태평양(서울) ap-northeast-2
모든 퍼블릭 액세스 차단 : 체크해제
현재 설정으로 인해 이 버킷과 그 안에 포함된 객체가 퍼블릭 상태가 될 수 있음을 알고 있습니다. : 체크
버킷 만들기 클릭
staticweb-210607 클릭
폴더만들기 클릭
폴더이름 : cf_test
폴더 만들기 클릭
객체에 있는 cf_test/ 클릭
업로드 클릭
파일추가 클릭
로컬 컴퓨터에서 사진 파일을 선택
업로드 클릭
확인 후 닫기 클릭
skin6.png 파일 클릭
권한선택 -> 편집
모든사람(퍼블릭 액세스) 읽기 : 체크
이러한 변경 사항이 이 객체에 미치는 영향을 이해합니다. : 체크
변경사항 저장 클릭
객체 URL을 복사
복사한 URL을 웹브라우저 검색창에 붙여넣기
그러면, 웹 브라우저에서 아래와 같이 정적인 이미지를 확인할 수 있다.
참고
https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html
Amazon CloudFront란 무엇입니까? - Amazon CloudFront
Amazon CloudFront란 무엇입니까? Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션
docs.aws.amazon.com