Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using CloudFront with S3 at SMARTSTUDY (in Korean)

Park Hyunwoo
February 18, 2013

Using CloudFront with S3 at SMARTSTUDY (in Korean)

[제1회 아마존 웹 서비스 한국 사용자 모임] 에서 발표했던 자료입니다.

Park Hyunwoo

February 18, 2013
Tweet

More Decks by Park Hyunwoo

Other Decks in Technology

Transcript

  1. S3 와 Cloudfront • S3 : Simple Storage Service ◦

    무식하게 안전하다. ◦ 한 지역(region)에 여러 사본이 존재. ▪ vs EBS : 한 존(zone)에 여러 사본이 존재. • CF : CloudFront ◦ 콘텐츠 전송 서비스 (CDN). ◦ 원본(origin)으로부터 AWS 엣지(Edge)로 전송. ▪ http://aws.amazon.com/cloudfront/#details ▪ 전세계 약 30 개의 엣지. (아직 까지는 지구만)
  2. 왜 이걸 골랐나? • 대용량 멀티미디어 콘텐츠를 전 세계 모바일

    시장에 배포해야 해서. • 안정적으로, 빠르게, 적당한 가격으로 전 세계 에 배포해야 하므로. • 다양한 시스템을 운영하기 위한 인력이 충분 하지 않다.
  3. S3 Bucket ( tokyo ) s3cmd Package ( encrypted )

    Thumbnails Video npk Transcoder Gnash FFmpeg qtfaststart Flash Movie
  4. 어떻게 동작하는가? • S3 로 복사 ◦ 파일이 100개 정도면,

    GUI 도구를 사용한다. ◦ 그 이상이면 반드시 s3fs 나 s3cmd 를 사용. ◦ sync 기능이나 invalidation 이 필요하면, 역시 s3cmd. ◦ 약 3만 개 정도의 파일이 있어서, s3cmd 를 선택. • s3cmd ◦ 엄청 좋음! ◦ S3 와 CloudFront 위에서 동작함.
  5. 어떻게 동작하는가? (계속) • s3cmd ◦ AWS 콘솔에서 할 수

    있는 대부분의 일이 가능. ◦ INI 형식의 설정 파일. ◦ 마법같은 'sync' 명령이 제공됨 • s3cmd sync ◦ Glob 문법으로 특정 파일 지정 / 제외가 가능. ◦ ... 정규 표현식으로도 가능함. ◦ 자동으로 invalidatoin 요청을 보낼 수 있음. ◦ 어떤 파일이 변경될 지 '미리 해보기' 가능. (-n, --dry- run)
  6. • s3cmd sync ◦ 파일의 MD5 해시 정보로 달라진 여부를

    검사. ◦ (!) 파일 크기가 15MB 이상이면, 파일 크기로만 비교. ◦ 약 60GB, 3만개 파일에 대해 = 검사에 8분 소요. (i7 2500K + SATA HDD 에서 tokyo 버킷과 비교) • s3cmd sync --cf-invalidate ◦ Invalidation 요청을 자동으로 보내줌. ◦ (!) 동시 요청은 3개 까지 가능. (파일 3개가 아님) ◦ (!) 한 달에 1천 개 파일까지 무료. ◦ s3cmd cfinvalinfo 명령으로 진행 상황 확인 가능. 어떻게 동작하는가? (계속)
  7. * 버킷에서 각 엣지로의 복사 비용은 제외한 요금 국내 CDN

    피크 트래픽 기준 • 350Mbps/피크시 • $6.00/Mbps = $2,100 CloudFront 총 전송량 기준 • 10TB/한 달 • $0.209/GB = $2,090*
  8. • 더 작게 ◦ 최적의 옵션으로 미디어를 가공. ◦ 각

    플랫폼에 맞게 별도의 파일을 준비. ◦ 저장 비용은 전송 비용보다 싸다! • 정적으로 ◦ 자주 바뀌는 파일은 CloudFront 에 어울리지 않음. ◦ Invalidation 요청이 때로는 10분 정도 걸림. ◦ 정적이지 않은 파일들은 아직도 웹 서버를 사용 중. • 스트리밍 가능하게 ◦ 모바일 네트워크는 아직 느리므로. ◦ 다운로드 끝날 때까지 사용자를 기다리게 하지 말자. 팁
  9. • Gnash ◦ http://www.gnu.org/software/gnash/ • FFmpeg ◦ http://www.ffmpeg.org/ • qtfaststart

    ◦ https://github.com/danielgtaylor/qtfaststart • npk ◦ https://github.com/lqez/npk • s3cmd ◦ http://s3tools.org/ 링크