Your SlideShare is downloading. ×
Architecting Cloud Apps
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Architecting Cloud Apps

6,360
views

Published on

AWS Start-up event 2009 - Architecting Cloud Apps

AWS Start-up event 2009 - Architecting Cloud Apps


2 Comments
26 Likes
Statistics
Notes
  • good
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Can I have access to download this presentation ?
    this presentation is excellent.
    --
    Sri
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
6,360
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
2
Likes
26
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Explain each service features and details here
  • This is your classic three tier architecture. Incoming requests are fielded by a web server. The web server probably also draws files (such as images, PDFs, music, and so forth) from a file server. The web server farms processing out to a number of servers running an application server. This is where the bulk of your application’s business logic probably resides. You probably maintain a relational database on the back-end as well.
  • Let’s start our migration project by moving many of our static and large files over to Amazon S3. Things like images, music, PDFs, and the like are best suited for Amazon S3. Amazon S3 provides a low-cost, highly reliable and scalable storage environment for your web applications.
  • Many times you’ll have a number of users hitting your web application from all over the world. It can be time consuming and slow to serve all of those users’ requests from Amazon S3. That’s why we built Amazon CloudFront. Amazon CloudFront is a content delivery network that takes the data you’ve stored in Amazon S3 and caches it across a worldwide network of edge locations. In this way, the large static files used by your web application are stored as close as possible to the users who are requesting them.
  • Amazon EC2 enables you to choose the operating system and application platform of your choice to host your web application. Whether it’s Microsoft .NET, IBM WebSphere, JBoss, Oracle Fusion Middleware, PHP, Ruby on Rails, or whatever, you can configure your own virtual environment to run the platform you need for your business. This is where you’ll move your web application, altering it to point to the persistent files you’ve moved to Amazon S3.
  • A typical web application has a front-end web server to field incoming requests, which then farms out work to a bunch of application servers. You can move these applications ervers to Amazon EC2 as well.
  • You’ll also want to move your database into the cloud. Amazon Elastic Block Store is a feature of Amazon EC2 that provides a block storage device in the cloud. You’d house your database in Amazon EBS. Amazon EBS can also be setup to periodically snapshot backup images into Amazon S3, so you can always roll back to a version of Amazon EBS if you need to, and you can rest assured that your database will exhibit the same resilient and reliable characteristics as the rest of AWS.
  • Amazon SQS is a queueing service that provides the glue between your web server and your application server. The most common setup will involve configuring two queues. The first queue will accept messages from the web server hosted on Amazon EC2. Application servers, also hosted on Amazon EC2, will pluck those messages off the queue, process data based on the contents of the message, and then place the equivalent of an “I’m done! Here are the results.” message on the second queue. The web server would then pluck the message off the second queue and return results back to the client that made the initial request. In this way, your Amazon EC2 instances can grow or shrink, startup and fail with impunity, while you can rest assured that all of your data processing happens reliably.
  • Amazon SimpleDB can be added to the equation to store your access logs, application logfiles, and even indices to data you’re storing in Amazon S3.
  • Amazon SimpleDB can be added to the equation to store your access logs, application logfiles, and even indices to data you’re storing in Amazon S3.
  • Transcript

    • 1. Jinesh Varia Technology Evangelist jvaria@amazon.com
      Architecting
      for the AWS Cloud
      Twitter: @jinman
    • 2. Cloud Computing Attributes
      What makes the Cloud so attractive
      Abstract Resources
      Focus on your needs, not on hardware specs. As your needs change, so should your resources.
      On-Demand Provisioning
      Ask for what you need, exactly when you need it. Get rid of it when you don’t need
      Scalability
      Scale out or in depending on usage needs.
      No Up-Front Costs
      No contracts or long-term commitments.
      Pay only for what you use.
      Efficiency of Experts
      Utilize the skills, knowledge and resources of experts.
    • 3. The Cloud
      The “Living and Evolving” Cloud
      AWS services and features
      Most Applications Need:
      Compute
      Storage
      Messaging
      Payment
      Distribution
      Scale
      Analytics
      Your Application
      Amazon CloudFront
      Amazon SQS Queues
      Amazon
      SimpleDB Domains
      Payment : Amazon FPS/ DevPay
      Amazon
      Elastic MapReduceJobFlows
      Amazon S3 Objects and Buckets
      Auto-Scaling
      LB
      Cloud
      Watch
      Amazon EC2 Instances(On-Demand, Reserved)
      EBS
      Volumes
      Snapshots
      Amazon
      Virtual Private Cloud
      Amazon WorldWidePhysical Infrastructure
      (Geographical Regions, Availability Zones, Edge Locations))
    • 4. Amazon S3
      Customer
      runInstance()
      Amazon EC2
      Amazon Elastic Compute Cloud
      Resizable compute capacity in the cloud
      Obtain and boot new server instances in minutes
      Quickly scale capacity, up or down, using Web Services Interface
      Hosted Virtualization
      Full root-level access to the virtualized server instance
    • 5. Amazon EC2
      WebSphere
      Hibernate
      Java
      Linux
      Amazon
      Machine
      Image
      Ruby
      Rails
      MySQL
      Fedora-6
      Amazon
      Machine
      Image
      PHP
      Apache
      Perl
      Postgress
      Linux-Ubuntu
      Amazon
      Machine
      Image
      Available in US and EU
      New Terms and Features
      Amazon Machine Images
      Instances
      Security Groups
      Elastic IP Addresses
      Availability Zones
      Instance Types (M1, C1)
      Elastic Block Store and Snapshots
      Public DataSets
      Platforms
      Windows, Open Solaris, Linux (Fedora, Debian, Ubuntu, Centos …..)
      AMIs : 1500+
      Amazon S3
      AMI
      AMI
      AMI
      Amazon EC2
      5
    • 6. EC2 API Overview
      CreateVolume –
      Create an EBS volume of any size (1 GB to 1 TB).
      Images:
      RegisterImage
      DescribeImages
      DeregisterImage
      ModifyImageAttribute
      DescribeImageAttribute
      ResetImageAttribute
      Instances:
      RunInstances
      DescribeInstances
      TerminateInstances
      GetConsoleOutput
      RebootInstances
      IP Addresses:
      AllocateAddress
      ReleaseAddress
      AssociateAddress
      DisassociateAddress
      DescribeAddresses
      Keypairs:
      CreateKeyPair
      DescribeKeyPairs
      DeleteKeyPair
      Security Groups:
      CreateSecurityGroup
      DescribeSecurityGroups
      DeleteSecurityGroup
      AuthorizeSecurityGroupIngress
      RevokeSecurityGroupIngress
      Block Storage Volumes:
      CreateVolume
      DeleteVolume
      DescribeVolumes
      AttachVolume
      DetachVolume
      CreateSnapshot
      DescribeSnapshots
      DeleteSnapshot
      AttachVolume –
      Attach an EBS volume to a running EC2 instance.
      AssociateAddress –
      Associate public IP address with a running EC2 instance.
      DescribeImages –
      Fetch a list of all available Amazon Machine Images (AMIs).
      RunInstances –
      Launch any number of AMIs on available hardware.
    • 7. ElasticFox
      Enter AWS Credentials.
      Select active set of AWS Credentials.
      Enter desired number of running instances.
      Additional importantfunctions on tabs.
      Choose keypair.
      Filter AMI List.
      See list of available AMIs.
      Go!
      See list of running instances.
    • 8. Scalability
      Build Scalable Architecture on AWS
      A scalable architecture is critical to take advantage of a scalable infrastructure
      Characteristics of Truly Scalable Service
      Increasing resources results in a proportional increase in performance
      A scalable service is capable of handling heterogeneity
      A scalable service is operationally efficient
      A scalable service is resilient
      A scalable service becomes more cost effective when it grows
    • 9. Cloud Architecture Lessons
      using Amazon Web Services
      1. Design for failure and nothing fails
      2. Loose coupling sets you free
      3. Implement “Elasticity”
      4. Build Security in every layer
      5. Don't fear constraints
      6. Leverage AWS storage options
    • 10. 1. Design for Failure
      and nothing will really fail
      "Everything fails, all the time"
      Werner Vogels, CTO Amazon.com
      Avoid single points of failure
      Assume everything fails, and design backwards
    • 11. Design for Failure with AWS
      Tools to make your life easier
      Use Elastic IP addresses for consistent and re-mappable routes
      Use multiple Amazon EC2 Availability Zones (AZs)
      Create multiple database slaves across AZs
      Use real-time monitoring (Amazon CloudWatch)
      Use Amazon Elastic Block Store (EBS) for persistent file systems
    • 12. YourWebTwoDotZeroName.com
      EC2 Instance A
      EC2 Instance B
      MASTER
      SLAVE
      MASTER
      Replication
      LOG
      Volume
      DATA
      Volume
      DATA
      Volume
    • 13. YourWebTwoDotZeroName.com
      Availability Zone 2
      EC2 Instance B
      EC2 Instance A
      Availability Zone 1
      MASTER
      SLAVE
      MASTER
      Replication
      DATA
      Volume
      DATA
      Volume
      LOG
      Volume
      LOG
      Volume
      Amazon S3
    • 14. 2. Build Loosely Coupled Systems
      The looser they're coupled, the bigger they scale
      Independent components
      Design everything as a Black Box
      De-couplingfor Hybrid models
      Load-balance clusters
      Use Amazon SQS as Buffers
      Tight Coupling
      Controller A
      Controller B
      Controller C
      Q
      Q
      Q
      Loose Coupling using Queues
      Controller A
      Controller B
      Controller C
    • 15. 3. Implement Elasticity
      Elasticity is fundamental property of the Cloud
      Don’t assume healthor fixed location of components
      Use designs that are resilient to reboot and re-launch
      Bootstrapyour instances
      Enable dynamic configuration
      Use Auto-scaling (Free)
      Use Elastic Load Balancing on multiple layers
      Use configurations in SimpleDB to bootstrap instance
    • 16. 4. Build Security in every layer
      Security is everywhere
      Physical is free
      Network is easy
      The rest can be added
      Create distinct Security Groups for each Amazon EC2 cluster
      Use group-based rules for controlling access between layers
      Restrict external access to specific IP ranges
      Encrypt data “at-rest” in Amazon S3
      Encrypt data “in-transit” (SSL)
      Consider encrypted file systems in EC2 for sensitive data
      Rotate your AWS Credentials, Pass in as arguments encrypted
      Use MultiFactor Authentication
    • 17.
    • 18. 5. Don't fear constraints
      Re-think architectural constraints
      More RAM? Distribute load across machines
      Shared distributed cache
      Better IOPS on my database?
      Multiple read-only / sharding / DB clustering
      Your server has better config?
      Implement elasticity
      Static IP?
      Boot script for software reconfiguration from SimpleDB
    • 19. 6. Leverage many storage options
      Which storage option to use when?
      Amazon S3: large static objects
      Amazon Cloudfront: content distribution
      Amazon SimpleDB: simple data indexing/querying
      Amazon EC2 local disc drive : transient data
      Amazon EBS: RDBMS persistent storage + Snapshots on S3
    • 20. Cloud Architecture Lessons
      Best Practices
      1. Design for failure and nothing fails
      2. Loose coupling sets you free
      3. Design for dynamism
      4. Build Security in every layer
      5. Don't fear constraints
      6. Leverage many storage options
    • 21. AWS community and Ecosystem
      Find help, guidance, assistance when you need it
      AWS Ecosystem
      AWS Community
    • 22. Migrating
      a Web Application
      to AWS
      Photo: La Pedrera - Casa Milà, Barcelona - Antonio Gaudi
    • 23. Migrating your Web Application
      Step by Step towards AWS
      A typical Web App needs:
      Compute Power
      Storage capacity
      Content Distribution
      Database storage
      Messaging
      Load balancing
      Monitoring
    • 24. Migrating your Web Application - 1/8
      Typical Web App Architecture
      Database
      Application Server /Business Logic
      Web Server /
      Presentation Layer
      Client Browser
    • 25. Migrating your Web Application - 2/8
      Amazon S3 for Storage
      Store persistent files in Amazon S3 for lower costs, higher reliability
      Client Browser
    • 26. Migrating your Web Application - 3/8
      Use Amazon CloudFront
      Amazon CloudFront for distribution
      Amazon CloudFrontis a content delivery network that caches data stored in Amazon S3 across a network of 14 edge locations around the world
      Client Browser
    • 27. Migrating your Web Application - 4/8
      Amazon EC2 for your choice of web servers
      Configure Amazon EC2 running your choice of web server to handle all incoming web requests.
      Client Browser
    • 28. Migrating your Web Application - 4/8
      Scale out App servers on Amazon EC2
      Configure multiple Amazon EC2 instances running your choice of application server to process requests.
      Use Availability Zones and Elastic IPs for greater reliability and resiliency.
      Utilize Auto-scaling and Elastic LB service
      Client Browser
    • 29. Migrating your Web Application - 5/8
      Use Amazon EBS for Database
      EBS for Persistent Storage and S3 for Snapshots
      Configure an Amazon EBS device to host your existing relational database. Snapshots can be automatically backed up to Amazon S3.
      Client Browser
    • 30. Migrating your Web Application - 6/8
      Use Amazon SQS
      Amazon SQS for queuing requests
      SQS
      Amazon SQS makes it easy to coordinate between the web server and application servers.
      Client Browser
    • 31. Migrating your Web Application - 7/8
      Use Amazon SimpleDB
      Amazon SimpleDB for log files, metadata
      SimpleDB
      SQS
      Amazon SimpleDBcan be used to store metadata, logfiles, and other information for your site.
      Client Browser
    • 32. Migrating your Web Application - 8/8
      Use Amazon SimpleDB
      Monitor your Amazon EC2 instances using CloudWatch
      SimpleDB
      SQS
      Amazon CloudWatch to monitoring your Amazon EC2 instances
      Client Browser
    • 33. Migrating your Web Application
      Step by Step towards AWS
      A typical Web App needs:
      With AWS:
      Compute Power
      Storage capacity
      Content Distribution
      Database storage
      Messaging
      Load balancing
      Monitoring
      Amazon EC2
      Amazon S3
      Amazon CloudFront
      Amazon EBS
      Amazon SQS
      Amazon EC2
      Amazon CloudWatch
    • 34. Other Services
      Wait, there’s more…
      Amazon Flexible Payments ServicePCI-compliant Payment infrastructure built from
      the ground up for Developers
      Amazon Mechanical Turk
      A Flexible, Scalable Workforce with a programmatic interface
      (400K People in 100 Countries)
      Amazon Elastic MapReduce
      Hosted Hadoop Framework on Amazon EC2 and Amazon S3 to crunch large amounts of data
      AWS Import/Export
      For uploading large datasets to Amazon S3, Ship us your hard drives - “sneaker net” to Amazon S3
    • 35. Amazon Web Services tools
      Things you need
      Web : AWS Management Console
      IDE : AWS Toolkit for Eclipse
      Tools :
      iPhoneApps
      CloudBerryExplorer
      AWSZone
      Firefox Plugins :
      ElasticFox, S3Fox, SDB Tool
      Several libraries
    • 36. Conclusions
      Most Important Lesson From Our Customers:
      Start small with a well-defined proof of concept that will
      highlight the power of AWS
      Build support in your organization
      Once one application is launched others will follow…
      Photo: Grand Canyon Hopi Point SunSet
    • 37. Thank you!
      jvaria@amazon.com Twitter:@jinmanPresentation idea from @simon
    • 38. http://aws.amazon.com

    ×