Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Customer Presentation - Zoomii

3,467 views

Published on

Zoomii presents at the AWS Start-Up Event - Toronto about their use of EC2 and S3 to power their impressive app.

Published in: Technology
  • Be the first to comment

AWS Customer Presentation - Zoomii

  1. zoomii.ca zoomii.com
  2. meta-slide <ul><li>What’s Zoomii? </li></ul><ul><li>N,000–foot tech </li></ul><ul><li>10-foot view: server startup </li></ul><ul><li>Future Tech </li></ul><ul><li>Why AWS? </li></ul>
  3. 100 dpi ~1 acre 256x256 tiles 46 Gigapixels
  4. EC2 – hosting S3 – backup/replication ECS – book data
  5.  
  6. Javascript “Java” w/macros
  7. Home-made HTTP server caching load balancer object database monitoring replication
  8. Starting a new Server
  9. on desktop <ul><li>ec2_render.sh: </li></ul><ul><li>echo &quot;update_exe.sh; screen -c render.rc“ > temp.txt </li></ul><ul><li>ec2run <image_id> -t c1.medium -f temp.txt </li></ul>
  10. on new server <ul><li>Instance starts, with image containing: </li></ul><ul><li>Java VM </li></ul><ul><li>Bootstrap classes, scripts </li></ul><ul><li>modified ‘/etc/rc.local’ </li></ul>
  11. on new server <ul><li>/etc/rc.local </li></ul><ul><li>Gets fresh Bootstrap from S3 </li></ul><ul><li>Gets, executes startup script </li></ul><ul><ul><li>curl -s http://169.254.169.254/latest/user-data </li></ul></ul><ul><ul><li>Contents: “update_exe.sh; screen –c render.rc” </li></ul></ul>
  12. on new server <ul><li>update_exe.sh </li></ul><ul><ul><li>Downloads fresh binaries/scripts from S3 </li></ul></ul><ul><li>screen –c render.rc </li></ul><ul><li>window 1: boxlink.sh </li></ul><ul><li>window 2: render.sh </li></ul>
  13. on new server <ul><li>render.sh – starts render server </li></ul><ul><ul><li>Requests cover data </li></ul></ul><ul><ul><ul><li>touch data/covers/synch.active </li></ul></ul></ul><ul><li>boxlink.sh – starts S3 replication service </li></ul><ul><ul><li>Polls data/ </li></ul></ul><ul><ul><li>Sees ‘data/covers/synch.active’ </li></ul></ul><ul><ul><li>Downloads active files from s3:/zoomii/data/covers </li></ul></ul><ul><ul><ul><li>… snap, diff3, diff3, diff2, diff1 </li></ul></ul></ul><ul><ul><li>Done. </li></ul></ul><ul><ul><ul><li>touch data/covers/synch.down </li></ul></ul></ul>
  14. on new server <ul><li>Render server </li></ul><ul><ul><li>Polling data/covers </li></ul></ul><ul><ul><li>Sees ‘synch.down’ </li></ul></ul><ul><ul><li>Loads files </li></ul></ul><ul><ul><li>Listens on port 80 </li></ul></ul><ul><ul><li>Uploads to s3:/zoomii/proxy/10.11.23.58.p80 : </li></ul></ul><ul><ul><ul><li>“ I handle ‘/tiles/*’. Cache for 365d” </li></ul></ul></ul>
  15. on proxy server (load balancer) <ul><li>Polls s3:/zoomii/proxy </li></ul><ul><li>Sees, gets ’10.11.23.58.p80’ </li></ul><ul><li>Starts forwarding ‘http://zoomii.com/tiles/*’ to ‘http://10.11.23.58:80/tiles/*’ </li></ul><ul><li>Caches responses from 10.11.23.58 for 365 days, and tells requesting browsers to do the same </li></ul>
  16. ongoing, on new server <ul><li>Render server </li></ul><ul><ul><li>Writes rolling log files to data/log </li></ul></ul><ul><ul><li>Polls data/covers for fresh files </li></ul></ul><ul><li>Boxlink, the replicator: </li></ul><ul><ul><li>Polls s3:/zoomii/data/covers </li></ul></ul><ul><ul><li>Downloads fresh files </li></ul></ul><ul><ul><li>Polls data/log </li></ul></ul><ul><ul><li>Uploads fresh log files </li></ul></ul>
  17. Future Tech <ul><li>EBS – Elastic Block Store </li></ul><ul><ul><li>1GB to 1TB persistent network volumes </li></ul></ul><ul><ul><li>Cheap - $0.10/GB/month </li></ul></ul><ul><ul><li>‘ Instant’ snapshots to S3 </li></ul></ul><ul><ul><li>New volumes lazy-load from snapshots </li></ul></ul><ul><li>Means: </li></ul><ul><ul><li>Faster server startup – 3 minutes vs. 3 hours </li></ul></ul><ul><ul><ul><li>Lazy-load 180 GB </li></ul></ul></ul><ul><ul><li>Fast server upgrades – 20 seconds downtime </li></ul></ul><ul><ul><ul><li>start new, detach old, attach new </li></ul></ul></ul>
  18. Why AWS? <ul><li>Flexible (new instance in 3 minutes) </li></ul><ul><li>+ Automatable </li></ul><ul><li>+ Low lock-in </li></ul><ul><li>+ By-the-minute billing </li></ul><ul><li>= $600 vs. $9,000 for launch month </li></ul><ul><li>= can bootstrap </li></ul>
  19. Speaking of Bootstrapping <ul><li>Seeking more funding </li></ul><ul><li>Short-term development / consulting contracts welcome </li></ul><ul><li>Angel investments welcome </li></ul><ul><li>[email_address] </li></ul>

×