Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Architecting In The Cloud


Published on

Matt Tavis, AWS Solutions Architect talks about building apps on AWS.

Published in: Technology
  • Hey buddy. I actually have been looking for something like this for the longest time. Glad I found out about you guys And also thanks for all the help with my router. ➽➽
    Are you sure you want to  Yes  No
    Your message goes here
  • If you are looking for an academic writing service in US, you can never go wrong with , where essays are available in a wide range of subjects, and academic levels from high school to PhD level.
    Are you sure you want to  Yes  No
    Your message goes here

AWS Architecting In The Cloud

  1. Architecting for the AWS Cloud Matt Tavis Solutions Architect [email_address]
  2. Cloud Computing Attributes 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. Pay only for what you use. 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. What Do We Mean By Scalability <ul><li>Scalability means the ability to scale up (bigger boxes), scale down (smaller boxes), scale out (more boxes) and scale in (fewer boxes) </li></ul><ul><li>A truly scalable has service has the following characteristics: </li></ul><ul><ul><li>Increasing resources results in a proportional increase in performance </li></ul></ul><ul><ul><li>A scalable service is capable of handling heterogeneity </li></ul></ul><ul><ul><li>A scalable service is operationally efficient </li></ul></ul><ul><ul><li>A scalable service is resilient </li></ul></ul><ul><ul><li>A scalable service becomes more cost effective when it grows </li></ul></ul><ul><li>A scalable architecture is critical to take advantage of a scalable infrastructure! </li></ul>
  4. AWS Cloud Architecture Lessons <ul><li>Design for failure and nothing fails </li></ul><ul><li>Loose coupling sets you free </li></ul><ul><li>Design for dynamism </li></ul><ul><li>Security is everywhere </li></ul><ul><li>Don’t fear constraints </li></ul><ul><li>Leverage a variety of storage options </li></ul>
  5. Design for Failure and Nothing Fails <ul><li>Never expect your systems to be stable </li></ul><ul><li>Never expect your code to be perfect </li></ul><ul><li>Everything fails </li></ul><ul><ul><li>IO controllers </li></ul></ul><ul><ul><li>Ethernet chips </li></ul></ul><ul><ul><li>Hard disks </li></ul></ul><ul><ul><li>Fans </li></ul></ul><ul><ul><li>Power supplies </li></ul></ul><ul><ul><li>Cabling </li></ul></ul><ul><ul><li>Network ports </li></ul></ul><ul><ul><li>Switches </li></ul></ul><ul><ul><li>Load-balancers </li></ul></ul><ul><li>If you can add it, it can fail </li></ul>
  6. Examples of Handling Failure on AWS <ul><li>Use Elastic IP addresses for consistent and re-mappable routes </li></ul><ul><li>Use multiple Amazon EC2 Availability Zones (AZs) </li></ul><ul><li>Create multiple database slaves across AZs </li></ul><ul><li>Use real-time monitoring across key access points (Amazon CloudWatch) </li></ul><ul><li>Use Amazon Elastic Block Store (EBS) for persistent file systems </li></ul>
  7. Build Loosely Couple Systems <ul><li>Make no assumptions about the inner workings of your components </li></ul><ul><li>Design for a jumble of black boxes </li></ul><ul><li>Loosely coupled systems on AWS </li></ul><ul><ul><li>De-coupling systems allows for hybrid models (in-cloud + in-physical data center) </li></ul></ul><ul><ul><li>Balancing between clusters enables easier scaling </li></ul></ul><ul><ul><li>Using queues (Amazon SQS) buffers against failures </li></ul></ul>
  8. Design for Dynamism <ul><li>Components should not assume the health or location of other components </li></ul><ul><li>Bootstrapping and dynamic configuration helps you scale dynamically </li></ul><ul><li>Dynamism on AWS </li></ul><ul><ul><li>Use Auto Scaling </li></ul></ul><ul><ul><li>Use Elastic Load Balancing on multiple layers </li></ul></ul><ul><ul><li>Use configurations in SimpleDB to bootstrap instance </li></ul></ul>
  9. Security is Everywhere <ul><li>With AWS, physical security is free, network security is easy, and other security can be added </li></ul><ul><li>Building secure systems with AWS </li></ul><ul><ul><li>Create distinct Security Groups for each Amazon EC2 cluster </li></ul></ul><ul><ul><li>Use group-based rules for controlling access between layers </li></ul></ul><ul><ul><li>Restrict external access to specific IP ranges </li></ul></ul><ul><ul><li>Encrypt data stored in Amazon S3 </li></ul></ul><ul><ul><li>Encrypt all information transmitted across the wire </li></ul></ul><ul><ul><li>Consider encrypted file systems for sensitive data </li></ul></ul>
  10. Don’t Fear Constraints <ul><li>Architectural constraints can be broken </li></ul><ul><li>Having a flexible, on-demand pool of resources allows for different architectures that remove constraints </li></ul><ul><li>I need more than xxGB of RAM per instance </li></ul><ul><ul><li>Distribute load across multiple instances; use a shared distributed cache </li></ul></ul><ul><li>I need more than xxK IOPS on my database </li></ul><ul><ul><li>Run multiple read-only copies; sharding; database clustering software </li></ul></ul><ul><li>My current server specs are better than an Amazon EC2 instance </li></ul><ul><ul><li>Run more Amazon EC2 instances but only when you need them </li></ul></ul><ul><li>I need static IPs for my servers </li></ul><ul><ul><li>Boot scripts that re-configure software from configuration database </li></ul></ul>
  11. Leverage Many Storage Options <ul><li>Amazon S3 is optimized for storing large objects </li></ul><ul><ul><li>Store persistent data </li></ul></ul><ul><li>Amazon CloudFront for performance </li></ul><ul><ul><li>Push popular objects to 14 worldwide edge locations </li></ul></ul><ul><li>Amazon SimpleDB for speed, scale, and simplicity </li></ul><ul><ul><li>Store small bits of data that have no dependencies, such as metadata </li></ul></ul><ul><li>Amazon EC2 local disk space for transient data </li></ul><ul><li>Amazon EBS acts like a disk drive for persistent storage </li></ul><ul><ul><li>Store dynamic content or a traditional RDBMS </li></ul></ul><ul><ul><li>Use snapshots to S3 for backup </li></ul></ul>
  12. Diverse Use Cases <ul><li>Web Site Hosting </li></ul><ul><li>Application Hosting </li></ul><ul><li>Media Distribution </li></ul><ul><li>Storage, Backup, Disaster Recovery </li></ul><ul><li>Content Delivery </li></ul><ul><li>High-Performance Computing </li></ul><ul><li>Software Development and Testing </li></ul>
  13. Sample Architecture: Migrating Your Web Applications
  14. Web Application Design <ul><li>A typical web application could need: </li></ul><ul><ul><li>Compute power </li></ul></ul><ul><ul><li>Storage capacity for images, music, etc. </li></ul></ul><ul><ul><li>Content distribution </li></ul></ul><ul><ul><li>Database storage </li></ul></ul><ul><ul><li>Messaging between components </li></ul></ul><ul><ul><li>Payment options to enable e-commerce </li></ul></ul><ul><ul><li>Load balancing for optimal performance </li></ul></ul>
  15. Typical Web App Architecture Web Server / Presentation Layer Application Server / Business Logic Database Client Browser
  16. Web Application Design on AWS <ul><li>An AWS-based web application could use: </li></ul><ul><ul><li>Compute power ( Amazon EC2 ) </li></ul></ul><ul><ul><li>Storage capacity for images, music, etc. ( Amazon S3 ) </li></ul></ul><ul><ul><li>Content distribution ( Amazon CloudFront ) </li></ul></ul><ul><ul><li>Database storage ( Amazon EBS ) </li></ul></ul><ul><ul><li>Messaging btw. components ( Amazon SQS ) </li></ul></ul><ul><ul><li>Payment options to enable e-commerce ( Amazon FPS ) </li></ul></ul><ul><ul><li>Load balancing for optimal performance ( Amazon EC2 ) </li></ul></ul>
  17. Use Amazon S3 for Storage Store persistent files in Amazon S3 for lower costs, higher reliability Client Browser
  18. Use Amazon CloudFront Amazon CloudFront is a content delivery network that caches data stored in Amazon S3 across a worldwide network of edge locations: Seattle, Palo Alto, Los Angeles, St. Louis, Dallas, Ashburn, Newark, Miami, Amsterdam, Dublin, Frankfurt, London, Hong Kong, Tokyo Client Browser
  19. Use Amazon EC2 for Compute Configure Amazon EC2 running your choice of web server to handle all incoming web requests. Client Browser
  20. Use Amazon EC2 for Compute 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. Client Browser
  21. Use Amazon EBS for Database Configure an Amazon EBS device to host your existing relational database. Snapshots can be automatically backed up to Amazon S3. Client Browser
  22. Use Amazon SQS Amazon SQS makes it easy to coordinate between the web server and application servers. Client Browser SQS
  23. Use Amazon SimpleDB Amazon SimpleDB can be used to store metadata, logfiles, and other information for your site. SimpleDB Client Browser SQS
  24. Additional Features and Other Serivces <ul><li>New Features </li></ul><ul><ul><li>CloudWatch (monitoring), Elastic Load Balancing, and Auto Scaling services just launched </li></ul></ul><ul><ul><li>AWS Import/Export adds “sneaker net” to S3 </li></ul></ul><ul><li>Other Services </li></ul><ul><ul><li>Amazon Elastic MapReduce can be used to crunch and analyze large amounts of data </li></ul></ul><ul><ul><li>Amazon Flexible Payments Service can handle checkout pipelines and payment methods </li></ul></ul><ul><ul><li>Amazon Mechanical Turk can be used for tasks best suited for human intervention (e.g., image upload and content approval) </li></ul></ul>
  25. Amazon EC2 Tools <ul><li>AWS Management Console </li></ul><ul><li>AWS Toolkit for Eclipse: </li></ul><ul><ul><li>Eclipse Java IDE plug-in </li></ul></ul><ul><li>iPhone Apps: </li></ul><ul><ul><li>Manage EC2 from your iPhone with ec2Phone, ElasticPod or directEC2 </li></ul></ul><ul><li>ElasticFox: </li></ul><ul><ul><li>Mozilla Firefox extension </li></ul></ul>
  26. AWS Management Console
  27. Other Tools <ul><li>Managing Amazon S3 & Amazon CloudFront: </li></ul><ul><ul><li>S3Fox, CloudBerry Explorer, Manager for CloudFront </li></ul></ul><ul><li>Managing Amazon SimpleDB: </li></ul><ul><ul><li>AWSZone </li></ul></ul><ul><li>Managing Elastic MapReduce: </li></ul><ul><ul><li>AWS Management Console </li></ul></ul>
  28. In Conclusion <ul><li>Most Important Lesson From Our Customers: </li></ul><ul><ul><li>Start small with a well-defined proof of concept that will highlight the power of AWS </li></ul></ul><ul><ul><li>Build support in your organization </li></ul></ul><ul><ul><li>Once one application is launched others will follow… </li></ul></ul>
  29. Thank You