aws summit 2017_이상오_fn

88
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 이이이 , 이이이이이이이 ROUTE53 및 CLOUDFRONT 및 및및및 CDN 및및및 GS 이이이

Upload: lee-kevin

Post on 21-Apr-2017

580 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: Aws summit 2017_이상오_fn

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

이상오 , 솔루션아키텍트

ROUTE53 및 CLOUDFRONT 를 이용한

CDN 활용기GS 네오텍

Page 2: Aws summit 2017_이상오_fn

본 강연에서 다룰 내용

CDN 관련된 AWS 서비스의 개요

CDN 을 활용하여 성능 / 보안 / 비용측면 개선해보기

Lambda@Edge 를 활용한 기능 구현해보기 - 원본 스토리지 이전 문제 - 전처리 광고 구현해 보기 - Adaptive Contents Delivery 구현해보기

기타 CloudFront 사용 TIP

(ROUTE53, CLOUDFRONT, SHIELD, WAF, Lambda@Edge)

Page 3: Aws summit 2017_이상오_fn

What is CDN….

Page 4: Aws summit 2017_이상오_fn

IT 서비스 =Computing Delivery+서비스관점 : CDN

Page 5: Aws summit 2017_이상오_fn

Contents Delivery Network (CDN)

어떻게 하면 사용자에게 가장 효율적이고 , 빠르게 서비스 할것인가 ?

Page 6: Aws summit 2017_이상오_fn

100ms

10msCDN

(CloudFront)

캐시기반의 데이터 저장 Network 경로 최적화

지리적으로 가장 가까운 서버로부터 컨텐츠를 전송받음 .

Page 7: Aws summit 2017_이상오_fn

AWS CDN 관련 서비스의 개요

Page 8: Aws summit 2017_이상오_fn

AmazonRoute 53

Amazon CloudFront

Page 9: Aws summit 2017_이상오_fn

CloudFro

nt

정적 / 동적 컨텐츠 가속 서비스HTTP/HTTPS 서비스 , Custom SSL 지원커스텀 오류 응답쿠키 / 헤더 오리진 서버 전달다양한 통계 보고서컨텐츠 보안 : Signed URL, Signed CookieAPI 호출 감사 : CloudTrail 연계업로드 가속

AMAZON CLOUDFRONT

Page 10: Aws summit 2017_이상오_fn

CLOUDFRONT 는 모든형식의 컨텐츠를 전송

Dynamic

Static Video

UserInput

SSL

Page 11: Aws summit 2017_이상오_fn

Ashburn, VA (3)Atlanta, GA (3)Chicago, ILDallas/Fort Worth, TX (2)Hayward, CAJacksonville, FLLos Angeles, CA (2)Miami, FLMinneapolis, MNMontreal, QCNewark, NJNew York, NY (3)Palo Alto, CAPhiladelphia, PASan Jose, CASeattle, WASouth Bend, INSt. Louis, MOToronto, ON

North AmericaCities: 19PoPs: 27

South AmericaCities: 2PoPs: 3

Rio de Janeiro, Brazil (2)São Paulo, Brazil

Europe / Middle East / AfricaCities: 15PoPs: 24

Amsterdam, The Netherlands (2)Berlin, GermanyDublin, Ireland

Frankfurt, Germany (5)London, England (4)

Madrid, SpainMarseille, France

Milan, ItalyMunich, GermanyParis, France (2)

Prague, Czech RepublicStockholm, Sweden

Vienna, AustriaWarsaw, Poland

Zurich, Switzerland

Asia PacificCities: 12PoPs: 20

Chennai, India

Hong Kong, China (3)Manila, the PhilippinesMelbourne, Australia

Mumbai, India (2)New Delhi, India

Osaka, JapanSeoul, Korea (3)

Singapore (2)Sydney, Australia

Taipei, TaiwanTokyo, Japan (3)

CloudFront Regional Edge CachesRegional Edge Caches: 9

Oregon, N. Virginia, Frankfurt, Sao Paulo, Mumbai, Singapore, Seoul, Tokyo, Sydney

Edge location

AWS Region / Regional Edge Cache

Regional Edge Cache

74 CloudFront Edge Locations (PoPs), 9 Regional Edge Caches (PoPs), 48 Cities, 5 Continents

Page 12: Aws summit 2017_이상오_fn

AmazonRoute 53

AMAZON ROUTE53

Global Server Load Balancer(GSLB)

서버와 네트워크 장비들의 상태 및 성능 정보를체크하며 동적으로 사용자에게 노출될 DNS 레코드 타입과 값을 조정합니다 .

Page 13: Aws summit 2017_이상오_fn

글로벌 DNS

가용성과 확장성이 우수한 클라우드 DNS( 도메인 이름 시스템 ) 서비스입니다 .

Route 53

GSLB

Page 14: Aws summit 2017_이상오_fn

ROUTE53 : WEIGHTED

SYSTEMS SYSTEMS

80% 20%

Page 15: Aws summit 2017_이상오_fn

ROUTE53 : LATENCY

SYSTEMS SYSTEMS

60ms 10ms

Page 16: Aws summit 2017_이상오_fn

ROUTE53 : FAILOVER

SYSTEMS SYSTEMS

Health Check : OK Health Check : Fail

Page 17: Aws summit 2017_이상오_fn

ROUTE53 : GEOLOCATION

SYSTEMS SYSTEMS

KOREA US

Page 18: Aws summit 2017_이상오_fn

성능 개선해보기

Page 19: Aws summit 2017_이상오_fn

80%

20%

일반적인 웹트래픽 비율Static Contents Dynamic Contents

Page 20: Aws summit 2017_이상오_fn

Classic ELB(LoadBlancer)

EC2

S3

www.example.com

Dynamic Contents

Static Contents

DataBase

Page 21: Aws summit 2017_이상오_fn

Classic ELB(LoadBlancer)

EC2

S3

www.example.com

Dynamic Contents

Static Contents

DataBase

CDN(CloudFront)

Page 22: Aws summit 2017_이상오_fn

CDN(CloudFront)

/*.* (DEFAULT)

/images/*

/*.css

ORIGIN A: web

ORIGIN B : Images

GET http://www.example.com/do?login to ORIGIN AGET http://www.example.com/images/logo.jpg to

ORIGIN BGET http://www.example.com/css/main.css to ORIGIN C

ORIGIN C : CSS

Path Pattern Matching

Page 23: Aws summit 2017_이상오_fn

CLOUDFRONT BEHAVIOR

Page 24: Aws summit 2017_이상오_fn

STATIC CONTENTS 성능개선

Page 25: Aws summit 2017_이상오_fn

100ms

10msCDN

(CloudFront)

STATIC CONTENTS LATENCY 성능 개선

Page 26: Aws summit 2017_이상오_fn

Gzip 압축 기능을 통한 페이지 로딩속도 개선

362KB 81ms

51.3KB 27ms

Page 27: Aws summit 2017_이상오_fn

DYNAMIC CONTENTS 성능개선

Page 28: Aws summit 2017_이상오_fn

SYN

SYN-ACK

ACK

GET index.php

SYN

SYN-ACK

ACK

GET index.php

Classic ELB(LoadBlancer)

EC2

Dynamic Contents

DataBase

2 번째 사용자

400ms

400ms

100ms

DYNAMIC CONTENTS 성능개선

Page 29: Aws summit 2017_이상오_fn

SYN

SYN-ACK

ACK

GET index.php

SYN

SYN-ACK

ACK

GET index.php

2 번째 사용자

400ms

130ms

SYN

SYN-ACK

ACK

GET index.php

GET index.php

Keep Alive Connections

90ms10ms

Classic ELB(LoadBlancer)

EC2

Dynamic Contents

DYNAMIC CONTENTS 성능개선

Page 30: Aws summit 2017_이상오_fn

SSL 성능개선

Page 31: Aws summit 2017_이상오_fn

WEB SERVER

WEB SERVER

Enable SSL

SSL 사용으로 인한 인프라 성능 저하

CPU Load 증가+ 가용량 60% 감소

( 세션기준 )

Page 32: Aws summit 2017_이상오_fn

WEB

WEB

WEB

WEBClassic ELB(LoadBlancer)

WEB

WEB

WEB

WEB

SSL 사용으로 인해 더 많은 인프라 필요

Page 33: Aws summit 2017_이상오_fn

Classic ELB(LoadBlancer)

SSL 성능개선

WEB

WEB

WEBAmazonCloudFront

HTTP/HTTPS비용 동일

Page 34: Aws summit 2017_이상오_fn

ROUTE53 을 활용하여 중국향 성능개선

Page 35: Aws summit 2017_이상오_fn

ROUTE53 : GEOLOCATION

GLOBAL CHINA

AmazonCloudFront

Local(China)CDN

Page 36: Aws summit 2017_이상오_fn

ROUTE53 : SETTING

Page 37: Aws summit 2017_이상오_fn

GLOBAL(CHINA) SPEED UPGlobal ABC 사 CF + Local CDN

Page 38: Aws summit 2017_이상오_fn

보안성 강화해보기

Page 39: Aws summit 2017_이상오_fn

CLOUDFRONT 를 사용하는 것만으로 보안 강화

Page 40: Aws summit 2017_이상오_fn

AmazonSheild

AmazonWAF

Layer 3/4 보호

자동 탐지 및 대응

일반적인 공격유형방어

(SYN/UDP Floods, Reflection Attacks 등 )

AWS 서비스 결합

Layer 7 보호

Layer7 Application 방어

Custom Rule 기반

웹트래픽 필터링

악의적인 요청 차단

Page 41: Aws summit 2017_이상오_fn

ORIGIN SYSTEM 보안 강화

Page 42: Aws summit 2017_이상오_fn

ORIGIN 보호

Classic ELB(LoadBlancer)

EC2

S3

www.example.com

Dynamic Contents

Static Contents

DataBase

CDN(CloudFront)

Page 43: Aws summit 2017_이상오_fn

Access Control to Origin

Amazon S3 Custom Origin

Origin Access Identify(OAI) Block by IP address

Prevents direct access to your

Amazon S3 bucket

Ensure performance benefits to all customers

Whitelist only the Amazon CloudFront IP Range

Protects origin from overload

Ensure performance benefits to all customers

Page 44: Aws summit 2017_이상오_fn

Auto updated CF IP Range

CDN(CloudFront)

AmazonSNS

AWSLambda security group

UpdateIP Range

SNSMessage

UpdatingIP Range

Page 45: Aws summit 2017_이상오_fn

Anti-DDos 보안 강화

Page 46: Aws summit 2017_이상오_fn

DDos 공격 유형

대규모 트래픽 기반

상태 소진형

Application Layer

65%17%

18%

자원고갈형 공격비율

82%

Page 47: Aws summit 2017_이상오_fn

ORIGINSYSTEMS

UDP/SYNFlooding Attack

HTTP

HTTP

AWSCloudFront

Layer7 Traffic 만이 ORIGIN SYSTEM 에 전달

AWSShield

Page 48: Aws summit 2017_이상오_fn

GLOBAL Presence and Redundancy

Invalid Protocol

valid Request

Invalid Request

Country A

Country B

Country C

Route A

Route B

Route C

Page 49: Aws summit 2017_이상오_fn

Layer7 보안 강화

Page 50: Aws summit 2017_이상오_fn

WAF(Web Application Firewall)

AWSWAF

Host: www.example.comUser-Agent: Mozilla/5.0 (Macintosh; …Accept: image/png,image/*;q=0.8,*/*;q=0.5Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferrer: http://www.example.com/Connection: keep-alive

Check: Header “Referrer” Match Type: Contains Match: “example.com” Action: ALLOW

RAW REQUEST HEADERS Rule : String match condition

Match any part of the web request

Page 51: Aws summit 2017_이상오_fn

WAF(Web Application Firewall)

AWSWAF

Host: www.example.comUser-Agent: badbotAccept: image/png,image/*;q=0.8,*/*;q=0.5Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferrer: http://www.example.com/Connection: keep-alive

Check: Header “Referrer” Match Type: Contains Match: “example.com” Action: BLOCK

RAW REQUEST HEADERS Rule : String match condition

Use transforms to stop evasion

Page 52: Aws summit 2017_이상오_fn

추가적인 보안 강화 기능

Page 53: Aws summit 2017_이상오_fn

Security Enhancements Signed URL

Signed Cookies

Enforce HTTPS to origin

Support iOS ATS

Support for TLSv1 .1 and TLSv1.2 between edge and origin

Add/Modify Request Headers Forwarded From CloudFront to Origin

Integration with AWS Certificate Manager (SNI Certs from Amazon)

Integration with AWS WAF (web application firewall)

Geographic Restriction

IPv6 Support

Page 54: Aws summit 2017_이상오_fn

비용 절약해보기

Page 55: Aws summit 2017_이상오_fn

WEB

WEB

WEB

WEB (n)EC2 비용+ DataOut 비용

Classic ELB(LoadBlancer)

WEB

Reduce Computing Cost

Page 56: Aws summit 2017_이상오_fn

Classic ELB(LoadBlancer) WEB

WEB (n)EC2 비용+ CF Dataout 비용

Reduce Computing Cost

CloudFront

Page 57: Aws summit 2017_이상오_fn

Reduce Traffic Cost

ORIGINSYSTEMS

CloudFront

$$$

$$$

$ Free

Page 58: Aws summit 2017_이상오_fn

Managed CloudFront Service

Page 59: Aws summit 2017_이상오_fn

Based

3rd Party Solution

WiseN Monitoring System

AWS Cloud Watch

24x7x365Monitoring System 전문화된 NOC 운영

(Network Operation Center)

PriceDiscountProgram

ManagedCloudFrontProgram

Page 60: Aws summit 2017_이상오_fn

전용 CLOUDFRONT 통계 제공

Traffic BandWidth 통계

Page 61: Aws summit 2017_이상오_fn

REFERENCE 게임 미디어 / 엔터인먼트

쇼핑몰 공공 / 엔터프라이즈

Page 62: Aws summit 2017_이상오_fn

Lambda@Edge 활용해보기

Page 63: Aws summit 2017_이상오_fn

Triggers for Lambda@Edge Functions

Viewer Request

Viewer Response

Origin Request

Origin ResponseAmazon

CloudFrontOrigin(S3)

Page 64: Aws summit 2017_이상오_fn

Lambda@Edge Limits

Max memory setting 128 MB

Maximum duration 50 ms

Size of code/dependencies that you can zip into a deployment package (uncompressed zip/jar size)

1 MB

Maximum Global TPS 100

Page 65: Aws summit 2017_이상오_fn

STORAGE MIGRATION

Page 66: Aws summit 2017_이상오_fn

Amazon S3CUSTOM STORAGE

Page 67: Aws summit 2017_이상오_fn

What the hell happened????

Page 68: Aws summit 2017_이상오_fn

Amazon S3MS Windows Server IIS

대소문자 구분 (X)

대소문자 구분 (O)

Page 69: Aws summit 2017_이상오_fn

Service Flow

AmazonS3

/20170412/Logo.jpg

HTTP STATUS : 404(File Not

Found)

HTTP STATUS : 404(File Not

Found)

AmazonCloudFron

t

http://~/20170412/LoGo.jpg

http://~/20170412/LoGo.jpg

Page 70: Aws summit 2017_이상오_fn

Service Flow

AmazonS3

/20170412/logo.jpg

HTTP STATUS : 200(OK)

HTTP STATUS : 200(OK)

AmazonCloudFron

t

http://~/20170412/LoGo.jpg

http://~/20170412/logo.jpg

Page 71: Aws summit 2017_이상오_fn

Lambda@edge Source Code

CloudFront+Lambda@edge

Page 72: Aws summit 2017_이상오_fn

Dynamic Quality Delivery

Page 73: Aws summit 2017_이상오_fn

Dynamic Quality Delivery

AmazonS3

AmazonCloudFron

t

Request Headers and Hint

URLAdaptive Request Headers

Adaptive URL

Best-Fit ContentsCached Contents

Page 74: Aws summit 2017_이상오_fn

Lambda@edge Source Code

CloudFront+Lambda@edge

Page 75: Aws summit 2017_이상오_fn

PRE-ADVERTISING CONTENTS

Page 76: Aws summit 2017_이상오_fn

Service Flow

Pre-processing Ad Main Video

http://video.example.com/ad/main.mp4

1

2 3

Page 77: Aws summit 2017_이상오_fn

AD Contents

AmazonS3

/20170412/logo.jpg

AmazonCloudFron

t

http://video.example.com/ad/

main.mp4

/ad/ad.mp4 /ad/

main.mp4

Page 78: Aws summit 2017_이상오_fn

Lambda@edge Source Code

CloudFront+Lambda@edge

Page 79: Aws summit 2017_이상오_fn

DEMO

http://demo.wisen.co.kr

Page 80: Aws summit 2017_이상오_fn

기타 활용 TIP

Page 81: Aws summit 2017_이상오_fn

HLS Streaming

HLS 스트리밍을 구성하였지만 , 비주기적으로 화면이 멈추거나 , 프레임 점프 현상이 발생합니다 .

설명

Page 82: Aws summit 2017_이상오_fn

ORIGIN 응답시간 제어

사용자가 월간 CSV 다운로드 요청을 하였을경우 , 원본에서 해당 CSV 를 생성해서 응답을 합니다 . 그런데 이때 생성대상 데이터가 많아 생성하는데 약 1 분의시간이 필요하다 .

설명

Page 83: Aws summit 2017_이상오_fn

CloudFront Edge Cache Control

CloudFront 에서는 지정한 시간만큼 캐싱을 하고 , 실제 사용자브라우저에는 캐싱을 하지 않도록 구성하고 싶습니다 .

설명

cache-control : max-age=0, s-maxage=3600

Page 84: Aws summit 2017_이상오_fn

RTMP Streaming Service

AmazonS3

AmazonCloudFron

t

rtmp://video.example.com/wisen.mp4

반드시 S3 사용

HTTP 기반의 스트리밍 서비스가 아닌 , Flash Player 기반의 RTMP 스트리밍 서비스를 하고 싶습니다 .

설명

Page 85: Aws summit 2017_이상오_fn

Fast Invalidations

기존 : 10 분 - 15 분

현재 : Edge 의 90% 5 초 , 10% 는 최대 1 분내

Page 86: Aws summit 2017_이상오_fn

본 강연이 끝난 후…

blog.wisen.co.kr www.studyforcloud.com을 통해 Lambda@edge Source code 를 다운로드 받으실수 있습니다 .

16:20 – 17:00 Track3_ 그랜드볼룸 103AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략

Page 87: Aws summit 2017_이상오_fn

함께 해주셔서 감사합니다 [email protected]

Page 88: Aws summit 2017_이상오_fn

https://www.awssummit.kr AWS Summit 모바일 앱을 통해 지금 세션 평가에 참여하시면 , 행사 후 기념품을 드립니다 .

#AWSSummitKR 해시태그로 소셜 미디어에 여러분의 행사 소감을 올려주세요 .

발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜 채널로 곧 공유될 예정입니다 .

여러분의 피드백을 기다립니다 !