SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Scaling Mapufacture with
  Amazon Web Services


       Andrew Turner
 http://highearthorbit.com
andrew@mapufacture.com
Scaling
                          as taught by gnomes



Phase 1 - Scale a Web Service
Phase 2 - ??????????
Phase 3 - $$$$PROFIT$$$$
Scaling
                         a work in progress

• We’re half-way along
• Lessons learned
• Pointers
• Tools
• Points of discussion
About me
Airships
Back down to earth
$8.9
                                     9




http://oreilly.com/catalog/neogeography
Mapufacture Concept
Mapufacture Mobile
Mapufacture Widgets
RESTful
HTML - http://mapufacture.com/maps
GeoRSS - http://mapufacture.com/maps.rss
Atom-GeoRSS - http://mapufacture.com/maps.atom
GeoJSON - http://mapufacture.com/maps.json
KML - http://mapufacture.com/maps.kml
XML - http://mapufacture.com/maps.xml
Maps - http://mapufacture.com/maps (atom, rss, json, kml, xml)
Feeds - http://mapufacture.com/feeds (atom, rss, json, kml, xml)
Tags - http://mapufacture.com/tags (atom, rss, json, kml, xml)
Users - http://mapufacture.com/users (atom, rss, json, kml, xml)
       http://mapufacture.com/about/developers
OpenSearch
                   OpenSearch-Geo & Time
keyword - a free-form string to filter search.
   Applied to title, descriptions, tags, categories.
   Can further filter by using quot;field:keywordquot;, for example keyword=title:dogs
location - toponymic name (e.g. Boston or France) to search within
lat, lon - latitude and longitude of the center of a search. Use with distance
distance - the radius distance, in miles, to search about the center
bbox - the bounding box string to search within. Order is quot;west, south, east northquot;
limit - maximum number of results
page - page number to get the results of




http://mapufacture.com/search.atom?location=Ann+Arbor
PocketMaps
Platform
• Ruby on Rails
• PostgreSQL with PostGIS
• Memcached
• Lucene and Solr
• Apache
• Mongrel
Grow only as fast as necessary
               i.e. don’t be a Mentarbator




                             http://flickr.com/photos/mattdm/153703472/
Started with the
         little things...
• memcached
• database indexes
• clean code
  • ruby-prof, bleakhouse
  http://cfis.savagexi.com/articles/2007/07/10/how-to-profile-your-rails-application


• Still can be slow
   Find me all the items about Jazz bands playing between
     next Friday and Sunday within 5 miles of my house
Shared Server
            Internet   FastCGI
                                   ?
                                        ?
                        Rails
• Shared server
                                   ?
• FastCGI               MySQL

• MySQL
• Cheap
Dedicated Server
       Internet      Apache     Mongrel

                     Solr        Rails
• Dedicated server
• Mongrel            Lucene     PostgreSQL

• PostgreSQL
• Not Cheap
+

Decisions
• Scale the aggregator
• Job queues
• Don’t trust instances
• Cache feeds and data sources
+


                                    SQS
 Dedicated Server
                             Fast      Update

Apache       Mongrel
                                    EC2
                       SSH
                                    Ruby
              Rails
PostgreSQL


                                    EC2
              Solr
 Lucene
                       SSH
                                    Ruby

                             S3
TLA’s Decoded
• EC2 - Elastic Computing Cloud
   more computing than you can shake a stick at

• S3 - Simple Storage Service
   a place to keep your stuff

• SQS - Simple Queue Service
   easier than Drb

• AWS - Alexa Web Services
   who’s the most popular?
How to use EC2



             http://flickr.com/photos/davebluedevil/17508904/
Easy to Start
1. Sign up for Amazon Web Services
 http://google.com/search?q=amazon+web+services

2. Get the EC2 Command line tools
 http://google.com/search?q=ec2+tools

3. Choose a base AMI (aka OS image)
 something nice and stable, like Debian Etch

4. Install-fest
5. Store to S3
Debian Etch AMI
                Our Install
apt-get install -y apache2 irb rdoc gcc make memcached
build-essential libgeos-c1 postgresql-8.1-postgis
postgresql-client postgis subversion graphicsmagick
postgresql-8.1-postgis postgresql-8.1-plruby postgresql-
dev sun-java5-jre sun-java5-jdk
install ruby and rubygems
gem install -y mongrel mongrel_cluster rake rails
fakeweb hpricot mofo gruff graticule geonames coderay
clusterer feedtools postgres fastercsv libmagick9-dev
configure postgresql with postgis
setup apache for proxying
Debian Etch AMI
                Our Install
apt-get install -y apache2 irb rdoc gcc make memcached
build-essential libgeos-c1 postgresql-8.1-postgis
postgresql-client postgis subversion graphicsmagick
postgresql-8.1-postgis postgresql-8.1-plruby postgresql-
dev sun-java5-jre sun-java5-jdk
install ruby andDo once, but never again
                  rubygems
gem install -y mongrel mongrel_cluster rake rails
fakeweb hpricot mofo gruff graticule geonames coderay
clusterer feedtools postgres fastercsv libmagick9-dev
configure postgresql with postgis
setup apache for proxying
Amazon Tools

ec2-add-group                 ec2-describe-group             ec2-modify-image-attribute
ec2-add-keypair               ec2-describe-image-attribute   ec2-reboot-instances
ec2-authorize                 ec2-describe-images            ec2-register
ec2-cmd                       ec2-describe-instances         ec2-reset-image-attribute
ec2-confirm-product-instance   ec2-describe-keypairs          ec2-revoke
ec2-delete-group              ec2-fingerprint-key             ec2-run-instances
ec2-delete-keypair            ec2-gem-example.rb             ec2-terminate-instances
ec2-deregister                ec2-get-console-output         ec2-version
EC2 UI
Setup
$ set|grep -i ec2

EC2_CERT=/Users/ajturner/.ec2-mapufacture/cert-
PF4KK6RXUMGG5ZEUTQB4IKJNWZTPGY7Z.pem
EC2_HOME=/Applications/Internet/ec2
EC2_PRIVATE_KEY=/Users/ajturner/.ec2-mapufacture/pk-
PF4KK6RXUMGG5ZEUTQB4IKJNWZTPGY7Z.pem
Fire it up
$ ec2-run-instances ami-d7cd28be -k ~/.ssh/mapufacture.pem

$ ec2-describe-instances
RESERVATION     r-0d23cc46   541028356920      default

INSTANCE      i-7c3bd117    ami-d7cd28be ec2-67-202-4-648.z-1.compute-1.amazonaws.com
domU-12-31-36-00-0A-89.z-1.compute-1.internal running mapufacture 0         m1.small      2007-11-02T17:40:05
+0000

RESERVATION     r-28e40a41    541028356920     default

INSTANCE      i-2d10e533   ami-d7cd28be      ec2-67-202-27-894.compute-1.amazonaws.com
domU-12-31-37-00-36-45.compute-1.internal     running mapufacture   0         m1.small   2007-11-19T15:14:40
+0000


$ ssh -i ~/.ssh/mapufacture.pem root@ ec2-67-202-27-894.compute-1.amazonaws.com
Behold the power...
%w[rubygems EC2].each{|g| require g }

ec2 = EC2::Base.new(
  :access_key_id => AWS_ACCESS_KEY,
  :secret_access_key => AWS_SECRET_KEY)

ec2_images = ec2.describe_images(:owner_id => quot;514028356902quot;).imagesSet.item
ec2.run_instances :image_id => ec2_images.first.imageId, :user_data => quot;sub-domainquot;

ec2.describe_instances.reservationSet.item.first.instancesSet.item.first.dnsName
Earls
#!/usr/bin/env bash
wget -q -O /tmp/user-data.out http://169.254.169.254/1.0/user-data
HN=`cat /tmp/user-data.out`
rm -f /tmp/user-data.out
wget -q -O - --http-user=USER --http-passwd=PASS 
      quot;http://dynamic.zoneedit.com/auth/dynamic.html?host=$HNquot; > /dev/null 2> /dev/null
hostname $HN
ZoneEdit
Capazon
                           don’t use the gem

http://niblets.wordpress.com/2007/02/12/capistrano-ec2-sitting-in-a-tree-k-i-s-s-i-n-g/
Read more Details
          Somewhere Else
http://docs.amazonwebservices.com/AmazonEC2/gsg/2007-01-03/
How to use S3



            http://flickr.com/photos/harshadsharma/44793133/
bukkits
buckets


http://s3.amazonaws.com/pocketmaps/feed_11.pdf
                         bucket     filename
aws-s3
%w[rubygems aws-s3 open-uri].each { |g| require g }

AWS::S3::Base.establish_connection!(
   :access_key_id => AWS_ACCESS_KEY,
   :secret_access_key => AWS_SECRET_KEY
 )

AWS::S3::S3Object.store(filename, open(filename), 'bucket', :access => :public_read)
                                                                     :private
                                                                     :public_read_write
                                                                     :authenticated_read
attachment_fu
Model: source_cache.rb
 class SourceCache < ActiveRecord::Base
   belongs_to :source
   has_attachment :max_size => 40.megabytes,
             :storage => :s3
 end

Model: source.rb
 def get_with_cache
   file_cache = self.source_caches.first || SourceCache.new
   file_cache.url = self.url
   file_cache.source = self
   file_cache.id = self.id if file_cache.new_record?
   file_cache.save
   self.get_without_cache(file_cache.public_filename)
 end
 alias_method_chain :get, :cache
Forklift
S3 Firefox Organizer
How to use SQS



            http://flickr.com/photos/81436485@N00/1329153675/
sqs
%w[rubygems aws-s3 open-uri].each { |g| require g }

SQS.access_key_id = AWS_ACCESS_KEY
SQS.secret_access_key = AWS_SECRET_KEY

my_queue = SQS.get_queue('FastQueue')
my_queue.send_message “feed:20”

messages = my_queue.receive_messages(:count => count)
messages.each do |message|
  puts message.body
end
sqs warning!
SQS-0.1.5/lib/sqs.rb
       350: class Element
       351:    ...
       352:
       353: # modified b/c trounces REXML
       354: # def attribute ; self.node_text( quot;Attributequot; ) ; end
       355:
              ....
Alternatives?
• Drb
• Starling
• Starfish
How to use Alexa



               http://flickr.com/photos/devos/95230930/
Ranking
>> alexa_rank = AWS::Alexa.rank(quot;mapufacture.comquot;)
=> 1 264 223
>> alexa_rank = AWS::Alexa.rank(quot;rubymi.orgquot;)
=> 7 714 998
>> alexa_rank = AWS::Alexa.rank(quot;ruby-lang.orgquot;)
=> 38 265
Where we’re going
                                     EC2
Dedicated Server
  Load Balance                      Apache
                                   Mongrel
    PostgreSQL     High-Read
                   Replication
                                 Rails       DB

      Lucene
                    User-Edits             Index
Where we’re going
     EC2                         EC2                 EC2
DB         Index            DB         Index    DB         Index      DB




                                                        Aggregators
                   Dedicated Server
                                               SQS
                     Load Balance
                                                        Aggregators
                                               Batch?
                                                        Aggregators
               PostgreSQL        Lucene
Replication
• PostgreSQL: Slony-I
• Master to multiple slaves
• Fail-over
                  SQL update
        Update
                                  Update
        Master

                 Update                    Slave

                          Slave
Database Sharding

• Dr. Nic’s Magic Models
 http://magicmodels.rubyforge.org/magic_multi_connections/


• ActiveDelegate
 http://www.robbyonrails.com/articles/2007/10/05/multiple-database-
 connections-in-ruby-on-rails
ActiveDelegate
# database.yml
                               # app/models/master_database.rb
login: &login
                               class MasterDatabase < ActiveRecord::Base
  adapter: postgresql
                                  handles_connection_for :master_database
  host: localhost
                               end
  port: 5432

production:                    # app/models/animal.rb
 database: mapufacture_local   class Animal < ActiveRecord::Base
 <<: *login                       delegates_connection_to :master_database,
                                        :on => [:create, :save, :destroy]
# NOTICE THE NEXT ENTRY/KEY    end
master_database:
 database: mapufacture
 <<: *login
Costs
EC2                                              Bandwidth
                                                 Upload: $0.10 per GB
      Hour      Day    Month         Specs       Download: $0.18 per GB - first 10 TB / month
                                1.7 GB memory
 S    $0.10    $2.40     $72                     Requests
                                ~1x 1Ghz Xeon
                                160 GB storage
                                                 $0.01 per 1,000 PUT or LIST requests
                                7.5 GB memory
                                                 $0.01 per 10,000 GET and all other requests*
M     $0.40    $9.60    $288    ~2x 2Ghz Xeon
                                850 GB storage

                                15 GB memory
 L    $0.80   $19.20    $576    ~4x 2Ghz Xeon
                                1.7 TB storage




S3                                               SQS
Storage: $0.15 per GB / Month                    Messages
Upload: $0.10 per GB                             $0.10 per 1,000 messages sent
Download: $0.18 per GB - first 10 TB / month

Requests
$0.01 per 1,000 PUT or LIST requests
$0.01 per 10,000 GET and all other requests*
Remaining Questions

• Round Robin vs. Load Balancing
• Dynamic scaling
• Replication speed
• Size Benefit (small, medium, large)
$8.9
     9
here be dragons

Weitere ähnliche Inhalte

Was ist angesagt?

AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricksjimi-c
 
Ansible : what's ansible & use case by REX
Ansible :  what's ansible & use case by REXAnsible :  what's ansible & use case by REX
Ansible : what's ansible & use case by REXSaewoong Lee
 
Terraform 0.9 + good practices
Terraform 0.9 + good practicesTerraform 0.9 + good practices
Terraform 0.9 + good practicesRadek Simko
 
Introduction to cloudforecast
Introduction to cloudforecastIntroduction to cloudforecast
Introduction to cloudforecastMasahiro Nagano
 
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012Amazon Web Services
 
Tuning tips for Apache Spark Jobs
Tuning tips for Apache Spark JobsTuning tips for Apache Spark Jobs
Tuning tips for Apache Spark JobsSamir Bessalah
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode ChefSri Ram
 
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2Jeffrey Breen
 
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...Timofey Turenko
 
Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014
Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014
Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014gethue
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Stephane Jourdan
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadBram Vogelaar
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Simon McCartney
 
Meetup bangalore 9_novupdated
Meetup bangalore 9_novupdatedMeetup bangalore 9_novupdated
Meetup bangalore 9_novupdatedD.Rajesh Kumar
 
DATABASE AUTOMATION with Thousands of database, monitoring and backup
DATABASE AUTOMATION with Thousands of database, monitoring and backupDATABASE AUTOMATION with Thousands of database, monitoring and backup
DATABASE AUTOMATION with Thousands of database, monitoring and backupSaewoong Lee
 
Automating OSD and Post-OSD Configuration with Powershell and Orchestrator
Automating OSD and Post-OSD Configuration with Powershell and OrchestratorAutomating OSD and Post-OSD Configuration with Powershell and Orchestrator
Automating OSD and Post-OSD Configuration with Powershell and OrchestratorDigicomp Academy AG
 

Was ist angesagt? (20)

AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricks
 
Ansible : what's ansible & use case by REX
Ansible :  what's ansible & use case by REXAnsible :  what's ansible & use case by REX
Ansible : what's ansible & use case by REX
 
Terraform 0.9 + good practices
Terraform 0.9 + good practicesTerraform 0.9 + good practices
Terraform 0.9 + good practices
 
Introduction to cloudforecast
Introduction to cloudforecastIntroduction to cloudforecast
Introduction to cloudforecast
 
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
 
Tuning tips for Apache Spark Jobs
Tuning tips for Apache Spark JobsTuning tips for Apache Spark Jobs
Tuning tips for Apache Spark Jobs
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
 
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Rails
 
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
 
Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014
Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014
Hue: Big Data Web applications for Interactive Hadoop at Big Data Spain 2014
 
Terraform Cosmos DB
Terraform Cosmos DBTerraform Cosmos DB
Terraform Cosmos DB
 
Deploying SharePoint @ Cloud
Deploying SharePoint @ CloudDeploying SharePoint @ Cloud
Deploying SharePoint @ Cloud
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013
 
Meetup bangalore 9_novupdated
Meetup bangalore 9_novupdatedMeetup bangalore 9_novupdated
Meetup bangalore 9_novupdated
 
Refactoring terraform
Refactoring terraformRefactoring terraform
Refactoring terraform
 
DATABASE AUTOMATION with Thousands of database, monitoring and backup
DATABASE AUTOMATION with Thousands of database, monitoring and backupDATABASE AUTOMATION with Thousands of database, monitoring and backup
DATABASE AUTOMATION with Thousands of database, monitoring and backup
 
Automating OSD and Post-OSD Configuration with Powershell and Orchestrator
Automating OSD and Post-OSD Configuration with Powershell and OrchestratorAutomating OSD and Post-OSD Configuration with Powershell and Orchestrator
Automating OSD and Post-OSD Configuration with Powershell and Orchestrator
 

Andere mochten auch

Bar Camp London 7
Bar Camp London 7Bar Camp London 7
Bar Camp London 7lokku
 
Tổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcm
Tổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcmTổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcm
Tổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcmCông ty Tổ Chức Sự Kiện VietSky
 
Day01 Exploring 21st Century Technologies
Day01 Exploring 21st Century TechnologiesDay01 Exploring 21st Century Technologies
Day01 Exploring 21st Century TechnologiesBatavia High School
 
Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...
Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...
Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...Công ty Tổ Chức Sự Kiện VietSky
 
Células estaminais
Células estaminaisCélulas estaminais
Células estaminais12anogolega
 

Andere mochten auch (8)

Bar Camp London 7
Bar Camp London 7Bar Camp London 7
Bar Camp London 7
 
GréCia
GréCiaGréCia
GréCia
 
Authentic Collaboration - Dr. John J. Scherer
Authentic Collaboration - Dr. John J. Scherer Authentic Collaboration - Dr. John J. Scherer
Authentic Collaboration - Dr. John J. Scherer
 
Tổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcm
Tổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcmTổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcm
Tổ chức lễ động thổ chuyên nghiệp lớn nhất ở tại đồng nai, bình dương, tp.hcm
 
Day01 Exploring 21st Century Technologies
Day01 Exploring 21st Century TechnologiesDay01 Exploring 21st Century Technologies
Day01 Exploring 21st Century Technologies
 
abc
abcabc
abc
 
Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...
Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...
Khởi công, công ty tổ chức lễ khởi công chuyên nghiệp giá rẻ tại bình dương, ...
 
Células estaminais
Células estaminaisCélulas estaminais
Células estaminais
 

Ähnlich wie Scaling Mapufacture on Amazon Web Services

The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyRobert Dempsey
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09Chris Purrington
 
Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloudKyle Rames
 
AWS Sydney Summit 2013 - Your First Week with Amazon EC2
AWS Sydney Summit 2013 - Your First Week with Amazon EC2AWS Sydney Summit 2013 - Your First Week with Amazon EC2
AWS Sydney Summit 2013 - Your First Week with Amazon EC2Amazon Web Services
 
Deploying Rails App On Ec2
Deploying Rails App On Ec2Deploying Rails App On Ec2
Deploying Rails App On Ec2Akhil Bansal
 
Itb session v_memcached
Itb session v_memcachedItb session v_memcached
Itb session v_memcachedSkills Matter
 
Codemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm ModeCodemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm ModeSimone Soldateschi
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the CloudWesley Beary
 
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
Richard Cole of Amazon Gives Lightning Tallk at BigDataCamp
Richard Cole of Amazon Gives Lightning Tallk at BigDataCampRichard Cole of Amazon Gives Lightning Tallk at BigDataCamp
Richard Cole of Amazon Gives Lightning Tallk at BigDataCampBigDataCamp
 
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...QCloudMentor
 
CloudFork
CloudForkCloudFork
CloudForkESUG
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationClaus Ibsen
 
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduceAmazon Web Services
 
.NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time....NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time...Michele Leroux Bustamante
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenchesYan Cui
 

Ähnlich wie Scaling Mapufacture on Amazon Web Services (20)

The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
AWS Sydney Summit 2013 - Your First Week with Amazon EC2
AWS Sydney Summit 2013 - Your First Week with Amazon EC2AWS Sydney Summit 2013 - Your First Week with Amazon EC2
AWS Sydney Summit 2013 - Your First Week with Amazon EC2
 
Deploying Rails App On Ec2
Deploying Rails App On Ec2Deploying Rails App On Ec2
Deploying Rails App On Ec2
 
Itb session v_memcached
Itb session v_memcachedItb session v_memcached
Itb session v_memcached
 
Codemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm ModeCodemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm Mode
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
Richard Cole of Amazon Gives Lightning Tallk at BigDataCamp
Richard Cole of Amazon Gives Lightning Tallk at BigDataCampRichard Cole of Amazon Gives Lightning Tallk at BigDataCamp
Richard Cole of Amazon Gives Lightning Tallk at BigDataCamp
 
My First Big Data Application
My First Big Data ApplicationMy First Big Data Application
My First Big Data Application
 
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
AWS Study Group - Chapter 03 - Elasticity and Scalability Concepts [Solution ...
 
Rails Performance
Rails PerformanceRails Performance
Rails Performance
 
CloudFork
CloudForkCloudFork
CloudFork
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
 
Scalr Demo
Scalr DemoScalr Demo
Scalr Demo
 
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
 
.NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time....NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time...
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenches
 

Mehr von Andrew Turner

GeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommonsGeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommonsAndrew Turner
 
Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017Andrew Turner
 
State of the Map 2015
State of the Map 2015State of the Map 2015
State of the Map 2015Andrew Turner
 
Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013Andrew Turner
 
OpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social MediaOpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social MediaAndrew Turner
 
OK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial DataOK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial DataAndrew Turner
 
GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012Andrew Turner
 
Geospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American ArchivistsGeospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American ArchivistsAndrew Turner
 
Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011Andrew Turner
 
Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011Andrew Turner
 
tech tools for global collaboration 4 good
tech tools for global collaboration 4 goodtech tools for global collaboration 4 good
tech tools for global collaboration 4 goodAndrew Turner
 
Where2.0 That Matters
Where2.0 That MattersWhere2.0 That Matters
Where2.0 That MattersAndrew Turner
 
Humanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCCHumanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCCAndrew Turner
 
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009Andrew Turner
 
Crisis Mapping Lightning Talk Geo Commons
Crisis Mapping Lightning Talk   Geo CommonsCrisis Mapping Lightning Talk   Geo Commons
Crisis Mapping Lightning Talk Geo CommonsAndrew Turner
 
How Neogeography Killed GIS
How Neogeography Killed GISHow Neogeography Killed GIS
How Neogeography Killed GISAndrew Turner
 
Where2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 SummitWhere2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 SummitAndrew Turner
 
Library of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservationLibrary of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservationAndrew Turner
 
GeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoderGeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoderAndrew Turner
 
Geospatial Analysis in the Cloud
Geospatial Analysis in the CloudGeospatial Analysis in the Cloud
Geospatial Analysis in the CloudAndrew Turner
 

Mehr von Andrew Turner (20)

GeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommonsGeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommons
 
Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017
 
State of the Map 2015
State of the Map 2015State of the Map 2015
State of the Map 2015
 
Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013
 
OpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social MediaOpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social Media
 
OK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial DataOK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial Data
 
GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012
 
Geospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American ArchivistsGeospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American Archivists
 
Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011
 
Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011
 
tech tools for global collaboration 4 good
tech tools for global collaboration 4 goodtech tools for global collaboration 4 good
tech tools for global collaboration 4 good
 
Where2.0 That Matters
Where2.0 That MattersWhere2.0 That Matters
Where2.0 That Matters
 
Humanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCCHumanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCC
 
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
 
Crisis Mapping Lightning Talk Geo Commons
Crisis Mapping Lightning Talk   Geo CommonsCrisis Mapping Lightning Talk   Geo Commons
Crisis Mapping Lightning Talk Geo Commons
 
How Neogeography Killed GIS
How Neogeography Killed GISHow Neogeography Killed GIS
How Neogeography Killed GIS
 
Where2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 SummitWhere2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 Summit
 
Library of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservationLibrary of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservation
 
GeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoderGeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoder
 
Geospatial Analysis in the Cloud
Geospatial Analysis in the CloudGeospatial Analysis in the Cloud
Geospatial Analysis in the Cloud
 

Kürzlich hochgeladen

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Kürzlich hochgeladen (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Scaling Mapufacture on Amazon Web Services

  • 1. Scaling Mapufacture with Amazon Web Services Andrew Turner http://highearthorbit.com andrew@mapufacture.com
  • 2. Scaling as taught by gnomes Phase 1 - Scale a Web Service Phase 2 - ?????????? Phase 3 - $$$$PROFIT$$$$
  • 3. Scaling a work in progress • We’re half-way along • Lessons learned • Pointers • Tools • Points of discussion
  • 6.
  • 8. $8.9 9 http://oreilly.com/catalog/neogeography
  • 9.
  • 11.
  • 12.
  • 13.
  • 14.
  • 17. RESTful HTML - http://mapufacture.com/maps GeoRSS - http://mapufacture.com/maps.rss Atom-GeoRSS - http://mapufacture.com/maps.atom GeoJSON - http://mapufacture.com/maps.json KML - http://mapufacture.com/maps.kml XML - http://mapufacture.com/maps.xml Maps - http://mapufacture.com/maps (atom, rss, json, kml, xml) Feeds - http://mapufacture.com/feeds (atom, rss, json, kml, xml) Tags - http://mapufacture.com/tags (atom, rss, json, kml, xml) Users - http://mapufacture.com/users (atom, rss, json, kml, xml) http://mapufacture.com/about/developers
  • 18. OpenSearch OpenSearch-Geo & Time keyword - a free-form string to filter search. Applied to title, descriptions, tags, categories. Can further filter by using quot;field:keywordquot;, for example keyword=title:dogs location - toponymic name (e.g. Boston or France) to search within lat, lon - latitude and longitude of the center of a search. Use with distance distance - the radius distance, in miles, to search about the center bbox - the bounding box string to search within. Order is quot;west, south, east northquot; limit - maximum number of results page - page number to get the results of http://mapufacture.com/search.atom?location=Ann+Arbor
  • 20. Platform • Ruby on Rails • PostgreSQL with PostGIS • Memcached • Lucene and Solr • Apache • Mongrel
  • 21. Grow only as fast as necessary i.e. don’t be a Mentarbator http://flickr.com/photos/mattdm/153703472/
  • 22. Started with the little things... • memcached • database indexes • clean code • ruby-prof, bleakhouse http://cfis.savagexi.com/articles/2007/07/10/how-to-profile-your-rails-application • Still can be slow Find me all the items about Jazz bands playing between next Friday and Sunday within 5 miles of my house
  • 23. Shared Server Internet FastCGI ? ? Rails • Shared server ? • FastCGI MySQL • MySQL • Cheap
  • 24. Dedicated Server Internet Apache Mongrel Solr Rails • Dedicated server • Mongrel Lucene PostgreSQL • PostgreSQL • Not Cheap
  • 25. + Decisions • Scale the aggregator • Job queues • Don’t trust instances • Cache feeds and data sources
  • 26. + SQS Dedicated Server Fast Update Apache Mongrel EC2 SSH Ruby Rails PostgreSQL EC2 Solr Lucene SSH Ruby S3
  • 27. TLA’s Decoded • EC2 - Elastic Computing Cloud more computing than you can shake a stick at • S3 - Simple Storage Service a place to keep your stuff • SQS - Simple Queue Service easier than Drb • AWS - Alexa Web Services who’s the most popular?
  • 28. How to use EC2 http://flickr.com/photos/davebluedevil/17508904/
  • 29. Easy to Start 1. Sign up for Amazon Web Services http://google.com/search?q=amazon+web+services 2. Get the EC2 Command line tools http://google.com/search?q=ec2+tools 3. Choose a base AMI (aka OS image) something nice and stable, like Debian Etch 4. Install-fest 5. Store to S3
  • 30. Debian Etch AMI Our Install apt-get install -y apache2 irb rdoc gcc make memcached build-essential libgeos-c1 postgresql-8.1-postgis postgresql-client postgis subversion graphicsmagick postgresql-8.1-postgis postgresql-8.1-plruby postgresql- dev sun-java5-jre sun-java5-jdk install ruby and rubygems gem install -y mongrel mongrel_cluster rake rails fakeweb hpricot mofo gruff graticule geonames coderay clusterer feedtools postgres fastercsv libmagick9-dev configure postgresql with postgis setup apache for proxying
  • 31. Debian Etch AMI Our Install apt-get install -y apache2 irb rdoc gcc make memcached build-essential libgeos-c1 postgresql-8.1-postgis postgresql-client postgis subversion graphicsmagick postgresql-8.1-postgis postgresql-8.1-plruby postgresql- dev sun-java5-jre sun-java5-jdk install ruby andDo once, but never again rubygems gem install -y mongrel mongrel_cluster rake rails fakeweb hpricot mofo gruff graticule geonames coderay clusterer feedtools postgres fastercsv libmagick9-dev configure postgresql with postgis setup apache for proxying
  • 32. Amazon Tools ec2-add-group ec2-describe-group ec2-modify-image-attribute ec2-add-keypair ec2-describe-image-attribute ec2-reboot-instances ec2-authorize ec2-describe-images ec2-register ec2-cmd ec2-describe-instances ec2-reset-image-attribute ec2-confirm-product-instance ec2-describe-keypairs ec2-revoke ec2-delete-group ec2-fingerprint-key ec2-run-instances ec2-delete-keypair ec2-gem-example.rb ec2-terminate-instances ec2-deregister ec2-get-console-output ec2-version
  • 34. Setup $ set|grep -i ec2 EC2_CERT=/Users/ajturner/.ec2-mapufacture/cert- PF4KK6RXUMGG5ZEUTQB4IKJNWZTPGY7Z.pem EC2_HOME=/Applications/Internet/ec2 EC2_PRIVATE_KEY=/Users/ajturner/.ec2-mapufacture/pk- PF4KK6RXUMGG5ZEUTQB4IKJNWZTPGY7Z.pem
  • 35. Fire it up $ ec2-run-instances ami-d7cd28be -k ~/.ssh/mapufacture.pem $ ec2-describe-instances RESERVATION r-0d23cc46 541028356920 default INSTANCE i-7c3bd117 ami-d7cd28be ec2-67-202-4-648.z-1.compute-1.amazonaws.com domU-12-31-36-00-0A-89.z-1.compute-1.internal running mapufacture 0 m1.small 2007-11-02T17:40:05 +0000 RESERVATION r-28e40a41 541028356920 default INSTANCE i-2d10e533 ami-d7cd28be ec2-67-202-27-894.compute-1.amazonaws.com domU-12-31-37-00-36-45.compute-1.internal running mapufacture 0 m1.small 2007-11-19T15:14:40 +0000 $ ssh -i ~/.ssh/mapufacture.pem root@ ec2-67-202-27-894.compute-1.amazonaws.com
  • 36. Behold the power... %w[rubygems EC2].each{|g| require g } ec2 = EC2::Base.new( :access_key_id => AWS_ACCESS_KEY, :secret_access_key => AWS_SECRET_KEY) ec2_images = ec2.describe_images(:owner_id => quot;514028356902quot;).imagesSet.item ec2.run_instances :image_id => ec2_images.first.imageId, :user_data => quot;sub-domainquot; ec2.describe_instances.reservationSet.item.first.instancesSet.item.first.dnsName
  • 37. Earls #!/usr/bin/env bash wget -q -O /tmp/user-data.out http://169.254.169.254/1.0/user-data HN=`cat /tmp/user-data.out` rm -f /tmp/user-data.out wget -q -O - --http-user=USER --http-passwd=PASS quot;http://dynamic.zoneedit.com/auth/dynamic.html?host=$HNquot; > /dev/null 2> /dev/null hostname $HN
  • 39. Capazon don’t use the gem http://niblets.wordpress.com/2007/02/12/capistrano-ec2-sitting-in-a-tree-k-i-s-s-i-n-g/
  • 40. Read more Details Somewhere Else http://docs.amazonwebservices.com/AmazonEC2/gsg/2007-01-03/
  • 41. How to use S3 http://flickr.com/photos/harshadsharma/44793133/
  • 44. aws-s3 %w[rubygems aws-s3 open-uri].each { |g| require g } AWS::S3::Base.establish_connection!( :access_key_id => AWS_ACCESS_KEY, :secret_access_key => AWS_SECRET_KEY ) AWS::S3::S3Object.store(filename, open(filename), 'bucket', :access => :public_read) :private :public_read_write :authenticated_read
  • 45. attachment_fu Model: source_cache.rb class SourceCache < ActiveRecord::Base belongs_to :source has_attachment :max_size => 40.megabytes, :storage => :s3 end Model: source.rb def get_with_cache file_cache = self.source_caches.first || SourceCache.new file_cache.url = self.url file_cache.source = self file_cache.id = self.id if file_cache.new_record? file_cache.save self.get_without_cache(file_cache.public_filename) end alias_method_chain :get, :cache
  • 48. How to use SQS http://flickr.com/photos/81436485@N00/1329153675/
  • 49. sqs %w[rubygems aws-s3 open-uri].each { |g| require g } SQS.access_key_id = AWS_ACCESS_KEY SQS.secret_access_key = AWS_SECRET_KEY my_queue = SQS.get_queue('FastQueue') my_queue.send_message “feed:20” messages = my_queue.receive_messages(:count => count) messages.each do |message| puts message.body end
  • 50. sqs warning! SQS-0.1.5/lib/sqs.rb 350: class Element 351: ... 352: 353: # modified b/c trounces REXML 354: # def attribute ; self.node_text( quot;Attributequot; ) ; end 355: ....
  • 52. How to use Alexa http://flickr.com/photos/devos/95230930/
  • 53. Ranking >> alexa_rank = AWS::Alexa.rank(quot;mapufacture.comquot;) => 1 264 223 >> alexa_rank = AWS::Alexa.rank(quot;rubymi.orgquot;) => 7 714 998 >> alexa_rank = AWS::Alexa.rank(quot;ruby-lang.orgquot;) => 38 265
  • 54. Where we’re going EC2 Dedicated Server Load Balance Apache Mongrel PostgreSQL High-Read Replication Rails DB Lucene User-Edits Index
  • 55. Where we’re going EC2 EC2 EC2 DB Index DB Index DB Index DB Aggregators Dedicated Server SQS Load Balance Aggregators Batch? Aggregators PostgreSQL Lucene
  • 56. Replication • PostgreSQL: Slony-I • Master to multiple slaves • Fail-over SQL update Update Update Master Update Slave Slave
  • 57. Database Sharding • Dr. Nic’s Magic Models http://magicmodels.rubyforge.org/magic_multi_connections/ • ActiveDelegate http://www.robbyonrails.com/articles/2007/10/05/multiple-database- connections-in-ruby-on-rails
  • 58. ActiveDelegate # database.yml # app/models/master_database.rb login: &login class MasterDatabase < ActiveRecord::Base adapter: postgresql handles_connection_for :master_database host: localhost end port: 5432 production: # app/models/animal.rb database: mapufacture_local class Animal < ActiveRecord::Base <<: *login delegates_connection_to :master_database, :on => [:create, :save, :destroy] # NOTICE THE NEXT ENTRY/KEY end master_database: database: mapufacture <<: *login
  • 59. Costs EC2 Bandwidth Upload: $0.10 per GB Hour Day Month Specs Download: $0.18 per GB - first 10 TB / month 1.7 GB memory S $0.10 $2.40 $72 Requests ~1x 1Ghz Xeon 160 GB storage $0.01 per 1,000 PUT or LIST requests 7.5 GB memory $0.01 per 10,000 GET and all other requests* M $0.40 $9.60 $288 ~2x 2Ghz Xeon 850 GB storage 15 GB memory L $0.80 $19.20 $576 ~4x 2Ghz Xeon 1.7 TB storage S3 SQS Storage: $0.15 per GB / Month Messages Upload: $0.10 per GB $0.10 per 1,000 messages sent Download: $0.18 per GB - first 10 TB / month Requests $0.01 per 1,000 PUT or LIST requests $0.01 per 10,000 GET and all other requests*
  • 60. Remaining Questions • Round Robin vs. Load Balancing • Dynamic scaling • Replication speed • Size Benefit (small, medium, large)
  • 61. $8.9 9