• Save
Architecting Cloud Apps
Upcoming SlideShare
Loading in...5
×
 

Architecting Cloud Apps

on

  • 7,307 views

AWS Start-up event 2009 - Architecting Cloud Apps

AWS Start-up event 2009 - Architecting Cloud Apps

Statistics

Views

Total Views
7,307
Views on SlideShare
7,258
Embed Views
49

Actions

Likes
26
Downloads
0
Comments
2

4 Embeds 49

http://www.linkedin.com 26
http://www.slideshare.net 12
https://www.linkedin.com 10
http://www.lmodules.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • good
    Are you sure you want to
    Your message goes here
    Processing…
  • Can I have access to download this presentation ?
    this presentation is excellent.
    --
    Sri
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.

Architecting Cloud Apps Architecting Cloud Apps Presentation Transcript

  • Jinesh Varia Technology Evangelist jvaria@amazon.com
    Architecting
    for the AWS Cloud
    Twitter: @jinman
  • 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.
  • 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))
  • 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
  • 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
  • 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.
  • 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.
  • 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
  • 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
  • 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
  • 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
  • YourWebTwoDotZeroName.com
    EC2 Instance A
    EC2 Instance B
    MASTER
    SLAVE
    MASTER
    Replication
    LOG
    Volume
    DATA
    Volume
    DATA
    Volume
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • AWS community and Ecosystem
    Find help, guidance, assistance when you need it
    AWS Ecosystem
    AWS Community
  • Migrating
    a Web Application
    to AWS
    Photo: La Pedrera - Casa Milà, Barcelona - Antonio Gaudi
  • 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
  • Migrating your Web Application - 1/8
    Typical Web App Architecture
    Database
    Application Server /Business Logic
    Web Server /
    Presentation Layer
    Client Browser
  • Migrating your Web Application - 2/8
    Amazon S3 for Storage
    Store persistent files in Amazon S3 for lower costs, higher reliability
    Client Browser
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Thank you!
    jvaria@amazon.com Twitter:@jinmanPresentation idea from @simon
  • http://aws.amazon.com