안-정적인 모바일 서비스 만들기

58
Safe and Dynamic mobile service via Amazon CloudFront 박현우, 스마트스터디 아마존 서비스 한국 사용자 모임 Mar 8, 2014

description

AWS 한국 사용자모임 세미나 SmartStudy CTO 박현우

Transcript of 안-정적인 모바일 서비스 만들기

Page 1: 안-정적인 모바일 서비스 만들기

Safe and Dynamic mobile service via Amazon CloudFront

박현우, 스마트스터디 아마존 웹 서비스 한국 사용자 모임

Mar 8, 2014

Page 2: 안-정적인 모바일 서비스 만들기

Safe and Dynamic mobile service via Amazon CloudFront

박현우, 스마트스터디 아마존 웹 서비스 한국 사용자 모임

Mar 8, 2014

Page 3: 안-정적인 모바일 서비스 만들기

안정적인

Page 4: 안-정적인 모바일 서비스 만들기

안 정적인

Page 5: 안-정적인 모바일 서비스 만들기

Safe

Page 6: 안-정적인 모바일 서비스 만들기

and

Page 7: 안-정적인 모바일 서비스 만들기

Dynamic

Page 8: 안-정적인 모바일 서비스 만들기

So

Page 9: 안-정적인 모바일 서비스 만들기

Safe

함부로 써도 고장나지 않는 내 실수로 망가지지 않는 잊고 살아도 잘 동작하는

Page 10: 안-정적인 모바일 서비스 만들기

Safe

Durable Stable

Fire-and-forget

Page 11: 안-정적인 모바일 서비스 만들기

Dynamic

내용이 다양하고 자주자주 변경될 수 있는 원할 때 신속히 바꿀 수 있는

Page 12: 안-정적인 모바일 서비스 만들기

Dynamic

Various Non-static

Cache control

Page 13: 안-정적인 모바일 서비스 만들기

User Database

Content

Web Server Application

Page 14: 안-정적인 모바일 서비스 만들기

User MySQL

Content

Apache!httpd mod_php5

Page 15: 안-정적인 모바일 서비스 만들기

Static content

Page 16: 안-정적인 모바일 서비스 만들기

Static content

www.vop.co.kr/A00000402002.html

Page 17: 안-정적인 모바일 서비스 만들기

Static content

.html무늬만 html 인 경우도 있지만…

Page 18: 안-정적인 모바일 서비스 만들기

Static content

모두 같은 내용을 보게 되는데 왜 데이터베이스를 괴롭히나?

Page 19: 안-정적인 모바일 서비스 만들기

Static content

이왕 이렇게 된 거 정적인 json / html 로 가자

Page 20: 안-정적인 모바일 서비스 만들기

Web ServerUser Database

Static content

Application

Page 21: 안-정적인 모바일 서비스 만들기

Static content

Page 22: 안-정적인 모바일 서비스 만들기

Static content

Page 23: 안-정적인 모바일 서비스 만들기

Static content

$ ls | wc -l!1042

wowsuch json

very manyso maenual

Page 24: 안-정적인 모바일 서비스 만들기

At the beginning

AWS 속도 문제 가격에 대한 불확실함

… 일단 잘 모름

Page 25: 안-정적인 모바일 서비스 만들기

At the beginning

파일 관리는 git 배포는 rsync

AP / DNS 를 바꿔서 테스트

Page 26: 안-정적인 모바일 서비스 만들기

Testing

Production

Web Server

DNSISP

At the beginning

User

Web Server

DNSGateway

/ AP

Sync

Page 27: 안-정적인 모바일 서비스 만들기

At the beginning

http://www.slideshare.net/lqez/ss-20901287

Page 28: 안-정적인 모바일 서비스 만들기

Cons

git / rsync 불편함 롤백 거의 안 함

안정성을 위해 편리함을 거의 모두 포기 …

그런데 터질만큼 유저도 안 옴…

Page 29: 안-정적인 모바일 서비스 만들기

Pros

그런건 우리에게 있을 수 없어 …

Page 30: 안-정적인 모바일 서비스 만들기

Also

특히 유럽에서의 속도가 너무 느림 S3에 올리고 Cloudfront 로 서빙

Page 31: 안-정적인 모바일 서비스 만들기

http://www.slideshare.net/lqez/aws-smartstudy

http://www.slideshare.net/lqez/using-cloud-front-with-s3-at-smartstudy

Page 32: 안-정적인 모바일 서비스 만들기

Using S3 w/Cloudfront

속도는 개선되었지만 무엇보다 invalidation이 사람 환장하게 함

Page 33: 안-정적인 모바일 서비스 만들기

What’s wrong

코드를 테스트 하기 위한 환경과 데이터를 검증하기 위한 환경은 다르다

Page 34: 안-정적인 모바일 서비스 만들기
Page 35: 안-정적인 모바일 서비스 만들기

Back to the basic

Testing Production

Dynamic Static

Page 36: 안-정적인 모바일 서비스 만들기

Back to the basic

ELB + EC2 S3 + CF

Dynamic Static

Page 37: 안-정적인 모바일 서비스 만들기

Testing

Production

S3

RDS

Hybrid

User

ELB EC2

CF

Export

Page 38: 안-정적인 모바일 서비스 만들기

Clever

스마트스터디 API 서비스 통칭

Page 39: 안-정적인 모바일 서비스 만들기

ONE

스마트스터디 통합 앱 관리 시스템

Page 40: 안-정적인 모바일 서비스 만들기

CleverTesting

Production

S3

RDS

User

ELB EC2

CF

Page 41: 안-정적인 모바일 서비스 만들기

CleverTesting

Production

S3

RDS

User

ELB EC2

CF

Page 42: 안-정적인 모바일 서비스 만들기

CleverTesting

RDSELB EC2 RDSELB EC2RDSELB EC2

RDSELB EC2RDSELB EC2

RDSELB EC2RDSELB EC2

Page 43: 안-정적인 모바일 서비스 만들기

Testing

Clever!Notice

Clever!App

Clever!Log

Clever!Push

Clever / ONE

SMARTSTUDY!ONE

Page 44: 안-정적인 모바일 서비스 만들기
Page 45: 안-정적인 모바일 서비스 만들기
Page 46: 안-정적인 모바일 서비스 만들기
Page 47: 안-정적인 모바일 서비스 만들기
Page 48: 안-정적인 모바일 서비스 만들기
Page 49: 안-정적인 모바일 서비스 만들기
Page 50: 안-정적인 모바일 서비스 만들기
Page 51: 안-정적인 모바일 서비스 만들기
Page 52: 안-정적인 모바일 서비스 만들기
Page 53: 안-정적인 모바일 서비스 만들기

Trap card

BOTO• ACL • Meta data

Cache-control Content-type

Page 54: 안-정적인 모바일 서비스 만들기

Trap card

Django• ELB + uWSGI • Content-length

ConditionalGetMiddleware

Page 55: 안-정적인 모바일 서비스 만들기

http://uwsgi-docs.readthedocs.org/en/latest/HTTP.html#can-i-use-uwsgi-s-http-capabilities-in-production

Page 56: 안-정적인 모바일 서비스 만들기

Trap card

Cloudfront • Minimum TTL

Page 57: 안-정적인 모바일 서비스 만들기

Minimum TTL 1시간 미만은 의도대로 동작하지 않음

Page 58: 안-정적인 모바일 서비스 만들기

Safe and Dynamic mobile service via Amazon CloudFront

박현우, 스마트스터디 아마존 웹 서비스 한국 사용자 모임

Mar 8, 2014