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

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

description

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

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

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])

감사합니다 .