SlideShare a Scribd company logo
1 of 56
Download to read offline
Running Java applications on the
Amazon El ti C
A       Elastic Compute Cl d
                      t Cloud


   Chris Richardson
   Author of POJOs in Action
   Founder of Cloud Tools
   www.chrisrichardson.net
          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                      Slide 1
Overall presentation g
        p            goal


         Show how to use
  Amazon Elastic Compute Cloud
for developing and deploying Java
            applications




           Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                       Slide 2
About Chris

                            Grew up in England and live in Oakland, CA
                                   p     g                        ,
                            Over twenty years of software development
                            experience
                                      Building object-oriented software since 1986
                                      Using Java since 1996
                                      Using J2EE since 1999
                            Author of POJOs in Action
                            Speaker at JavaOne, SpringOne, NFJS,
                            JavaPolis, Spring Experience, etc.
                            Chair of the eBIG Java SIG in Oakland
                            (www.ebig.org)
                            (www ebig org)
                            Run a consulting and training company that
                            helps organizations build better software faster
                            and deploy it on Amazon EC2
                            Founder of Cloud Tools, an open-source project
                            for d l i
                            f deploying J Java applications on Amazon EC2:
                                                  li ti        A        EC2
                            http://code.google.com/p/cloudtools




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                             Slide 3
Agenda
 g
 Cloud computing with Amazon EC2
 Using Amazon EC2
 Overview of Cloud Tools
 Developing on Amazon EC2
 Deploying on Amazon EC2




         Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                     Slide 4
Computing has come a long way
   p    g               g   y
                                                                                          Present
         Past




    www.computermuseum.org.uk

                                                                                   www.dell.com




   Yet we rarely have enough

                       Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                      Slide 5
Cloud computing
         p    g



     A pool of highly scalable, abstracted
        infrastructure that hosts your
         application, and is billed by
                 consumption
                         p




                                                                        By James Staten of Forrester Research



            Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                               Slide 6
Power generation
      g
   Past                                                               Present




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                Slide 7
Amazon-Style Cloud Computing
         y            p    g
 Elastic Compute Cloud (EC2)
   On-demand computing
   O d     d      ti
 Elastic Block Storage (EBS)
   quot;SAN on demandquot;
    SAN    demand
 Simple Storage Service (S3)
   Stores blobs of data
 Simple Queue Service (SQS)
   Hosted queue-based messaging system
 SimpleDB                                               Pay per use
   Store data sets                                   services managed
   Execute queries                                      by Amazon
              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                          Slide 8
What is Amazon EC2?
        Virtualized computing environment
        Server instances managed through a web service API
        IP addresses and host names assigned dynamically
        Pay by the hour ($0.10-0.80/hour) + external
        bandwidth ($0 10 0 18/Gbyte)
                    ($0.10-0.18/Gbyte)

https://ec2.amazonaws.com/?Action=RunInstances                                        <RunInstancesResponse>
 &ImageId=ami-398438493                                                               …
 &MaxCount=3                                                                          </RunInstancesResponse>
 &MinCount=3


cer@arrakis ~
          k
$ ssh … root@ec2-67-202-41-150.compute-1.amazonaws.com
Last login: Sun Dec 30 18:54:43 2007 from 71.131.29.181
[root@domU-12-31-36-00-38-23:~]



                          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                                    Slide 9
Instance types
          yp

         Virtual   Compute
                       p                         32//                Memory
                                                                          y        Storage $/hr
                                                                                        g  $/
         Cores     Units                         64
                   /core*                        Bit
Small    1         1                             32 bit              1.7G          160G      0.10
High-    2         2.5                           32 bit              1.7G          350G      0.20
CPU
Medium
Large    2         2                             64 bit              7.5G          850G      0.40
Extra    4         2                             64 bit              15G           1690G     0.80
Large
High-    8         2.5                           64 bit              7G            1690G     0.80
CPU XL

               * EC2 Compute Unit = 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor


                       Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                           Slide 10
Operating systems
 p      g y
 Use Amazon provided Machine Image (AMI)
   32-bit
   32 bit Fedora Core 4
   64-bit Fedora Core 6
 Many 3rd parties have p
    y     p            public AMIs
   Various Linux distributions
   E.g. Redhat, RightScale
 Sun provides OpenSolaris
 Windows is private beta
 Build your own Linux:
   Install applications starting with someone else's
   AMI and save it
   Create an AMI from scratch

               Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                           Slide 11
One minor thing…
              g

  Terminate your i t
  T    i t        instance
             ⇒
   y
   your local data is lost.

Either very good or very bad

         Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                     Slide 12
Elastic Block Storage
                   g
 Mountable storage volumes
   quot;On-demand SANquot;
   quot;O d       d
   Size: 1 GB to 1 TB
   Mount on a single instance
 Create snapshots
   Stored in S3
   Create new volumes from the snapshot
 Cost:
   $0.10/GByte/month
   $
   $0.10 per 1 million I/O requests
         p                   q

             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 13
Elastic IP addresses
 Instance IP addresses are dynamically
 allocated on start-up
              start up
   Does not work well for publicly accessible
   services, e.g. a website
 Elastic IP addresses:
   Statically allocated addresses
   Associated with your account (max. 5)
   Attached to an instance (e g public facing web
                            (e.g.
   server)
   You configure DNS to resolve to the elastic IP
   address
 Pricing:
   Non-attached Elastic IP address - $0.01/hour
   $0.10
   $0 10 per remap (if > 100 in a month)

               Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                           Slide 14
Regions and availability zones
  g                    y
 By default, your database master and slave
 could run on the same physical host!
 Regions:
   Geographically dispersed locations
   Currently only one
 Availability zone:
   Part of a region
              d   be   l
   Engineered to b insulated f
                           d from failure in other
                                  f l          h
   zones
 Specify availability zone when launching
 instances:
 i t
   Same zone as other instances for free data
   transfer
   Different zone f higher-availability
   Diff     t     for hi h    il bilit

               Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                           Slide 15
What is the Amazon Simple
Storage Service ( )
     g          (S3)?
 Flat storage model consisting of buckets
 and objects
   Bucket – has a name and contains objects
   Objects – has a key, stores 1 byte - 5G
   Object key can look like a path ☺
 Cost:
   $0.15/GB-Month
   $0 10 0 18/GB of data transferred
   $0.10-0.18/GB
   $0.00001-$0.000001/Web Service call
   Data transfers between EC2 and S3 are free of
   bandwidth charges
 Buckets and objects can be:
   Public – accessible by anyone
   P i
   Private – accessible to owner, acl member
                   ibl              l    b
              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                          Slide 16
S3 REST API
   PUT / HTTP/1.1
                                                                                Create a bucket
   Host: <BucketName>.s3.amazonaws.com
   Authorization: AWS AWSAccessKeyId:Signature
   …

   PUT /<ObjectName> HTTP/1.1
   Host: <BucketName>.s3.amazonaws.com
   Authorization: AWS AWSAccessKeyId:Signature                                  Create an item in a bucket
   …
   …Bytes…


   GET /<ObjectName> HTTP/1.1
   Host: <BucketName>.s3.amazonaws.com
                                                                                Download an item
   Authorization: AWS AWSAccessKeyId:Signature
   …

   DELETE /<ObjectName> HTTP/1.1
   Host: <BucketName>.s3.amazonaws.com
   Authorization: AWS AWSAccessKeyId:Signature                                 Delete an item
   …



                   Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                            Slide 17
Using EC2 and S3 together
    g              g
 AMIs are stored in S3
 EC2 instances use S3:
   Use REST API
   Store database snapshots in S3
   Use 3rd party Linux file system that
   stores data in S3
   Store EBS volume snapshots in S3




             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 18
So what does this mean?
 For developers
   Immediate access to many servers
   Simplified setup
   Great for testing
 For deployment
   Eliminates capital expenses
   Reduces risk of success catastrophe




             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 19
Agenda
 g
 Cloud computing with Amazon EC2
 Using Amazon EC2
 Overview of Cloud Tools
 Developing on Amazon EC2
 Deploying on Amazon EC2




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                      Slide 20
Signing up for Amazon Web
Services


                                                                      AWS access
                                                                      identifiers:
                                                                        Account Id
                                                                        Access Id
                                                                        Secret key
                                                                        Private key
                                                                        and certificate
                                                                      Only takes a
                                                                      few minutes




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                Slide 21
EC2 API and Tools
 SOAP and Query APIs
   Launch and manage instances etc
   L    h   d        i t        t
 Amazon provided CLI tools
   CLI equivalents of APIs
   AMI creation tools
 AWS CLI tools from Tim Kay
                          y
   CLI for S3 and EC2
   Alternatives to Amazon CLI tools
 ElasticFox
 El   i F
   Awesome Firefox plugin
   Launch and manage instances

              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                          Slide 22
Using the Q
    g     Query API
              y
 https://ec2.amazonaws.com/?queryparame
 ters...
 Mandatory parameters:
   Action – what to do
   AWSAccessKeyId – your access id
   AWSA        K Id
   Version – API version
   Timestamp – when request was made
             p           q
   Expires – when it expires
   Signature – digest of parameters and secret
   key
   SignatureVersion – set to 1
 Other parameters depend on Action
 Returns an XML d
 R t            documentt
             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 23
Example EC2 requests
    p         q

Action                                                Parameters
RunInstances                                          MinCount, MaxCount, ImageId,
                                                      InstanceType, …
TerminateInstances                                    InstanceId.n
                                                      InstanceId n
DescribeInstances                                     InstanceId.n
CreateSecurityGroup                                   GroupName, GroupDescription
AuthorizeSecurityGroupIngress                         GroupName,
                                                      SourceSecurityGroupName,
                                                      IpProtocol
DeauthorizeSecurityGroupIngress
     h     S       G                                  …
…




                      Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                  Slide 24
aws - simple access to EC2 and S3
         p

http://timkay.com/aws/
Easy to use CLI for EC2 and S3
Implemented in Perl
Authenticates using access id and secret
key stored in ~/.awssecret




             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 25
ElasticFox– Firefox plugin
                    p g




           Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                       Slide 26
Launching instances
        g




                                                                 TIP: launch with a key
                                                                                      y
                                                                 pair or else you won't
                                                                 have access




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                    Slide 27
Creating y
       g your own image
                     g
 Easier: Modify an existing AMI
   Launch AMI
   L     h
   Configure: e.g. yum install …
 Harder: Build one from scratch
   Launch AMI
   Create a file to contain OS installation
   Mount as a loopback file
   Install OS: yum –-installroot
               y
 Use AMI tools to bundle and upload to
 S3

             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 28
Agenda
 g
 Cloud computing with Amazon EC2
 Using Amazon EC2
 Overview of Cloud Tools
 Developing on Amazon EC2
 Deploying on Amazon EC2




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                      Slide 29
Deploying a web application on EC2
  p y g          pp




       Not rocket science but there are many servers to configure and multiple files to upload


                    Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                       Slide 30
What's Cloud Tools?
 Open source project
 32 and 64 bit AMIs
   CentOS 5.10
   Apache/Tomcat/MySQL/JMeter/JetS3t installed
    p             y Q
 EC2Deploy framework
   Launches instances
   Configures Tomcat MySQL Apache
               Tomcat, MySQL,
   Deploys web applications
   Runs Jmeter tests
   Written in Groovy
 Maven and Grails plugins
   Quick and easy deployment to EC2

              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                          Slide 31
EC2Deploy framework
     p y
 Provides a DSL for describing a cluster:
   Number of Tomcats, M SQL slaves
   N   b     fT     t MySQL l
   Database scripts
   Location of web applications
 Launches EC2 instances
 Configures MySQL
      g       y Q
 Configures Tomcat and deploys web
 applications
 Configures Apache to proxy the Tomcat
 servers
 Runs JMeter tests
             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 32
Example EC2Deploy Script
       p        p y      p

def ec2 = new EC2(…)

ClusterSpec clusterSpec = new ClusterSpec()
          .tomcats(1)
          .instanceType(EC2InstanceType.SMALL)
          .slaves(1)
          .webApp('/home/cer/…/ptrack', quot;ptrackquot;)
            ebApp('/home/cer/ /ptrack'
          .catalinaOptsBuilder({optsBuilder, databaseHost, slaves ->
                     optsBuilder.arg(quot;-Xmx500mquot;)
                     optsBuilder.prop(quot;jdbc.db.serverquot;, databaseHost)})
          .schema(quot;ptrackquot;, [quot;ptrackquot;: quot;ptrackquot;],
                    [ s c/test/ esou ces/testd
                    [quot;src/test/resources/testdml1.sqlquot;,
                                                  .sq ,
                      quot;src/test/resources/testdml2.sqlquot;])

SimpleCluster cluster = new SimpleCluster(ec2, clusterSpec)

cluster.start()

cluster.loadTest(quot;/home/cer/…/jmeter/SimpleTest.jmxquot;, [5, 10, 15])

cluster.stop()




                                Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                            Slide 33
Domain model
                                    ClusterSpec                      <<façade>>
                                                                     SimpleCluster
                               name
                                                                     stop()
                               numberOfTomcats
                                                                     start()
                               numberOfMySqlSlaves
                                                                     loadTest()
                               ...

          WebApp

     context                                                                     Jmeter
                                 TomcatServer          MySqlServer                                   ApacheServer
     explodedWar                                                               Application
     uploadToS3()
     updateTomcat()




                                                               <<abstract>>
                                                                Application




                                 EC2                             EC2Server                    EC2InstanceState

                           startPolling()                   waitUntilRunning()               instanceId
                           stopPolling()                    stop()                           state
                           newServers(n)                    ssh(command)                     publicDnsName
                           ...                              ...                              privateDnsName



   Uses Query API
   to run, terminate
                                                                                               Executes ssh and
   and describe
                             EC2Request                                                        scp commands
   instances                                                         Ssh
                              Executor
                                                          ssh(dns, command, …)
                       executeRequest(params)




                              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                                                    Slide 34
Configuration DSL
           g
class ApacheServer extends Application {

    def configure() {
           writeFile fileName: quot;$apacheConfDir/cluster.confquot;,
                templateName: quot;/templates/cluster.confquot;,
                templateArgs: [tomcats: tomcats]
           exec quot;$apacheBinDir/apachectl restartquot;
           waitForHttp port:80, path: tomcats[0].contexts[0]
     }
…
         class MySqlServer extends Application {
}
          def
          d f configureAsMaster() {
                 fi    A M t ()
                 writeFile fileName: quot;/etc/my.cnfquot;, templateName: quot;/templates/master.my.cnfquot;

                 restartService quot;mysqldquot;

                 exec command: quot;mysql -u rootquot;,
                     templateName: quot;/templates/createSchema.sqlquot;,
                     templateArgs: [schemaSpec: schemaSpec]

                 executeSchemaScripts()
             }
         }

                                   Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                               Slide 35
Efficiently uploading web
applications, etc.
 pp          ,
  Non-durable disks = upload the entire web
  application
   pp
    20+ MBs of jars, etc.
    Takes a long time (over a DSL connection)
  Web application consists of:
    90% 3rd party libraries – rarely changing
    10% application code and content – only some of it
    changes
  Use J tS3t t
  U JetS3t to accelerate uploads
                  l   t    l d
    Incremental upload of exploded web application to S3
    bucket
    Incremental download to Tomcat webapps/ directory
    First upload is slow but subsequent uploads are fast




                 Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                             Slide 36
Maven Plugin
          g
                                                                                      Goals:
                                                                                      • deploy
 <plugin>                                                                             • redeploy
                                                                                      • stop
    <groupId>net.chrisrichardson</groupId>
    <groupId>net chrisrichardson</groupId>                                            • dbsave
                                                                                      • dbrestore
    <artifactId>cloudtools-maven-plugin</artifactId>                                  • jmeter
    <configuration>
      <schemaName>ptrack</schemaName>
      <schemaUsers>
        <param>ptrack:ptrack</param>
      </schemaUsers>
      <catalinaOptsBuilder>
        {
        {builder, databasePrivateDnsName ->
                ,
            builder.arg(quot;-Xmx1000mquot;)
           builder.prop(quot;jdbc.db.serverquot;, databasePrivateDnsName)}
        </catalinaOptsBuilder>
      </configuration>
 </plugin>


mvn cloudtools:deploy




                          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                                    Slide 37
Grails Plugin
          g

  Packages E2Deploy as a Grails
       g         p y
  framework plugin
  Deploys a Grails application to EC2


$ grails install-plugin <path to plugin>
$ grails cloud-tools-deploy
  g                     p y



             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 38
Agenda
 g
 Cloud computing with Amazon EC2
 Using Amazon EC2
 Overview of Cloud Tools
 Developing on Amazon EC2
 Deploying on Amazon EC2




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                      Slide 39
Collecting p
             g performance metrics

   70                                                                      7000

   60                                                                      6000

   50                                                                      5000

   40                                                                      4000
                                                                                             TPS
   30                                                                      3000
                                                                                             ART
   20                                                                      2000

   10                                                                      1000

    0
          1       2       4       8      16          32          64
                                                                           0
                                                                                               R   i
                                                                                               Requires
                                                                                               hardware
                                                                                               Time consuming
Measure transactions/second (TPS), average response time (ART), utilization, etc.

Multiple test runs with different loads, number of servers, etc.




                                              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                                          Slide 40
Load testing with Cloud Tools
           g
 Runs JMeter with
                                                 <performanceReport>
                                                   <cpus>1</cpus>
                                                   <threads>10</threads>

 specified number                                  <host>
                                                     <name>database</name>


 of threads
                                                     <cpuUtil>3.2757014224403784</cpuUtil>
                                                   </host>
                                                   <host>


 Collects machine
                                                     <name>tomcat0</name>
                                                     <cpuUtil>94.32473318917411</cpuUtil>
                                                   </host>

 utilization stats                                 <host>
                                                     <name>apache</name>
                                                     <cpuUtil>0.12280614752518504</cpuUtil>
                                                       p                          / p

 Generates reports                                 </host>
                                                   <host>
                                                     <name>jmeter</name>

 Executes multiple                                   <cpuUtil>7.033683910704496</cpuUtil>
                                                   </host>


 test runs
                                                   …
                                                   <duration>557.943</duration>
                                                   <tps>10.753786677133686</tps>

 simultaneously                                    <art>916.6578333333</art>
                                                 </performanceReport>



         mvn cloudtools:jmeter -Dcloudtools.thread.count=1,4,8

                Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                        Slide 41
Other kinds of testing
                     g
 Testing failover
   Launch cluster
   Take down servers
   Test recovery scripts, e.g. MySQL slave-
   >master
 Testing d t b
 T ti    database upgrades
                       d
   Launch cluster
   I    ll      h    f
   Install snapshot of production data
                          d   i   d
   Apply database migration script
   Verify th t
   V if that it works
                    k
             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 42
Functional testing
                 g
 Tests can be slow, e.g.
   W b tests
   Web t t
   Database intensive tests
 Run tests in parallel on EC2
   Multiple test drivers, app servers, DBs
   Relatively cheap: >$75/hour developer vs.
   $0.10/hour machine
   $     /h         h
 Selenium Grid from Thoughtworks
   Open Source framework
   Runs Selenium web tests in parallel on EC2
 Stay tuned for more general solutions

             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 43
Building on a fresh machine
       g
 Debug builds that fail because of a
 missing dependency
   Maven dependency
   Manually installed 3rd party library
 Build on a fresh EC2 instance
 Great for open-source projects




             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 44
Agenda
 g
 Cloud computing with Amazon EC2
 Using Amazon EC2
 Overview of Cloud Tools
 Developing on Amazon EC2
 Deploying on Amazon EC2




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                      Slide 45
Deploying applications on Amazon
EC2
 Great for startups (especially those
 without a business model)
   Get up and running ready quickly
   No upfront hardware costs
   Scale up/down with load
   Reduces the risk of a success
     d      h     k f
   catastrophe
 Great for enterprises
   No need to wait for corporate IT
   Use f
   U for short-term projects
           h t t         j t
             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 46
Issues with AWS
 Security:
   Lack of PCI compliance
   Discomfort with sending customer data to a
   3rd party
 Technology:
 Technolog
   Not yet suitable for extremely large
   relational databases
   Lack of very large machines, e.g. 64G
   memory
   Lack of multicast
 Financials:
   Cost of bandwidth
   Steady state costs > your own hardware

               Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                           Slide 47
Starter website - $
                      www.acme.com



          Elastic IP A

          EC2 Instance




                              Apache




                              Tomcat




                              MySQL




                           EBS Volume



             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 48
Highly available - $$
  g y
                                                       www.acme.com




      Elastic IP A                                                            Elastic IP B

      Availability Zone A                                                     Availability Zone B



                                                                                                    Apache
                             Apache




                             Tomcat                                                                  Tomcat
                              Tomcat                                                                  Tomcat




                                                                                                     MySQL
                              MySQL
                                                                                                     (slave)
                             (Master)




                            EBS Volume



                                Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                                               Slide 49
Batch processing architecture
      p        g

                                                                      e.g.
                                                                      e g media transcoding




          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                                     Slide 50
Easy upgrades
   y pg
 Clone production environment
 Apply upgrades
 Terminate old instances once you are
                              y
 sure that everything works




           Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                       Slide 51
Cloud bursting
             g
 Host application on your own
 hardware
 Use AWS for short-term spikes
   e.g. use EC2 instances with slave DBs to
   handle read-only requests
 Periodic batch jobs
   E.g. content rendering/transformation




             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 52
Using AWS in y
    g        your application
                   pp
 Simple Storage Service (S3)
   Stores blobs of data
   Eg. Photo sharing website
   Store media
   Hand
   H d out URL to S3 objects
             URLs       bj
 Simple Queue Service (SQS)
   Hosted queue-based messaging system
           queue based
   Alternative to JMS
   Loosely coupling between systems
 SimpleDB
 Si  l DB
   Store data sets
   Execute queries
           q

             Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                         Slide 53
Java libraries for AWS
 Generate the REST/SOAP requests
 manually
 JetS3t
   Rich API for accessing S3
   https://jets3t.dev.java.net/
 Typica
  yp
   API for SQS, EC2, SimpleDB
   http://code.google.com/p/typica/
 SimpleJPA
 Si  l JPA
   Subset of JPA on Simple DB
   http://code.google.com/p/simplejpa/
   http://code google com/p/simplejpa/

              Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                          Slide 54
Summary
      y
 Cloud Computing
   Immediate access to many servers
   Pay as you go – no upfront
   i     t    t/
   investment/commitment required
                     it   t   i d
   Easily scale up/down
 Cloud Tools
 Cl d T l
   Easy deployment and testing from
   Maven and Grails
   Configure multiple clusters
   Run JMeter tests in parallel
            Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                        Slide 55
Final thoughts
          g
                                     Download Cloud Tools today:

                           http://code.google.com/p/cloudtools

                                     Buy my book ☺

                                     Send email:

                           chris@chrisrichardson.net

                                     Visit my website:

                           http://www.chrisrichardson.net

                                     Talk to me about consulting and
                                     training
                                     t i i

          Copyright (c) 2008 Chris Richardson. All rights reserved.
                                                                      Slide 56

More Related Content

What's hot

RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012
RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012
RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012Amazon Web Services
 
AWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemAWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemNaoya Hashimoto
 
Running Microservices and Docker with AWS Elastic Beanstalk
Running Microservices and Docker with AWS Elastic BeanstalkRunning Microservices and Docker with AWS Elastic Beanstalk
Running Microservices and Docker with AWS Elastic BeanstalkAmazon Web Services
 
如何無痛上雲端? 以Elastic Beanstalk Java Container為例
如何無痛上雲端? 以Elastic Beanstalk Java Container為例如何無痛上雲端? 以Elastic Beanstalk Java Container為例
如何無痛上雲端? 以Elastic Beanstalk Java Container為例Yuen-Kuei Hsueh
 
Masterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationMasterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationAmazon Web Services
 
5 things you don't know about Amazon Web Services
5 things you don't know about Amazon Web Services5 things you don't know about Amazon Web Services
5 things you don't know about Amazon Web ServicesSimone Brunozzi
 
Building cloud-tools-for-netflix-code mash2012
Building cloud-tools-for-netflix-code mash2012Building cloud-tools-for-netflix-code mash2012
Building cloud-tools-for-netflix-code mash2012Carl Quinn
 
AWS Summit 2013 | Auckland - Your First Week with Amazon EC2
AWS Summit 2013 | Auckland - Your First Week with Amazon EC2AWS Summit 2013 | Auckland - Your First Week with Amazon EC2
AWS Summit 2013 | Auckland - Your First Week with Amazon EC2Amazon Web Services
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineAmazon Web Services
 
Building Cloud Tools for Netflix
Building Cloud Tools for NetflixBuilding Cloud Tools for Netflix
Building Cloud Tools for NetflixJoe Sondow
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)Julien SIMON
 
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...Amazon Web Services
 
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Amazon Web Services
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)Julien SIMON
 
Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)
Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)
Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)Joe Sondow
 
McrUmbMeetup 22 May 14: Umbraco and Amazon
McrUmbMeetup 22 May 14: Umbraco and AmazonMcrUmbMeetup 22 May 14: Umbraco and Amazon
McrUmbMeetup 22 May 14: Umbraco and AmazonDan Lister
 
Keynote @ IoT World Paris
Keynote @ IoT World ParisKeynote @ IoT World Paris
Keynote @ IoT World ParisJulien SIMON
 
Infrastructure as Code, Theory Crash Course
Infrastructure as Code, Theory Crash CourseInfrastructure as Code, Theory Crash Course
Infrastructure as Code, Theory Crash CourseDr. Sven Balnojan
 

What's hot (20)

RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012
RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012
RMG206 Introduction to Amazon Elastic Beanstalk - AWS re: Invent 2012
 
AWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemAWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant system
 
Running Microservices and Docker with AWS Elastic Beanstalk
Running Microservices and Docker with AWS Elastic BeanstalkRunning Microservices and Docker with AWS Elastic Beanstalk
Running Microservices and Docker with AWS Elastic Beanstalk
 
如何無痛上雲端? 以Elastic Beanstalk Java Container為例
如何無痛上雲端? 以Elastic Beanstalk Java Container為例如何無痛上雲端? 以Elastic Beanstalk Java Container為例
如何無痛上雲端? 以Elastic Beanstalk Java Container為例
 
AWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic ScaleAWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic Scale
 
Masterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationMasterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormation
 
5 things you don't know about Amazon Web Services
5 things you don't know about Amazon Web Services5 things you don't know about Amazon Web Services
5 things you don't know about Amazon Web Services
 
Building cloud-tools-for-netflix-code mash2012
Building cloud-tools-for-netflix-code mash2012Building cloud-tools-for-netflix-code mash2012
Building cloud-tools-for-netflix-code mash2012
 
AWS Summit 2013 | Auckland - Your First Week with Amazon EC2
AWS Summit 2013 | Auckland - Your First Week with Amazon EC2AWS Summit 2013 | Auckland - Your First Week with Amazon EC2
AWS Summit 2013 | Auckland - Your First Week with Amazon EC2
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules Engine
 
Building Cloud Tools for Netflix
Building Cloud Tools for NetflixBuilding Cloud Tools for Netflix
Building Cloud Tools for Netflix
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)
 
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
 
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)
 
Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)
Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)
Asgard: Using Grails to Deploy Netflix to AWS (Extended Slides)
 
McrUmbMeetup 22 May 14: Umbraco and Amazon
McrUmbMeetup 22 May 14: Umbraco and AmazonMcrUmbMeetup 22 May 14: Umbraco and Amazon
McrUmbMeetup 22 May 14: Umbraco and Amazon
 
Keynote @ IoT World Paris
Keynote @ IoT World ParisKeynote @ IoT World Paris
Keynote @ IoT World Paris
 
Infrastructure as Code, Theory Crash Course
Infrastructure as Code, Theory Crash CourseInfrastructure as Code, Theory Crash Course
Infrastructure as Code, Theory Crash Course
 

Viewers also liked

Adventures with Microservices
Adventures with MicroservicesAdventures with Microservices
Adventures with MicroservicesAnand Agrawal
 
Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)Chris Richardson
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and DockerApigee | Google Cloud
 
Microservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraMicroservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraJorge Bay Gondra
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and BeyondMatt Stine
 
Deploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS CloudDeploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS CloudAmazon Web Services
 
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Chris Richardson
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Chris Richardson
 
Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Chris Richardson
 
Delivering with Microservices - How to Iterate Towards Sophistication
Delivering with Microservices - How to Iterate Towards SophisticationDelivering with Microservices - How to Iterate Towards Sophistication
Delivering with Microservices - How to Iterate Towards SophisticationThoughtworks
 
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)Chris Richardson
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Chris Richardson
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Chris Richardson
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Chris Richardson
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationKasun Indrasiri
 
REST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesREST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesEberhard Wolff
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices PatternsCisco DevNet
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIAngelo Corsaro
 

Viewers also liked (20)

Adventures with Microservices
Adventures with MicroservicesAdventures with Microservices
Adventures with Microservices
 
Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)Decomposing applications for scalability and deployability (devnexus 2013)
Decomposing applications for scalability and deployability (devnexus 2013)
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and Docker
 
Microservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraMicroservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache Cassandra
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Deploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS CloudDeploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS Cloud
 
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)
 
Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)
 
Delivering with Microservices - How to Iterate Towards Sophistication
Delivering with Microservices - How to Iterate Towards SophisticationDelivering with Microservices - How to Iterate Towards Sophistication
Delivering with Microservices - How to Iterate Towards Sophistication
 
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)
 
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
 
AWS Deployment Best Practices
AWS Deployment Best PracticesAWS Deployment Best Practices
AWS Deployment Best Practices
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
 
REST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesREST vs. Messaging For Microservices
REST vs. Messaging For Microservices
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices Patterns
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part II
 

Similar to Running Java apps on Amazon EC2 and EBS

CommunityOneEast 09 - Running Java On Amazon EC2
CommunityOneEast 09 - Running Java On Amazon EC2CommunityOneEast 09 - Running Java On Amazon EC2
CommunityOneEast 09 - Running Java On Amazon EC2Chris Richardson
 
Deploying Java Applicationson Ec2
Deploying Java Applicationson Ec2Deploying Java Applicationson Ec2
Deploying Java Applicationson Ec2Chris Richardson
 
Joyent Cloud Advantages
Joyent Cloud AdvantagesJoyent Cloud Advantages
Joyent Cloud Advantagesdmasciorini
 
AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...
AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...
AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...Amazon Web Services
 
Simplifying Real Time Data Analytics with Docker, IoT & Cloud
Simplifying Real Time Data Analytics with Docker, IoT & CloudSimplifying Real Time Data Analytics with Docker, IoT & Cloud
Simplifying Real Time Data Analytics with Docker, IoT & CloudAjeet Singh Raina
 
Day of Cloud: Amazon EC2
Day of Cloud: Amazon EC2Day of Cloud: Amazon EC2
Day of Cloud: Amazon EC2cmcavoy
 
Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...
Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...
Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...Ajeet Singh Raina
 
From Grids To Clouds Guy Tel Zur May 2009
From Grids To Clouds Guy Tel Zur May 2009From Grids To Clouds Guy Tel Zur May 2009
From Grids To Clouds Guy Tel Zur May 2009Guy Tel-Zur
 
Jeff Barr Amazon Services Cloud Computing
Jeff Barr Amazon Services Cloud ComputingJeff Barr Amazon Services Cloud Computing
Jeff Barr Amazon Services Cloud Computingdeimos
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...Amazon Web Services
 
Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018
Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018
Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018Amazon Web Services
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Amazon Web Services
 
Deep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceDeep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceAmazon Web Services
 
Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...
Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...
Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...Amazon Web Services
 
Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018
Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018
Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018Amazon Web Services
 
Cloudcomputingsouptonuts 090506063306 Phpapp02
Cloudcomputingsouptonuts 090506063306 Phpapp02Cloudcomputingsouptonuts 090506063306 Phpapp02
Cloudcomputingsouptonuts 090506063306 Phpapp02Nexshore
 
Cloud Computing Soup To Nuts
Cloud Computing Soup To NutsCloud Computing Soup To Nuts
Cloud Computing Soup To NutsJoe Drumgoole
 

Similar to Running Java apps on Amazon EC2 and EBS (20)

CommunityOneEast 09 - Running Java On Amazon EC2
CommunityOneEast 09 - Running Java On Amazon EC2CommunityOneEast 09 - Running Java On Amazon EC2
CommunityOneEast 09 - Running Java On Amazon EC2
 
Deploying Java Applicationson Ec2
Deploying Java Applicationson Ec2Deploying Java Applicationson Ec2
Deploying Java Applicationson Ec2
 
Cloud Talk
Cloud TalkCloud Talk
Cloud Talk
 
Joyent Cloud Advantages
Joyent Cloud AdvantagesJoyent Cloud Advantages
Joyent Cloud Advantages
 
Elasticwulf Pycon Talk
Elasticwulf Pycon TalkElasticwulf Pycon Talk
Elasticwulf Pycon Talk
 
AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...
AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...
AWS Summit Singapore - Migrate & Modernize Legacy Microsoft Applications with...
 
Simplifying Real Time Data Analytics with Docker, IoT & Cloud
Simplifying Real Time Data Analytics with Docker, IoT & CloudSimplifying Real Time Data Analytics with Docker, IoT & Cloud
Simplifying Real Time Data Analytics with Docker, IoT & Cloud
 
Day of Cloud: Amazon EC2
Day of Cloud: Amazon EC2Day of Cloud: Amazon EC2
Day of Cloud: Amazon EC2
 
Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...
Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...
Introducing Pico - Object Detection & Analytics using Docker, IoT & Amazon Re...
 
From Grids To Clouds Guy Tel Zur May 2009
From Grids To Clouds Guy Tel Zur May 2009From Grids To Clouds Guy Tel Zur May 2009
From Grids To Clouds Guy Tel Zur May 2009
 
Jeff Barr Amazon Services Cloud Computing
Jeff Barr Amazon Services Cloud ComputingJeff Barr Amazon Services Cloud Computing
Jeff Barr Amazon Services Cloud Computing
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
 
Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018
Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018
Amazon EC2 Foundations (CMP208-R1) - AWS re:Invent 2018
 
Netflix in the cloud 2011
Netflix in the cloud 2011Netflix in the cloud 2011
Netflix in the cloud 2011
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 
Deep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceDeep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance Performance
 
Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...
Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...
Choosing the Right EC2 Instance and Applicable Use Cases - AWS June 2016 Webi...
 
Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018
Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018
Studio in the Cloud: Producing Content on AWS (MAE202) - AWS re:Invent 2018
 
Cloudcomputingsouptonuts 090506063306 Phpapp02
Cloudcomputingsouptonuts 090506063306 Phpapp02Cloudcomputingsouptonuts 090506063306 Phpapp02
Cloudcomputingsouptonuts 090506063306 Phpapp02
 
Cloud Computing Soup To Nuts
Cloud Computing Soup To NutsCloud Computing Soup To Nuts
Cloud Computing Soup To Nuts
 

More from Chris Richardson

The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?Chris Richardson
 
More the merrier: a microservices anti-pattern
More the merrier: a microservices anti-patternMore the merrier: a microservices anti-pattern
More the merrier: a microservices anti-patternChris Richardson
 
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...Chris Richardson
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Chris Richardson
 
Dark energy, dark matter and microservice architecture collaboration patterns
Dark energy, dark matter and microservice architecture collaboration patternsDark energy, dark matter and microservice architecture collaboration patterns
Dark energy, dark matter and microservice architecture collaboration patternsChris Richardson
 
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfScenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfChris Richardson
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Chris Richardson
 
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...Chris Richardson
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Chris Richardson
 
A pattern language for microservices - June 2021
A pattern language for microservices - June 2021 A pattern language for microservices - June 2021
A pattern language for microservices - June 2021 Chris Richardson
 
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureQConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureChris Richardson
 
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...Chris Richardson
 
Designing loosely coupled services
Designing loosely coupled servicesDesigning loosely coupled services
Designing loosely coupled servicesChris Richardson
 
Microservices - an architecture that enables DevOps (T Systems DevOps day)
Microservices - an architecture that enables DevOps (T Systems DevOps day)Microservices - an architecture that enables DevOps (T Systems DevOps day)
Microservices - an architecture that enables DevOps (T Systems DevOps day)Chris Richardson
 
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...Chris Richardson
 
Decompose your monolith: Six principles for refactoring a monolith to microse...
Decompose your monolith: Six principles for refactoring a monolith to microse...Decompose your monolith: Six principles for refactoring a monolith to microse...
Decompose your monolith: Six principles for refactoring a monolith to microse...Chris Richardson
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...Chris Richardson
 
Overview of the Eventuate Tram Customers and Orders application
Overview of the Eventuate Tram Customers and Orders applicationOverview of the Eventuate Tram Customers and Orders application
Overview of the Eventuate Tram Customers and Orders applicationChris Richardson
 
An overview of the Eventuate Platform
An overview of the Eventuate PlatformAn overview of the Eventuate Platform
An overview of the Eventuate PlatformChris Richardson
 
#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolithChris Richardson
 

More from Chris Richardson (20)

The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?
 
More the merrier: a microservices anti-pattern
More the merrier: a microservices anti-patternMore the merrier: a microservices anti-pattern
More the merrier: a microservices anti-pattern
 
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!
 
Dark energy, dark matter and microservice architecture collaboration patterns
Dark energy, dark matter and microservice architecture collaboration patternsDark energy, dark matter and microservice architecture collaboration patterns
Dark energy, dark matter and microservice architecture collaboration patterns
 
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfScenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions
 
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...
 
A pattern language for microservices - June 2021
A pattern language for microservices - June 2021 A pattern language for microservices - June 2021
A pattern language for microservices - June 2021
 
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureQConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
 
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
 
Designing loosely coupled services
Designing loosely coupled servicesDesigning loosely coupled services
Designing loosely coupled services
 
Microservices - an architecture that enables DevOps (T Systems DevOps day)
Microservices - an architecture that enables DevOps (T Systems DevOps day)Microservices - an architecture that enables DevOps (T Systems DevOps day)
Microservices - an architecture that enables DevOps (T Systems DevOps day)
 
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
 
Decompose your monolith: Six principles for refactoring a monolith to microse...
Decompose your monolith: Six principles for refactoring a monolith to microse...Decompose your monolith: Six principles for refactoring a monolith to microse...
Decompose your monolith: Six principles for refactoring a monolith to microse...
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
 
Overview of the Eventuate Tram Customers and Orders application
Overview of the Eventuate Tram Customers and Orders applicationOverview of the Eventuate Tram Customers and Orders application
Overview of the Eventuate Tram Customers and Orders application
 
An overview of the Eventuate Platform
An overview of the Eventuate PlatformAn overview of the Eventuate Platform
An overview of the Eventuate Platform
 
#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Running Java apps on Amazon EC2 and EBS

  • 1. Running Java applications on the Amazon El ti C A Elastic Compute Cl d t Cloud Chris Richardson Author of POJOs in Action Founder of Cloud Tools www.chrisrichardson.net Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 1
  • 2. Overall presentation g p goal Show how to use Amazon Elastic Compute Cloud for developing and deploying Java applications Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 2
  • 3. About Chris Grew up in England and live in Oakland, CA p g , Over twenty years of software development experience Building object-oriented software since 1986 Using Java since 1996 Using J2EE since 1999 Author of POJOs in Action Speaker at JavaOne, SpringOne, NFJS, JavaPolis, Spring Experience, etc. Chair of the eBIG Java SIG in Oakland (www.ebig.org) (www ebig org) Run a consulting and training company that helps organizations build better software faster and deploy it on Amazon EC2 Founder of Cloud Tools, an open-source project for d l i f deploying J Java applications on Amazon EC2: li ti A EC2 http://code.google.com/p/cloudtools Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 3
  • 4. Agenda g Cloud computing with Amazon EC2 Using Amazon EC2 Overview of Cloud Tools Developing on Amazon EC2 Deploying on Amazon EC2 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 4
  • 5. Computing has come a long way p g g y Present Past www.computermuseum.org.uk www.dell.com Yet we rarely have enough Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 5
  • 6. Cloud computing p g A pool of highly scalable, abstracted infrastructure that hosts your application, and is billed by consumption p By James Staten of Forrester Research Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 6
  • 7. Power generation g Past Present Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 7
  • 8. Amazon-Style Cloud Computing y p g Elastic Compute Cloud (EC2) On-demand computing O d d ti Elastic Block Storage (EBS) quot;SAN on demandquot; SAN demand Simple Storage Service (S3) Stores blobs of data Simple Queue Service (SQS) Hosted queue-based messaging system SimpleDB Pay per use Store data sets services managed Execute queries by Amazon Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 8
  • 9. What is Amazon EC2? Virtualized computing environment Server instances managed through a web service API IP addresses and host names assigned dynamically Pay by the hour ($0.10-0.80/hour) + external bandwidth ($0 10 0 18/Gbyte) ($0.10-0.18/Gbyte) https://ec2.amazonaws.com/?Action=RunInstances <RunInstancesResponse> &ImageId=ami-398438493 … &MaxCount=3 </RunInstancesResponse> &MinCount=3 cer@arrakis ~ k $ ssh … root@ec2-67-202-41-150.compute-1.amazonaws.com Last login: Sun Dec 30 18:54:43 2007 from 71.131.29.181 [root@domU-12-31-36-00-38-23:~] Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 9
  • 10. Instance types yp Virtual Compute p 32// Memory y Storage $/hr g $/ Cores Units 64 /core* Bit Small 1 1 32 bit 1.7G 160G 0.10 High- 2 2.5 32 bit 1.7G 350G 0.20 CPU Medium Large 2 2 64 bit 7.5G 850G 0.40 Extra 4 2 64 bit 15G 1690G 0.80 Large High- 8 2.5 64 bit 7G 1690G 0.80 CPU XL * EC2 Compute Unit = 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 10
  • 11. Operating systems p g y Use Amazon provided Machine Image (AMI) 32-bit 32 bit Fedora Core 4 64-bit Fedora Core 6 Many 3rd parties have p y p public AMIs Various Linux distributions E.g. Redhat, RightScale Sun provides OpenSolaris Windows is private beta Build your own Linux: Install applications starting with someone else's AMI and save it Create an AMI from scratch Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 11
  • 12. One minor thing… g Terminate your i t T i t instance ⇒ y your local data is lost. Either very good or very bad Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 12
  • 13. Elastic Block Storage g Mountable storage volumes quot;On-demand SANquot; quot;O d d Size: 1 GB to 1 TB Mount on a single instance Create snapshots Stored in S3 Create new volumes from the snapshot Cost: $0.10/GByte/month $ $0.10 per 1 million I/O requests p q Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 13
  • 14. Elastic IP addresses Instance IP addresses are dynamically allocated on start-up start up Does not work well for publicly accessible services, e.g. a website Elastic IP addresses: Statically allocated addresses Associated with your account (max. 5) Attached to an instance (e g public facing web (e.g. server) You configure DNS to resolve to the elastic IP address Pricing: Non-attached Elastic IP address - $0.01/hour $0.10 $0 10 per remap (if > 100 in a month) Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 14
  • 15. Regions and availability zones g y By default, your database master and slave could run on the same physical host! Regions: Geographically dispersed locations Currently only one Availability zone: Part of a region d be l Engineered to b insulated f d from failure in other f l h zones Specify availability zone when launching instances: i t Same zone as other instances for free data transfer Different zone f higher-availability Diff t for hi h il bilit Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 15
  • 16. What is the Amazon Simple Storage Service ( ) g (S3)? Flat storage model consisting of buckets and objects Bucket – has a name and contains objects Objects – has a key, stores 1 byte - 5G Object key can look like a path ☺ Cost: $0.15/GB-Month $0 10 0 18/GB of data transferred $0.10-0.18/GB $0.00001-$0.000001/Web Service call Data transfers between EC2 and S3 are free of bandwidth charges Buckets and objects can be: Public – accessible by anyone P i Private – accessible to owner, acl member ibl l b Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 16
  • 17. S3 REST API PUT / HTTP/1.1 Create a bucket Host: <BucketName>.s3.amazonaws.com Authorization: AWS AWSAccessKeyId:Signature … PUT /<ObjectName> HTTP/1.1 Host: <BucketName>.s3.amazonaws.com Authorization: AWS AWSAccessKeyId:Signature Create an item in a bucket … …Bytes… GET /<ObjectName> HTTP/1.1 Host: <BucketName>.s3.amazonaws.com Download an item Authorization: AWS AWSAccessKeyId:Signature … DELETE /<ObjectName> HTTP/1.1 Host: <BucketName>.s3.amazonaws.com Authorization: AWS AWSAccessKeyId:Signature Delete an item … Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 17
  • 18. Using EC2 and S3 together g g AMIs are stored in S3 EC2 instances use S3: Use REST API Store database snapshots in S3 Use 3rd party Linux file system that stores data in S3 Store EBS volume snapshots in S3 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 18
  • 19. So what does this mean? For developers Immediate access to many servers Simplified setup Great for testing For deployment Eliminates capital expenses Reduces risk of success catastrophe Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 19
  • 20. Agenda g Cloud computing with Amazon EC2 Using Amazon EC2 Overview of Cloud Tools Developing on Amazon EC2 Deploying on Amazon EC2 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 20
  • 21. Signing up for Amazon Web Services AWS access identifiers: Account Id Access Id Secret key Private key and certificate Only takes a few minutes Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 21
  • 22. EC2 API and Tools SOAP and Query APIs Launch and manage instances etc L h d i t t Amazon provided CLI tools CLI equivalents of APIs AMI creation tools AWS CLI tools from Tim Kay y CLI for S3 and EC2 Alternatives to Amazon CLI tools ElasticFox El i F Awesome Firefox plugin Launch and manage instances Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 22
  • 23. Using the Q g Query API y https://ec2.amazonaws.com/?queryparame ters... Mandatory parameters: Action – what to do AWSAccessKeyId – your access id AWSA K Id Version – API version Timestamp – when request was made p q Expires – when it expires Signature – digest of parameters and secret key SignatureVersion – set to 1 Other parameters depend on Action Returns an XML d R t documentt Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 23
  • 24. Example EC2 requests p q Action Parameters RunInstances MinCount, MaxCount, ImageId, InstanceType, … TerminateInstances InstanceId.n InstanceId n DescribeInstances InstanceId.n CreateSecurityGroup GroupName, GroupDescription AuthorizeSecurityGroupIngress GroupName, SourceSecurityGroupName, IpProtocol DeauthorizeSecurityGroupIngress h S G … … Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 24
  • 25. aws - simple access to EC2 and S3 p http://timkay.com/aws/ Easy to use CLI for EC2 and S3 Implemented in Perl Authenticates using access id and secret key stored in ~/.awssecret Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 25
  • 26. ElasticFox– Firefox plugin p g Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 26
  • 27. Launching instances g TIP: launch with a key y pair or else you won't have access Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 27
  • 28. Creating y g your own image g Easier: Modify an existing AMI Launch AMI L h Configure: e.g. yum install … Harder: Build one from scratch Launch AMI Create a file to contain OS installation Mount as a loopback file Install OS: yum –-installroot y Use AMI tools to bundle and upload to S3 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 28
  • 29. Agenda g Cloud computing with Amazon EC2 Using Amazon EC2 Overview of Cloud Tools Developing on Amazon EC2 Deploying on Amazon EC2 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 29
  • 30. Deploying a web application on EC2 p y g pp Not rocket science but there are many servers to configure and multiple files to upload Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 30
  • 31. What's Cloud Tools? Open source project 32 and 64 bit AMIs CentOS 5.10 Apache/Tomcat/MySQL/JMeter/JetS3t installed p y Q EC2Deploy framework Launches instances Configures Tomcat MySQL Apache Tomcat, MySQL, Deploys web applications Runs Jmeter tests Written in Groovy Maven and Grails plugins Quick and easy deployment to EC2 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 31
  • 32. EC2Deploy framework p y Provides a DSL for describing a cluster: Number of Tomcats, M SQL slaves N b fT t MySQL l Database scripts Location of web applications Launches EC2 instances Configures MySQL g y Q Configures Tomcat and deploys web applications Configures Apache to proxy the Tomcat servers Runs JMeter tests Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 32
  • 33. Example EC2Deploy Script p p y p def ec2 = new EC2(…) ClusterSpec clusterSpec = new ClusterSpec() .tomcats(1) .instanceType(EC2InstanceType.SMALL) .slaves(1) .webApp('/home/cer/…/ptrack', quot;ptrackquot;) ebApp('/home/cer/ /ptrack' .catalinaOptsBuilder({optsBuilder, databaseHost, slaves -> optsBuilder.arg(quot;-Xmx500mquot;) optsBuilder.prop(quot;jdbc.db.serverquot;, databaseHost)}) .schema(quot;ptrackquot;, [quot;ptrackquot;: quot;ptrackquot;], [ s c/test/ esou ces/testd [quot;src/test/resources/testdml1.sqlquot;, .sq , quot;src/test/resources/testdml2.sqlquot;]) SimpleCluster cluster = new SimpleCluster(ec2, clusterSpec) cluster.start() cluster.loadTest(quot;/home/cer/…/jmeter/SimpleTest.jmxquot;, [5, 10, 15]) cluster.stop() Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 33
  • 34. Domain model ClusterSpec <<façade>> SimpleCluster name stop() numberOfTomcats start() numberOfMySqlSlaves loadTest() ... WebApp context Jmeter TomcatServer MySqlServer ApacheServer explodedWar Application uploadToS3() updateTomcat() <<abstract>> Application EC2 EC2Server EC2InstanceState startPolling() waitUntilRunning() instanceId stopPolling() stop() state newServers(n) ssh(command) publicDnsName ... ... privateDnsName Uses Query API to run, terminate Executes ssh and and describe EC2Request scp commands instances Ssh Executor ssh(dns, command, …) executeRequest(params) Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 34
  • 35. Configuration DSL g class ApacheServer extends Application { def configure() { writeFile fileName: quot;$apacheConfDir/cluster.confquot;, templateName: quot;/templates/cluster.confquot;, templateArgs: [tomcats: tomcats] exec quot;$apacheBinDir/apachectl restartquot; waitForHttp port:80, path: tomcats[0].contexts[0] } … class MySqlServer extends Application { } def d f configureAsMaster() { fi A M t () writeFile fileName: quot;/etc/my.cnfquot;, templateName: quot;/templates/master.my.cnfquot; restartService quot;mysqldquot; exec command: quot;mysql -u rootquot;, templateName: quot;/templates/createSchema.sqlquot;, templateArgs: [schemaSpec: schemaSpec] executeSchemaScripts() } } Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 35
  • 36. Efficiently uploading web applications, etc. pp , Non-durable disks = upload the entire web application pp 20+ MBs of jars, etc. Takes a long time (over a DSL connection) Web application consists of: 90% 3rd party libraries – rarely changing 10% application code and content – only some of it changes Use J tS3t t U JetS3t to accelerate uploads l t l d Incremental upload of exploded web application to S3 bucket Incremental download to Tomcat webapps/ directory First upload is slow but subsequent uploads are fast Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 36
  • 37. Maven Plugin g Goals: • deploy <plugin> • redeploy • stop <groupId>net.chrisrichardson</groupId> <groupId>net chrisrichardson</groupId> • dbsave • dbrestore <artifactId>cloudtools-maven-plugin</artifactId> • jmeter <configuration> <schemaName>ptrack</schemaName> <schemaUsers> <param>ptrack:ptrack</param> </schemaUsers> <catalinaOptsBuilder> { {builder, databasePrivateDnsName -> , builder.arg(quot;-Xmx1000mquot;) builder.prop(quot;jdbc.db.serverquot;, databasePrivateDnsName)} </catalinaOptsBuilder> </configuration> </plugin> mvn cloudtools:deploy Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 37
  • 38. Grails Plugin g Packages E2Deploy as a Grails g p y framework plugin Deploys a Grails application to EC2 $ grails install-plugin <path to plugin> $ grails cloud-tools-deploy g p y Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 38
  • 39. Agenda g Cloud computing with Amazon EC2 Using Amazon EC2 Overview of Cloud Tools Developing on Amazon EC2 Deploying on Amazon EC2 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 39
  • 40. Collecting p g performance metrics 70 7000 60 6000 50 5000 40 4000 TPS 30 3000 ART 20 2000 10 1000 0 1 2 4 8 16 32 64 0 R i Requires hardware Time consuming Measure transactions/second (TPS), average response time (ART), utilization, etc. Multiple test runs with different loads, number of servers, etc. Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 40
  • 41. Load testing with Cloud Tools g Runs JMeter with <performanceReport> <cpus>1</cpus> <threads>10</threads> specified number <host> <name>database</name> of threads <cpuUtil>3.2757014224403784</cpuUtil> </host> <host> Collects machine <name>tomcat0</name> <cpuUtil>94.32473318917411</cpuUtil> </host> utilization stats <host> <name>apache</name> <cpuUtil>0.12280614752518504</cpuUtil> p / p Generates reports </host> <host> <name>jmeter</name> Executes multiple <cpuUtil>7.033683910704496</cpuUtil> </host> test runs … <duration>557.943</duration> <tps>10.753786677133686</tps> simultaneously <art>916.6578333333</art> </performanceReport> mvn cloudtools:jmeter -Dcloudtools.thread.count=1,4,8 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 41
  • 42. Other kinds of testing g Testing failover Launch cluster Take down servers Test recovery scripts, e.g. MySQL slave- >master Testing d t b T ti database upgrades d Launch cluster I ll h f Install snapshot of production data d i d Apply database migration script Verify th t V if that it works k Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 42
  • 43. Functional testing g Tests can be slow, e.g. W b tests Web t t Database intensive tests Run tests in parallel on EC2 Multiple test drivers, app servers, DBs Relatively cheap: >$75/hour developer vs. $0.10/hour machine $ /h h Selenium Grid from Thoughtworks Open Source framework Runs Selenium web tests in parallel on EC2 Stay tuned for more general solutions Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 43
  • 44. Building on a fresh machine g Debug builds that fail because of a missing dependency Maven dependency Manually installed 3rd party library Build on a fresh EC2 instance Great for open-source projects Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 44
  • 45. Agenda g Cloud computing with Amazon EC2 Using Amazon EC2 Overview of Cloud Tools Developing on Amazon EC2 Deploying on Amazon EC2 Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 45
  • 46. Deploying applications on Amazon EC2 Great for startups (especially those without a business model) Get up and running ready quickly No upfront hardware costs Scale up/down with load Reduces the risk of a success d h k f catastrophe Great for enterprises No need to wait for corporate IT Use f U for short-term projects h t t j t Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 46
  • 47. Issues with AWS Security: Lack of PCI compliance Discomfort with sending customer data to a 3rd party Technology: Technolog Not yet suitable for extremely large relational databases Lack of very large machines, e.g. 64G memory Lack of multicast Financials: Cost of bandwidth Steady state costs > your own hardware Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 47
  • 48. Starter website - $ www.acme.com Elastic IP A EC2 Instance Apache Tomcat MySQL EBS Volume Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 48
  • 49. Highly available - $$ g y www.acme.com Elastic IP A Elastic IP B Availability Zone A Availability Zone B Apache Apache Tomcat Tomcat Tomcat Tomcat MySQL MySQL (slave) (Master) EBS Volume Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 49
  • 50. Batch processing architecture p g e.g. e g media transcoding Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 50
  • 51. Easy upgrades y pg Clone production environment Apply upgrades Terminate old instances once you are y sure that everything works Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 51
  • 52. Cloud bursting g Host application on your own hardware Use AWS for short-term spikes e.g. use EC2 instances with slave DBs to handle read-only requests Periodic batch jobs E.g. content rendering/transformation Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 52
  • 53. Using AWS in y g your application pp Simple Storage Service (S3) Stores blobs of data Eg. Photo sharing website Store media Hand H d out URL to S3 objects URLs bj Simple Queue Service (SQS) Hosted queue-based messaging system queue based Alternative to JMS Loosely coupling between systems SimpleDB Si l DB Store data sets Execute queries q Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 53
  • 54. Java libraries for AWS Generate the REST/SOAP requests manually JetS3t Rich API for accessing S3 https://jets3t.dev.java.net/ Typica yp API for SQS, EC2, SimpleDB http://code.google.com/p/typica/ SimpleJPA Si l JPA Subset of JPA on Simple DB http://code.google.com/p/simplejpa/ http://code google com/p/simplejpa/ Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 54
  • 55. Summary y Cloud Computing Immediate access to many servers Pay as you go – no upfront i t t/ investment/commitment required it t i d Easily scale up/down Cloud Tools Cl d T l Easy deployment and testing from Maven and Grails Configure multiple clusters Run JMeter tests in parallel Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 55
  • 56. Final thoughts g Download Cloud Tools today: http://code.google.com/p/cloudtools Buy my book ☺ Send email: chris@chrisrichardson.net Visit my website: http://www.chrisrichardson.net Talk to me about consulting and training t i i Copyright (c) 2008 Chris Richardson. All rights reserved. Slide 56