2. Speaker Introduction
• 2012. 컴투스 입사
• 2013. 인프라 파트장으로 업무 진행
• 현재까지 컴투스에서 국내외 출시하는
게임들의 서버, 네트워크, CDN 등
전반적인 인프라 관리
3. 왜 Com2us에게 CDN이 중요한지?
• 한국, 중국, 일본, 미국의 현지 법인
• 전체 매출 73% 해외 매출
• 160여개국 서비스 중
• 포켓 게이머 선정 글로벌 Top 50 개발사
7위 등극
• 2014년 서머너즈워, 낚시의 신 글로벌
각각 3,000만 다운로드
• 통합 플랫폼 하이브’Hive’를 통한 글로벌
커버리지 확대
4. Why Amazon CloudFront?
• Performance & Availability : 다른 Global CDN
Provider와 비교하여도 동등한 수준
• Easy to Setup : 실제 서비스 세팅까지 전문가의 도움
없이 웹 콘솔로 수분만에 셀프 서비스로 가능
• Global Reach : 전세계 PoP을 활용하여 전 세계 주요
도시로 쉽게 배포
6. Easy to Setup: 쉽게 셋업 가능
• Origin Setting, Protocols,
Logging 세팅 등 3단계 거치면
바로 서비스 가능
• 전문가 없이 세팅 까지 수분 내에
가능
• 세팅에 관련된 Documentation
모두 공개 되어있음
7. Reach: 글로벌 CDN 인프라 스트럭처
North America South America EMEA APAC
Super POPs
Cities
Countries
Continents
AWS Region CloudFront Edge Location
8. Analytics and Monitoring
• Self Build Up : Hadoop 기반 분석 시스템을
자체적으로 구성하려고 했지만 복잡도가 높았음
• AWS Reporting Tools : 작년 말 부터 CloudFront에서
자체적으로 제공했던 기능
• 3rd Party Tools : Qloudstat, s3stat 등 솔루션이
있지만 완성도가 낮았음
9.
10.
11.
12.
13. Expiring Content : Edge로 부터 새로운 내용 갱신
• 기본적으로 24시간마다 한번 씩 Origin에서 갱신해 옴
• TTL 사용 : Origin에서 각 Object 별로 Caching 되는 시간 설정 가능
(Cache-Control (max-age))
• Versioning 사용 : image_v1.jpg 에서 image_v2.jpg와 같이 파일 명
자체를 변경
• Invalidation API 사용: 10-20분 정도 Propagation 시간이 걸림
• Versioning using query strings : File name plus query string with
version /static/profile.png?versionID=123
14. 왜 다수의 CDN, Origin을 사용하는가?
• Fail Over : 하나의 CDN이 문제가 있는 경우 다른 CDN으로 즉각 서비스
재개할 수 있음
• Origin 최적화 : End User가 최초 요청 시 Origin까지 요청하게 되는데 이
때 Edge와 가장 가까운 Origin을 선택해 성능을 최적화함
(예를 들어, 미국 LA에 있는 사용자가 CloudFront로 최초로 요청 시에 가장 가까운
곳의 LA Edge로 연결되지만, 만약 Origin이 Tokyo에 있는 경우 또 다시
Latency가 느려질 수 있다. 하지만, 근처의 Oregon 지역의 Origin으로 갈 수
있다면 훨씬 빠른 속도로 서비스가 가능하다)
15. CNAME =
xyz.cloudfront.net
CloudFront
53
Load Balance
Non-AWS End Point
Custom Origin or
Alternative CDN
Multi-CDN Architecture
- 여러 CDN Provider 사용하기
Customer Location
www.mysite.com
Weighted Round Robin Routing
CNAME = xyz.cloudfront.net, weight = 0-255
CNAME = xyz.somecdn.com, weight = 0-255
CNAME =
xyz.somecdn.com
Latency Based Routing
CNAME = xyz.cloudfront.net, latency metric
CNAME = xyz.somecdn.com, latency metric
Fail Over Routing
CNAME = xyz.cloudfront.net, PRIMARY
CNAME = xyz.somecdn.com, SECONDARY
Geolocation Routing
CNAME = xyz.cloudfront.net, LOCATION 1…LOCATION X
CNAME = xyz.somecdn.com, LOCATION 2…LOCATION Y
16. origin.mysite.com
CloudFront
53
Load Balance
Multi-Origin Architecture
- 가까이에 있는 Origin으로 부터 서비스 하기
Customer Location
www.mysite.com
Weighted Round Robin Routing
CNAME = xyz.cloudfront.net, weight = 0-255
CNAME = xyz.somecdn.com, weight = 0-255
Latency Based Routing
CNAME = origin.mysite.com, latency metric
CNAME = origin.mysite.com, latency metric
Fail Over Routing
CNAME = origin.mysite.com, PRIMARY
CNAME = origin.mysite.com, SECONDARY
Geolocation Routing
CNAME = origin.mysite.com, LOCATION 1…LOCATION X
CNAME = origin.mysite.com, LOCATION 2…LOCATION Y
EC2S3 ELB
EC2S3 ELB
us-east
eu-west
origin.mysite.com
origin.mysite.com
EC2S3 ELB
ap-northeast
17. CNAME =
xyz.cloudfront.net
CloudFront
EC2S3 ELB53
Load Balance via DNS
CloudFront가 아닌
다른 CDN의 End
Points
Intelligent CloudFront
Customer Location
www.mysite.com
53
Origin이 여러개인 경우
Route53에서 Routing Policy에 따라
오리진을 선택하게 됩니다.
가장 가까운 CDN Edge가 선택이
되어집니다..
CloudFront POP Locations
그 이후 고객은
할당받은 CDN
Edge로 부터 서비스
받습니다.
Route53으로 부터
CloudFront를 포함해 여러
CDN 중 하나의 End-Point를
받게 됩니다.
1
4 2
3