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

Using CloudFront with S3 at SMARTSTUDY (in Korean)

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Park Hyunwoo Park Hyunwoo
February 18, 2013

Using CloudFront with S3 at SMARTSTUDY (in Korean)

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

Avatar for Park Hyunwoo

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/ 링크