2. S3 와 Cloudfront
● S3 : Simple Storage Service
○ 무식하게 안전하다.
○ 한 지역(region)에 여러 사본이 존재.
■ vs EBS : 한 존(zone)에 여러 사본이 존재.
● CF : CloudFront
○ 콘텐츠 전송 서비스 (CDN).
○ 원본(origin)으로부터 AWS 엣지(Edge)로 전송.
■ http://aws.amazon.com/cloudfront/#details
■ 전세계 약 30 개의 엣지. (아직 까지는 지구만)
3. 왜 이걸 골랐나?
● 대용량 멀티미디어 콘텐츠를 전 세계 모바일
시장에 배포해야 해서.
● 안정적으로, 빠르게, 적당한 가격으로 전 세계
에 배포해야 하므로.
● 다양한 시스템을 운영하기 위한 인력이 충분
하지 않다.
5. Transcoder
Flash Gnash
FFmpeg
Package
( encrypted )
Movie qtfaststart
Thumbnails
npk
Video
S3 Bucket s3cmd
( tokyo )
6. npk
Video
S3 Bucket s3cmd
( tokyo )
{
Edge Edge Edge
CloudFront
Edge Edge
7. 어떻게 동작하는가?
● S3 로 복사
○ 파일이 100개 정도면, GUI 도구를 사용한다.
○ 그 이상이면 반드시 s3fs 나 s3cmd 를 사용.
○ sync 기능이나 invalidation 이 필요하면, 역시 s3cmd.
○ 약 3만 개 정도의 파일이 있어서, s3cmd 를 선택.
● s3cmd
○ 엄청 좋음!
○ S3 와 CloudFront 위에서 동작함.
8. 어떻게 동작하는가? (계속)
● s3cmd
○ AWS 콘솔에서 할 수 있는 대부분의 일이 가능.
○ INI 형식의 설정 파일.
○ 마법같은 'sync' 명령이 제공됨
● s3cmd sync
○ Glob 문법으로 특정 파일 지정 / 제외가 가능.
○ ... 정규 표현식으로도 가능함.
○ 자동으로 invalidatoin 요청을 보낼 수 있음.
○ 어떤 파일이 변경될 지 '미리 해보기' 가능. (-n, --dry-
run)
9. 어떻게 동작하는가? (계속)
● s3cmd sync
○ 파일의 MD5 해시 정보로 달라진 여부를 검사.
○ (!) 파일 크기가 15MB 이상이면, 파일 크기로만 비교.
○ 약 60GB, 3만개 파일에 대해 = 검사에 8분 소요.
(i7 2500K + SATA HDD 에서 tokyo 버킷과 비교)
● s3cmd sync --cf-invalidate
○ Invalidation 요청을 자동으로 보내줌.
○ (!) 동시 요청은 3개 까지 가능. (파일 3개가 아님)
○ (!) 한 달에 1천 개 파일까지 무료.
○ s3cmd cfinvalinfo 명령으로 진행 상황 확인 가능.
18. 팁
● 더 작게
○ 최적의 옵션으로 미디어를 가공.
○ 각 플랫폼에 맞게 별도의 파일을 준비.
○ 저장 비용은 전송 비용보다 싸다!
● 정적으로
○ 자주 바뀌는 파일은 CloudFront 에 어울리지 않음.
○ Invalidation 요청이 때로는 10분 정도 걸림.
○ 정적이지 않은 파일들은 아직도 웹 서버를 사용 중.
● 스트리밍 가능하게
○ 모바일 네트워크는 아직 느리므로.
○ 다운로드 끝날 때까지 사용자를 기다리게 하지 말자.