KEMBAR78
Running on Amazon EC2 | PDF
Running on Amazon EC2



Jonathan Weiss
Scalarium


Amazon EC2 Cluster Management
   Auto-Config
   Self-Healing
   Auto-Scaling
   One-click-deployment




www.scalarium.com




                                2
3
Amazon Elastic Compute Cloud

                   Virtual Server via API call



                   Pay per hour



                   Different instance types in
                   different regions




                                                 4
EC2 Features

               Spot instances
               Elastic IP

               Elastic Load Balancing

               CloudWatch

               Auto Scaling

               Virtual Private Cloud 

               Elastic Block Storage

                                        5
Running on EC2
Setting up an app




                    6
Running on EC2


Steps to complete
   Choose region and availability zone
   Define architecture
   Choose instance types and AMI
   Boot & configure instances
   Deploy application
   …
   Profit




                                          7
Region and Availability Zone

Regions
   Individual EC2 installations
   Multiple datacenters a.k.a availability zones
   Small differences in pricing
   US-east usually gets features first



Availability Zone
   Datacenter of instances & volumes
   Differently named for different accounts
   Traffic within the same zone is free
   Different Instance type availability



                                                    8
Existing Availability Zones




US-EAST-1        US-WEST-1        EU-WEST-1        AP-SOUTHEAST-1
   us-east-1a      us-west-1a      eu-west-1a      ap-southeast-1a
   us-east-1b      us-west-1b      eu-west-1b      ap-southeast-1b
   us-east-1c      us-west-1c
   us-east-1d




                                                                    9
Single AZ Deployment


Most common and simple setup



Not very different from typical setup




                                        10
Multi AZ Deployment




                      11
Architecture




               12
Architecture




               13
Architecture




               14
Elastic IP


  Static, public IP in contrast to
  instance IP

  Associate to any instance (~15s)

  Paying when not in use

  Use for DNS of load balancer




                                      15
Elastic Block Store EBS


  Network based block device: 1GB – 1TB

  Persistent & redundant

  Can be used by one instance at a time

  Incremental Snapshots

  RAID for better performance




                                           16
Elastic Load Balancer ELB


  Managed Load Balancer

  Auto-Scales via Round Robin DNS

  Can start/stop instances

  Slower and not as flexible as
  instance + HAProxy



The only way to scale past 1 Gbit/s!



                                       17
Relational Data Store RDS


  Managed MySQL instance

  Choose instance size,
  pay ~ 30% premium

  Hot-Failover and read replication
  available

  Define a 4h maintenance window

  Better performance than single EBS-
  backed instance


                                         18
Instance Types
                                                                 Hourly Cost   Monthly Cost
                            RAM      Cores x ECU      Arch
                                                                  (US-East)     (US-East)
Micro

   Tiny                    613 MB    Burst 1 x 2   32bit/64bit     $0.02           $15

Standard

   Small                   1.7 GB       1x1           32bit        $0.085          $62

   Large                   7.5 GB       2x2           64bit        $0.34          $248

   Extra Large             15 GB        4x2           64bit        $0.68          $496

High-Memory

   Extra Large             17.1 GB    2 x 3.25        64bit        $0.50          $366

   Double Extra Large      34.2 GB    4 x 3.25        64bit        $1.00          $732

   Quadruple Extra Large   68.4 GB    8 x 3.25        64bit        $2.00          $1464

High-CPU

   Medium                  1.7 GB      2 x 2.5        32bit        $0.17          $124

   Extra Large              7 GB       8 x 2.5        64bit        $0.68          $496



1 ECU = 1.0 – 1.2 GHz Opteron/Xeon from 2007                                                  19
Recommendation

Start with
   Small for load balancer
   Medium for App server
   Large for DB server
   Tiny for monitoring and utility




Grow to
   XL-HighCPU for load balancer
   XL-HighCPU for App server
   XL-HighMemory for DB server




                                      20
Reserved Instances

                     Pay amount upfront and you get:


                      Hourly price ~ 33%
                      Guaranteed availability
                      24/7 instance cost: ~ 55%




                          Recommended!




                                                       21
Running on EC2


Steps to complete
  Choose region and availability zone
  Define architecture
  Choose instance types
   Boot & configure instances
   Deploy application
   …
   Profit




                                         22
Instance Configuration
From blank Linux to your PHP app server




                                          23
Instance Bootstrap

                2 Approaches




                               24
Instance Bootstrap

                                  2 Approaches




                 Images
    One image for every server type
    All software pre-installed
    Few moving parts
    Fast boot




                                                 25
Instance Bootstrap

                                  2 Approaches




                 Images                                Scripted
    One image for every server type          One image to rule them all
    All software pre-installed               Smallest common denominator
    Few moving parts                         Acquires configuration on start
    Fast boot                                Installs & configures during
                                               boot process to fit role
                                              All parts moving
                                              Slower boot


                                                                                26
Instance Bootstrap

                                  2 Approaches




                 Images                                Scripted
    One image for every server type          One image to rule them all
    All software pre-installed               Smallest common denominator
    Few moving parts                         Acquires configuration on start
    Fast boot                                Installs & configures during
                                               boot process to fit role
                                              All parts moving
                                              Slow boot


                                                                                27
Chef


Open Source Provisioning Tool
   Configures your servers
   Cookbooks & recipes
   Ruby DSL




                                28
Chef




       29
Chef Solo




            30
MemcachedSolo




                31
Chef Solo Run
 Configuration JSON




 Run Chef Solo




                     32
Deploying

Deploy resource
   Compatible with Capistrano layout
   Supports Capistrano hooks via deploy/hook_name.rb
   Async!




                                                        33
Chef Experiences


           Great so far, but
              Not idempotent
              Unintuitive 2 phases
              Documentation could be better
              Example Cookbooks often so so




                                               34
Running on EC2


Steps to complete
  Choose region and availability zone
  Define architecture
  Choose instance types
  Boot & configure instances
  Deploy application
   …
   Profit




                                         35
The Project

              Browser game hosted on EC2



              1.2 million Daily Active Users (DAU)



              ~ 130 server



              ~ 120.000 requests per minute on
              average
Flexibility and Scalability
Flexibility and Scalability
Q&A
Peritor GmbH
Blücherstr. 22, Hof III Aufgang 6
10961 Berlin
Tel.: +49 (0)30 69 20 09 84 0
Fax: +49 (0)30 69 20 09 84 9
Internet: www.peritor.com
E-Mail: info@peritor.com



© Peritor GmbH - Alle Rechte vorbehalten

Running on Amazon EC2

  • 1.
    Running on AmazonEC2 Jonathan Weiss
  • 2.
    Scalarium Amazon EC2 ClusterManagement   Auto-Config   Self-Healing   Auto-Scaling   One-click-deployment www.scalarium.com 2
  • 3.
  • 4.
    Amazon Elastic ComputeCloud Virtual Server via API call Pay per hour Different instance types in different regions 4
  • 5.
    EC2 Features Spot instances Elastic IP Elastic Load Balancing CloudWatch Auto Scaling Virtual Private Cloud  Elastic Block Storage 5
  • 6.
  • 7.
    Running on EC2 Stepsto complete   Choose region and availability zone   Define architecture   Choose instance types and AMI   Boot & configure instances   Deploy application   …   Profit 7
  • 8.
    Region and AvailabilityZone Regions   Individual EC2 installations   Multiple datacenters a.k.a availability zones   Small differences in pricing   US-east usually gets features first Availability Zone   Datacenter of instances & volumes   Differently named for different accounts   Traffic within the same zone is free   Different Instance type availability 8
  • 9.
    Existing Availability Zones US-EAST-1 US-WEST-1 EU-WEST-1 AP-SOUTHEAST-1   us-east-1a   us-west-1a   eu-west-1a   ap-southeast-1a   us-east-1b   us-west-1b   eu-west-1b   ap-southeast-1b   us-east-1c   us-west-1c   us-east-1d 9
  • 10.
    Single AZ Deployment Mostcommon and simple setup Not very different from typical setup 10
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    Elastic IP   Static,public IP in contrast to instance IP   Associate to any instance (~15s)   Paying when not in use   Use for DNS of load balancer 15
  • 16.
    Elastic Block StoreEBS   Network based block device: 1GB – 1TB   Persistent & redundant   Can be used by one instance at a time   Incremental Snapshots   RAID for better performance 16
  • 17.
    Elastic Load BalancerELB   Managed Load Balancer   Auto-Scales via Round Robin DNS   Can start/stop instances   Slower and not as flexible as instance + HAProxy The only way to scale past 1 Gbit/s! 17
  • 18.
    Relational Data StoreRDS   Managed MySQL instance   Choose instance size, pay ~ 30% premium   Hot-Failover and read replication available   Define a 4h maintenance window   Better performance than single EBS- backed instance 18
  • 19.
    Instance Types Hourly Cost Monthly Cost RAM Cores x ECU Arch (US-East) (US-East) Micro Tiny 613 MB Burst 1 x 2 32bit/64bit $0.02 $15 Standard Small 1.7 GB 1x1 32bit $0.085 $62 Large 7.5 GB 2x2 64bit $0.34 $248 Extra Large 15 GB 4x2 64bit $0.68 $496 High-Memory Extra Large 17.1 GB 2 x 3.25 64bit $0.50 $366 Double Extra Large 34.2 GB 4 x 3.25 64bit $1.00 $732 Quadruple Extra Large 68.4 GB 8 x 3.25 64bit $2.00 $1464 High-CPU Medium 1.7 GB 2 x 2.5 32bit $0.17 $124 Extra Large 7 GB 8 x 2.5 64bit $0.68 $496 1 ECU = 1.0 – 1.2 GHz Opteron/Xeon from 2007 19
  • 20.
    Recommendation Start with  Small for load balancer   Medium for App server   Large for DB server   Tiny for monitoring and utility Grow to   XL-HighCPU for load balancer   XL-HighCPU for App server   XL-HighMemory for DB server 20
  • 21.
    Reserved Instances Pay amount upfront and you get: Hourly price ~ 33% Guaranteed availability 24/7 instance cost: ~ 55% Recommended! 21
  • 22.
    Running on EC2 Stepsto complete  Choose region and availability zone  Define architecture  Choose instance types   Boot & configure instances   Deploy application   …   Profit 22
  • 23.
    Instance Configuration From blankLinux to your PHP app server 23
  • 24.
    Instance Bootstrap 2 Approaches 24
  • 25.
    Instance Bootstrap 2 Approaches Images   One image for every server type   All software pre-installed   Few moving parts   Fast boot 25
  • 26.
    Instance Bootstrap 2 Approaches Images Scripted   One image for every server type   One image to rule them all   All software pre-installed   Smallest common denominator   Few moving parts   Acquires configuration on start   Fast boot   Installs & configures during boot process to fit role   All parts moving   Slower boot 26
  • 27.
    Instance Bootstrap 2 Approaches Images Scripted   One image for every server type   One image to rule them all   All software pre-installed   Smallest common denominator   Few moving parts   Acquires configuration on start   Fast boot   Installs & configures during boot process to fit role   All parts moving   Slow boot 27
  • 28.
    Chef Open Source ProvisioningTool   Configures your servers   Cookbooks & recipes   Ruby DSL 28
  • 29.
  • 30.
  • 31.
  • 32.
    Chef Solo Run Configuration JSON Run Chef Solo 32
  • 33.
    Deploying Deploy resource  Compatible with Capistrano layout   Supports Capistrano hooks via deploy/hook_name.rb   Async! 33
  • 34.
    Chef Experiences Great so far, but   Not idempotent   Unintuitive 2 phases   Documentation could be better   Example Cookbooks often so so 34
  • 35.
    Running on EC2 Stepsto complete  Choose region and availability zone  Define architecture  Choose instance types  Boot & configure instances  Deploy application   …   Profit 35
  • 36.
    The Project Browser game hosted on EC2 1.2 million Daily Active Users (DAU) ~ 130 server ~ 120.000 requests per minute on average
  • 37.
  • 38.
  • 39.
    Q&A Peritor GmbH Blücherstr. 22,Hof III Aufgang 6 10961 Berlin Tel.: +49 (0)30 69 20 09 84 0 Fax: +49 (0)30 69 20 09 84 9 Internet: www.peritor.com E-Mail: info@peritor.com © Peritor GmbH - Alle Rechte vorbehalten