스타트업과 개발자를 위한 클라우드 태권 세미나 : sm entertainment 에브리싱...

13
에에에에 AWS 에에 에에 2014.02.20 S.M.ENTERTAINMENT 에에에에 에에에 에에 에에에

Upload: amazon-web-services-korea

Post on 13-Jan-2015

6.337 views

Category:

Technology


5 download

DESCRIPTION

2014년 2월 20일 부산 BEXCO에서 개최되었던 스타트업과 개발자를 위한 클라우드 태권 세미나에서 고객사 발표를 맡아주신 SM Entertainment 김영준 팀장님의 발표 자료 입니다.

TRANSCRIPT

Page 1: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

에브리싱 AWS 이용 사례

2014.02.20

S.M.ENTERTAINMENT

에브리싱 개발팀 팀장 김영준

Page 2: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

에브리싱 소개 _ 1. 컨셉UI

• 2013 년 1 월 – 기획 , 디자인 , 개발 작업 시작

• 2013 년 5 월 - 태국 출시

• 2013 년 6 월 – 한국 출시

• 2013 년 8 월 – GooglePlay 여름 음악 축제 Featured

• 2013 년 12 월 – 2013 GooglePlay 앱 어워즈 Top 16

선정

Page 3: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

AWS 적용 과정

Page 4: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

요구사항 + 해결책

고정 IP 의 메시지 프로세싱 서버

AWS EC2 m3.2xlarge instance

Elastic IP 할당

가수 – 앨범 – 곡의 복잡한 DB 구조 + 추후 NoSQL 구조로 확장 가능성

AWS MySQL RDS db.m2.2xlarge

NoSQL 확장을 위해 Primary Key 로 UUID 이용

반주 MR, 자켓 이미지 등의 binary file 저장 공간 (+ 속도 )

AWS S3

AWS CloudFront (CDN)

Page 5: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

Simple spec of everysing service

Amazon EC2( 서버 )

Amazon S3(music, lyric, image 저장

소 )

Amazon RDS( 관계형 데이터 베이스 )

everysing 관리자 페이지

관리자 사용자

everysing applica-tion

(Android, iOS)

파일 업로드(music, lyric, image)

메타 정보 관리(artist, album, song) 메시지 교환

파일 다운로드(music, lyric, image)

내부 통신

Amazon CloudFront(music, lyric, image caching

server)

Cloud Service

Page 6: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

Benefit of Using AWS?

1. S3 (Simple Storage Service) is Best!

• Binary file 에 대한 물리적인 관리 X

• 저렴한 가격

• CDN 으로의 손쉬운 연결 (Global service ready)

2. Scalability

• 서버 / 네트워크 이용량 예측 X

• RDS 에서 NoSQL 로의 확장이 용이

3. 서비스에 대한 평가 가치 Up!

• 서비스가 Cloud 를 이용하는 것은 서비스의 valuation 시점에서 더 높은

가치 평가를 얻기 위한 필수 요소

Page 7: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

알아두면 좋은 팁들

Page 8: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

알아두면 좋은 팁들 1

1. Peak time 에는 S3 data 접근에 장애가 생기는 경우가 발생할 수 있음 .

• 저녁 시간대에 S3 data http access 시 packet drop 현상 발생 (K 모

통신사 이용 시 )

• 대부분의 다운로드는 CloudFront 를 이용하여 해결 . ( 국내에 edge 서버

有 )

• 실시간 수정 및 반영이 중요한 경우에는 EC2 server 에서 직접 S3 로 업로드

및 다운로드 하는 우회로 이용 .

2. 문서 산출물 관리 .

• 엑셀 형태로 관리가 가능한 문서라면 Google SpreadSheet 이용 . ( 공유

기능 이용 )

• 그 외 문서들은 가급적 Evernote 이용 . (Premium 계정 구매 + 공유 기능

이용 )

3. 최대한 빠른 시점에 출시할 수 있도록 기획 / 디자인 / 개발 . MVP!

• 참신한 기획과 깔끔한 UX 는 개발 기간을 단축시킨다 .

• 세상에서 가장 좋은 QA 는 이용자들의 평가 . ( 디바이스 전수 검사 + 전 기능

검사 )

Page 9: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

알아두면 좋은 팁들 UUID

1. Multi master 환경에서 Primary Key 를 확보하는 방법 (MySQL ->

NoSQL)

• 각각의 서버가 중복되지 않는 Primary Key 를 생성할 수 있어야 함 .

• 따라서 MySQL 의 Auto increment Key 는 이용할 수 없음

• Java 에서도 UUID 를 생성해 주지만 중복이 되지 않는다는 보장이 없음

• 통신사마다 번호를 별도로 할당 받는 것과 같은 방식이 필요 (011, 016, 017, 018,

019)

2. Long variable type 이용 (64bit)

1. Web Base 64 로 표현 시 11 Character 로 표현 ( 6 bit -> 1

char )

• https://www.everysing.com/p/A95hJQAAADk

• http://www.youtube.com/watch?v=X6Jx2HWa4d0

F bit Time bit Sequential bit Server index bit

Sign 1 bit

31 bit 21 bit 11 bit

버림 getTime 에서 2012 년 1 월 1 일 까지의 값 (1325376000)을 뺀 후 초 단위의 time 값을 이용 . 2080 년까지 표현 가능 .

매 초 단위로 0 부터 1 씩 올리는 값을 가진다 . (1 초마다 200 만 UUID 생성 가능 )

각 서버마다 할당 받는 번호 . 2048 개 서버 할당 가능

Page 10: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

알아두면 좋은 팁들 - ScalableLayout

ScalableLayout - 안드로이드의 다양한 해상도 대응을 위한 솔루션 (BSD

License)

• LinearLayout 이나 FrameLayout 과 같은 wrapper layout 을 대체 하는

개념

• View 를 감싸는 layout 을 생성한 뒤 내부의 view 들을 상대적인 수치로 위치와

크기 설정• 게임 엔진에서 이용하는 방식 . DP 나 PX 같은 단위가 필요 없음 .

• 옵티머스 원 부터 갤럭시 탭 10.1 까지 한번의 코딩으로 해결

• 다양한 해상도 비율에서 일관성 있는 UI 제공 ( 옵티머스 뷰와 같은 변태적인 화면비율 도 대응 )

• https://github.com/ssomai/ScalableLayout

Page 11: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

알아두면 좋은 팁들 – LocalStrings

LocalStrings – 다국어 지원을 위한 text 관리 툴 + Class (BSD Li-

cense)

• https://github.com/ssomai/LocalStringGenerator

• Google SpreadSheet 를 통해 편리한 text 수정 및 관리 가능

• Google SpreadSheet 에서 Java 파일 생성 ( 언어별 text 와 주석 포함 )

• iOS 도 지원

• Basic.OK.get() -> 디바이스의 언어가 한글이면 확인으로 변환 . 영어면 OK

로 변환

Page 12: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

알아두면 좋은 팁들 – LocalStrings

Page 13: 스타트업과 개발자를 위한 클라우드 태권 세미나 : SM Entertainment 에브리싱 AWS 이용 사례

김영준 ([email protected])

ScalableLayout / LocalStrings 관련 문의 김영만 ([email protected])

감사합니다 .