AWS Customer Presentation - Zoomii

3,124 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
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,124
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
24
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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>

×