amazon web services building blocks for drupal applications and hosting
Post on 21-Oct-2014
6.164 views
DESCRIPTION
Cloud computing offers many advantages and challenges for hosting Drupal sites. Acquia Hosting is a highly available cloud-based hosting platform tuned for Drupal performance and scalability. Acquia Hosting built on Amazon Web Services (AWS), takes advantage of an industry leading cloud-computing platform to provide the highest levels of security, fault-tolerance and operational controls possible in the cloud. This Webinar, featuring Barry Jaspan, Senior Architect at Acquia and Jeff Barr, Senior Evangelist Amazon Web Services, discusses how Amazon's Web Services can help Drupal site developers and managers solve common but vexing problems, including scaling. The Elastic Compute Cloud (EC2) components will be discussed in detail. In addition we will discuss specific best practices for: * Creating a high-performance, high-availability Drupal tuned hosting environment on AWS * Load balancing: Elastic IP vs. Elastic Load Balancing * Handling user-uploaded files with multiple web nodes * Achieving true high-availability with multiple availability zones * Choosing between Amazon Relational Database Service and building it yourself * Configuring and managing your cloud serversTRANSCRIPT
• IntroduceyoutoAWS
• Showyouhowthepiecesfittogether• Providebackgroundforsecondhalfofthiswebinar• AnsweryourAWSandcloudcompuRngquesRons
GOALSFORTODAY
• AWS=“AmazonWebServices”
• Oneofourthreebusinesses:– OnlineRetail– SellerBusiness(Marketplace)
– WebServiceInfrastructure
• PayAsYouGoPricingModel• TwoLevels:
– InfrastructureasaService(IaaS)– Pla_ormasaService(PaaS)
INTRODUCINGAWS
Amazon Web Services
Or “AWS” for short…
• Business
• Security
• Presence
• Technical
BUILDINGTHECLOUD
• Amazon’sBrandName
• Self‐serveSignup• UserAccounts• PayAsYouGo• CreditCardBilling
BUILDINGTHECLOUD‐BUSINESS
• SecurityisJob#1forUs• DesignedforMulR‐Tenancy• SAS70CerRficaRon• SecurityWhitePaper
– PhysicalSecurity– LogicalSecurity
• PublishedBestPracRces• hfp://aws.amazon.com/security
BUILDINGTHECLOUD‐SECURITY
BUILDINGTHECLOUD‐PRESENCE
Ashburn,VA/Dallas,TX/LosAngeles,CA/Miami,FL/Newark,NJ/PaloAlto,CA/Seafle,WA/St.Louis,MO/Amsterdam/Dublin/Frankfurt/London/HongKong/Tokyo/Singapore/NewYork
USEast(NorthernVirginia)USWest(NorthernCalifornia)Europe(Dublin)AsiaPacific(Singapore)Moretocome…
AWSRegions:
AWSCloudFrontLocaRons
BUILDINGTHECLOUD‐TECHNICAL
• AmazonEC2:on‐demandcomputepower– Obtainandbootnewserverinstancesinminutes– Scalecapacityupordownasneeded– $0.085perhourandup
• Keyfeatures:– SupportforWindows,Linux,andOpenSolaris– Completeflexibilitytoinstallanyopensourceorcommercialsoqware– SupportsallmajorwebandapplicaRonpla_orms– MulRpleAvailabilityZones– ElasRcIPAddresses– ElasRcBlockStorage– ElasRcLoadBalancing– AutoScaling– AmazonCloudWatch
AMAZONELASTICCOMPUTECLOUD
• CreateanewrelaRonaldatabasewithoneAPIcall• OffloadcommonadministraRvetaskstoAWS• UseexisRngcodeandtools• ScaleupprocessingorstoragewithoneAPIcall
• Recoverdatabaseusingsnapshotorlogfile
• MySQL5.1
AMAZONRELATIONALDATABASESERVICE(RDS)
2010Jan Feb Mar Apr May Jun Jul
»AmazonEC2ReservedInstanceswithWindows,ExtraLargeHighMemoryInstances»AmazonS3VersioningFeature»ConsolidatedBillingforAWS»LowerpricingforOutboundDataTransfer
»AmazonSNS
»SingaporeRegion»RDSinEurope»ELBsessions
AWSPACEOFINNOVATION–2010
»RDSConsoleSupport» S3ReducedRedundancyStorage» RDSMulR‐AZ» CloudFrontStreamingLogs» VPCinEurope
»AWSSoluRonPages
»RDSSSLSupport»CloudWatchEBSMetrics»S3ConsoleSupport»Import/ExportAPI»CloudFrontHTTPSSupport»CloudFrontPOPinNY»CloudFrontPriceReducRon»ElasRcMapReduceupdates
»??»??»??
• AWSTrends:– ConRnuousinnovaRon– AddiRonalservices– AddiRonalfeatures– AddiRonallocaRons
• ThisistheRmetolearnandstarttousethecloud!
FINALTHOUGHTS
• Createdeveloperaccountathfp://aws.amazon.com
• Downloadaccesskeys,SDKs,developertools
• BuildanddeployapplicaRon
• AWSBlog:hfp://aws.typepad.com
GETTINGSTARTEDWITHAWS
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Hosting Drupal on AWS
Barry Jaspan Senior Architect, Acquia [email protected] @bjaspan
http://acquia.com/resources/acquia-tv
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Acquia Hosting Overview • Managed web hosting for Drupal
• High performance, scalability, availability
• Combined infrastructure- and application-level support from one vendor
• Single or multi-tier • Load balancers, web nodes, database clusters,
memcached, network filesystems, ...
• One instance, separate instances, or any combination
• Automated • We provisioned for a “20M uniques on day one”
customer ... in a few minutes.
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Load balancing
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Load balancing on AWS • No hardware LB is available
• Round-robin DNS to web nodes is bad for high-availability
• Elastic Load Balancer (ELB) • CNAME requires http://www.TLD
• Limited flexibility (but now with stickiness!)
• Elastic IP address (EIP) + software LB • Allows http://TLD
• Only one EIP per server
• We use nginx for LB and Varnish for caching
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Software load balancer
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Shared !les
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
File sharing on AWS • Drupal needs a POSIX filesystem for user-
uploaded files
• Elastic Block Store (EBS) is single-instance
• rsync does not scale past N=2 web nodes
• S3FS is worse than useless for this • Too slow, non-POSIX, unreliable, unsupported
• A network filesystem is required • NFS?
• More later...
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Basic web stack
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
HA load balancer • Load balancer might fail
• Elastic IP • Requires a hot spare
• EIP must be reassigned to a hot spare
• Elastic Load Balancer • For us, can’t talk directly to web nodes
• nginx provides virtual host flexibility, concurrency protection, etc
• Varnish provides caching
• Also requires a hot spare (or second active instance)
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
HA load balancer with EIP
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
HA !lesystem • NFS
• Cannot tolerate server failure
• Not replicated • DRBD with virtual IP reassignment won’t work
• AFS • Tolerates server failure
• Not replicated
• GlusterFS • Replicated and distributed
• GPL, commercially supported, under active dev
• Easy to use, tricky to optimize just right
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
HA !lesystem with GlusterFS
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
HA database • Multi-AZ Relational DB Service (RDS)
• Failover takes 3 minutes
• Active/passive master MySQL replication • Must avoid “split-brain” operation
• All web nodes must fail over simultaneously
• Heartbeat with virtual IP reassignment not possible
• Failover mechanism must itself be HA • Using MySQL proxy just leads to the same problem
• Requires synchronous app-level failover
• We store db election in GlusterFS • Any other HA replicated data store would do
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
High-availability web stack
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Machine con!g • All these instances need to be built
• Incremental custom AMIs • Time consuming during development/debugging
• Poor fit for source-code control
• Leads to mystery configurations
• Automated configuration scripts/language • Incremental updates are simple
• Good fit for source-code control
• Known process from a clean, base AMI
• Combining the two may be best
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Static con!g with puppet
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Elasticity • Elastic scalability means dynamic
configuration • Balancers: info on all web nodes
• Web nodes (Drupal): info on all db servers
• FS servers: info on all EBS volumes to use
• FS clients: info on all FS servers to use
• All (re-)started instances get a new IP • EIPs are limited and cost more to use
• All servers need current internal IPs
• Admins need current external IPs
• Requires frequent manual updates, or automation
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Dynamic data-driven con!g
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Email from AWS • AWS IPs are on many spam blacklists
• Can’t reliably be used to send mail
• Requires a non-cloud mail server or service provider
• Note: Jeff tells me this situation has improved
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Colo mail server
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Everything else • I’ve only talked about cloud-specific issues
• To self-host (anywhere), you also need: • Backups
• 24x7 monitoring
• Ops staff
• Caffeine
• Ibuprofen
© 2010 Acquia, Inc. Amazon Web Services Building Blocks for Drupal Applications and Hosting
Management and ops stack