Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
 Jinesh Varia           Technology Evangelist         jvaria@amazon.comArchitectingfor the AWS CloudTwitter: @jinman
Cloud Computing AttributesWhat makes the Cloud so attractiveAbstract ResourcesFocus on your needs, not on hardware specs. As your needs change, so should your resources.On-Demand ProvisioningAsk for what you need, exactly when you need it.  Get rid of it when you don’t needScalabilityScale out or in depending on usage needs.No Up-Front CostsNo contracts or long-term commitments.Pay only for what you use.Efficiency of ExpertsUtilize the skills, knowledge and resources of experts.
The CloudThe “Living and Evolving” CloudAWS services and featuresMost Applications Need:ComputeStorageMessagingPaymentDistributionScaleAnalyticsYour ApplicationAmazon CloudFrontAmazon SQS QueuesAmazonSimpleDB DomainsPayment : Amazon FPS/ DevPayAmazon Elastic MapReduceJobFlowsAmazon S3 Objects and BucketsAuto-ScalingLBCloudWatchAmazon EC2 Instances(On-Demand, Reserved)EBSVolumesSnapshotsAmazon Virtual Private CloudAmazon WorldWidePhysical Infrastructure (Geographical Regions, Availability Zones, Edge Locations))
Amazon S3CustomerrunInstance() Amazon EC2Amazon Elastic Compute CloudResizable compute capacity in the cloudObtain and boot new server instances in minutesQuickly scale capacity, up or down, using Web Services InterfaceHosted VirtualizationFull root-level access to the virtualized server instance
Amazon EC2WebSphereHibernateJavaLinuxAmazonMachineImageRubyRailsMySQLFedora-6AmazonMachineImagePHPApachePerlPostgressLinux-UbuntuAmazonMachineImageAvailable in US and EUNew Terms and FeaturesAmazon Machine ImagesInstancesSecurity GroupsElastic IP AddressesAvailability ZonesInstance Types (M1, C1)Elastic Block Store and SnapshotsPublic DataSetsPlatformsWindows, Open Solaris, Linux (Fedora, Debian, Ubuntu, Centos …..)AMIs : 1500+Amazon S3AMIAMIAMIAmazon EC25
EC2 API OverviewCreateVolume –Create an EBS volume of any size (1 GB to 1 TB).Images:RegisterImageDescribeImagesDeregisterImageModifyImageAttributeDescribeImageAttributeResetImageAttributeInstances:RunInstancesDescribeInstancesTerminateInstancesGetConsoleOutputRebootInstancesIP Addresses:AllocateAddressReleaseAddressAssociateAddressDisassociateAddressDescribeAddressesKeypairs:CreateKeyPairDescribeKeyPairsDeleteKeyPairSecurity Groups:CreateSecurityGroupDescribeSecurityGroupsDeleteSecurityGroupAuthorizeSecurityGroupIngressRevokeSecurityGroupIngressBlock Storage Volumes:CreateVolumeDeleteVolumeDescribeVolumesAttachVolumeDetachVolumeCreateSnapshotDescribeSnapshotsDeleteSnapshotAttachVolume –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.
ElasticFoxEnter 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.
ScalabilityBuild Scalable Architecture on AWSA scalable architecture is critical to take advantage of a scalable infrastructureCharacteristics of Truly Scalable ServiceIncreasing resources results in a proportional increase in performanceA scalable service is capable of handling heterogeneityA scalable service is operationally efficientA scalable service is resilientA scalable service becomes more cost effective when it grows
Cloud Architecture Lessonsusing Amazon Web Services1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement “Elasticity”4. Build Security in every layer5. Don't fear constraints6. Leverage AWS storage options
1. Design for Failureand nothing will really fail"Everything fails, all the time"Werner Vogels, CTO Amazon.comAvoid single points of failureAssume everything fails, and design backwards
Design for Failure with AWSTools to make your life easierUse Elastic IP addresses for consistent and re-mappable routesUse multiple Amazon EC2 Availability Zones (AZs)Create multiple database slaves across AZsUse real-time monitoring (Amazon CloudWatch)Use Amazon Elastic Block Store (EBS) for persistent file systems
YourWebTwoDotZeroName.comEC2 Instance AEC2 Instance BMASTERSLAVEMASTERReplicationLOG VolumeDATA VolumeDATA Volume
YourWebTwoDotZeroName.comAvailability Zone 2EC2 Instance BEC2 Instance AAvailability Zone 1MASTERSLAVEMASTERReplicationDATA VolumeDATA VolumeLOG VolumeLOG VolumeAmazon S3
2. Build Loosely Coupled SystemsThe looser they're coupled, the bigger they scaleIndependent componentsDesign everything as a Black BoxDe-couplingfor Hybrid modelsLoad-balance clustersUse Amazon SQS as BuffersTight CouplingController AController BController CQQQLoose Coupling using QueuesController AController BController C
3. Implement ElasticityElasticity is fundamental property of the CloudDon’t assume healthor fixed location of componentsUse designs that are resilient to reboot and re-launchBootstrapyour instancesEnable dynamic configurationUse Auto-scaling (Free)Use Elastic Load Balancing on multiple layersUse configurations in SimpleDB to bootstrap instance
4. Build Security in every layerSecurity is everywherePhysical is freeNetwork is easyThe rest can be addedCreate distinct Security Groups for each Amazon EC2 clusterUse group-based rules for controlling access between layersRestrict external access to specific IP rangesEncrypt data “at-rest” in Amazon S3Encrypt data “in-transit” (SSL)Consider encrypted file systems in EC2 for sensitive dataRotate your AWS Credentials, Pass in as arguments encrypted Use MultiFactor Authentication
Architecting Cloud Apps
5. Don't fear constraintsRe-think architectural constraintsMore RAM? Distribute load across machinesShared distributed cacheBetter IOPS on my database? Multiple read-only / sharding / DB clusteringYour server has better config? Implement elasticityStatic IP?Boot script for software reconfiguration from SimpleDB
6. Leverage many storage optionsWhich storage option to use when?Amazon S3: large static objectsAmazon Cloudfront: content distributionAmazon SimpleDB: simple data indexing/queryingAmazon EC2 local disc drive : transient dataAmazon EBS: RDBMS persistent storage + Snapshots on S3
Cloud Architecture LessonsBest Practices1. Design for failure and nothing fails2. Loose coupling sets you free3. Design for dynamism4. Build Security in every layer5. Don't fear constraints6. Leverage many storage options
AWS community and EcosystemFind help, guidance, assistance when you need itAWS EcosystemAWS Community
Migratinga Web Applicationto AWSPhoto: La Pedrera - Casa Milà, Barcelona  -  Antonio Gaudi
Migrating your Web ApplicationStep by Step towards AWSA typical Web App needs:Compute PowerStorage capacityContent DistributionDatabase storageMessagingLoad balancingMonitoring
Migrating your Web Application - 1/8Typical Web App ArchitectureDatabaseApplication Server /Business LogicWeb Server /Presentation LayerClient Browser
Migrating your Web Application - 2/8Amazon S3 for StorageStore persistent files in Amazon S3 for lower costs, higher reliabilityClient Browser
Migrating your Web Application - 3/8Use Amazon CloudFrontAmazon CloudFront for distributionAmazon CloudFrontis a content delivery network that caches data stored in Amazon S3 across a network of 14 edge locations around the worldClient Browser
Migrating your Web Application - 4/8Amazon EC2 for your choice of web serversConfigure Amazon EC2 running your choice of web server to handle all incoming web requests.Client Browser
Migrating your Web Application - 4/8Scale out App servers on Amazon EC2Configure 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 serviceClient Browser
Migrating your Web Application - 5/8Use Amazon EBS for DatabaseEBS for Persistent Storage and S3 for SnapshotsConfigure 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/8Use Amazon SQSAmazon SQS for queuing requestsSQSAmazon SQS makes it easy to coordinate between the web server and application servers.Client Browser
Migrating your Web Application - 7/8Use Amazon SimpleDBAmazon SimpleDB for log files, metadataSimpleDBSQSAmazon SimpleDBcan be used to store metadata, logfiles, and other information for your site.Client Browser
Migrating your Web Application - 8/8Use Amazon SimpleDBMonitor your Amazon EC2 instances using CloudWatchSimpleDBSQSAmazon CloudWatch to monitoring your Amazon EC2 instancesClient Browser
Migrating your Web ApplicationStep by Step towards AWSA typical Web App needs:With AWS:Compute PowerStorage capacityContent DistributionDatabase storageMessagingLoad balancingMonitoringAmazon EC2Amazon S3Amazon CloudFrontAmazon EBSAmazon SQSAmazon EC2Amazon CloudWatch
Other ServicesWait, there’s more…Amazon Flexible Payments ServicePCI-compliant Payment infrastructure built from the ground up for DevelopersAmazon Mechanical TurkA Flexible, Scalable Workforce with a programmatic interface (400K People in 100 Countries)Amazon Elastic MapReduceHosted Hadoop Framework on Amazon EC2 and Amazon S3 to crunch large amounts of data AWS Import/ExportFor uploading large datasets to Amazon S3, Ship us your hard drives - “sneaker net” to Amazon S3
Amazon Web Services toolsThings you needWeb : AWS Management ConsoleIDE : AWS Toolkit for EclipseTools : iPhoneAppsCloudBerryExplorerAWSZoneFirefox Plugins : ElasticFox, S3Fox, SDB ToolSeveral libraries
ConclusionsMost Important Lesson From Our Customers:Start small with a well-defined proof of concept that will highlight the power of AWSBuild support in your organizationOnce 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

More Related Content

Architecting Cloud Apps

  • 1. Jinesh Varia Technology Evangelist jvaria@amazon.comArchitectingfor the AWS CloudTwitter: @jinman
  • 2. Cloud Computing AttributesWhat makes the Cloud so attractiveAbstract ResourcesFocus on your needs, not on hardware specs. As your needs change, so should your resources.On-Demand ProvisioningAsk for what you need, exactly when you need it. Get rid of it when you don’t needScalabilityScale out or in depending on usage needs.No Up-Front CostsNo contracts or long-term commitments.Pay only for what you use.Efficiency of ExpertsUtilize the skills, knowledge and resources of experts.
  • 3. The CloudThe “Living and Evolving” CloudAWS services and featuresMost Applications Need:ComputeStorageMessagingPaymentDistributionScaleAnalyticsYour ApplicationAmazon CloudFrontAmazon SQS QueuesAmazonSimpleDB DomainsPayment : Amazon FPS/ DevPayAmazon Elastic MapReduceJobFlowsAmazon S3 Objects and BucketsAuto-ScalingLBCloudWatchAmazon EC2 Instances(On-Demand, Reserved)EBSVolumesSnapshotsAmazon Virtual Private CloudAmazon WorldWidePhysical Infrastructure (Geographical Regions, Availability Zones, Edge Locations))
  • 4. Amazon S3CustomerrunInstance() Amazon EC2Amazon Elastic Compute CloudResizable compute capacity in the cloudObtain and boot new server instances in minutesQuickly scale capacity, up or down, using Web Services InterfaceHosted VirtualizationFull root-level access to the virtualized server instance
  • 5. Amazon EC2WebSphereHibernateJavaLinuxAmazonMachineImageRubyRailsMySQLFedora-6AmazonMachineImagePHPApachePerlPostgressLinux-UbuntuAmazonMachineImageAvailable in US and EUNew Terms and FeaturesAmazon Machine ImagesInstancesSecurity GroupsElastic IP AddressesAvailability ZonesInstance Types (M1, C1)Elastic Block Store and SnapshotsPublic DataSetsPlatformsWindows, Open Solaris, Linux (Fedora, Debian, Ubuntu, Centos …..)AMIs : 1500+Amazon S3AMIAMIAMIAmazon EC25
  • 6. EC2 API OverviewCreateVolume –Create an EBS volume of any size (1 GB to 1 TB).Images:RegisterImageDescribeImagesDeregisterImageModifyImageAttributeDescribeImageAttributeResetImageAttributeInstances:RunInstancesDescribeInstancesTerminateInstancesGetConsoleOutputRebootInstancesIP Addresses:AllocateAddressReleaseAddressAssociateAddressDisassociateAddressDescribeAddressesKeypairs:CreateKeyPairDescribeKeyPairsDeleteKeyPairSecurity Groups:CreateSecurityGroupDescribeSecurityGroupsDeleteSecurityGroupAuthorizeSecurityGroupIngressRevokeSecurityGroupIngressBlock Storage Volumes:CreateVolumeDeleteVolumeDescribeVolumesAttachVolumeDetachVolumeCreateSnapshotDescribeSnapshotsDeleteSnapshotAttachVolume –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. ElasticFoxEnter 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. ScalabilityBuild Scalable Architecture on AWSA scalable architecture is critical to take advantage of a scalable infrastructureCharacteristics of Truly Scalable ServiceIncreasing resources results in a proportional increase in performanceA scalable service is capable of handling heterogeneityA scalable service is operationally efficientA scalable service is resilientA scalable service becomes more cost effective when it grows
  • 9. Cloud Architecture Lessonsusing Amazon Web Services1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement “Elasticity”4. Build Security in every layer5. Don't fear constraints6. Leverage AWS storage options
  • 10. 1. Design for Failureand nothing will really fail"Everything fails, all the time"Werner Vogels, CTO Amazon.comAvoid single points of failureAssume everything fails, and design backwards
  • 11. Design for Failure with AWSTools to make your life easierUse Elastic IP addresses for consistent and re-mappable routesUse multiple Amazon EC2 Availability Zones (AZs)Create multiple database slaves across AZsUse real-time monitoring (Amazon CloudWatch)Use Amazon Elastic Block Store (EBS) for persistent file systems
  • 12. YourWebTwoDotZeroName.comEC2 Instance AEC2 Instance BMASTERSLAVEMASTERReplicationLOG VolumeDATA VolumeDATA Volume
  • 13. YourWebTwoDotZeroName.comAvailability Zone 2EC2 Instance BEC2 Instance AAvailability Zone 1MASTERSLAVEMASTERReplicationDATA VolumeDATA VolumeLOG VolumeLOG VolumeAmazon S3
  • 14. 2. Build Loosely Coupled SystemsThe looser they're coupled, the bigger they scaleIndependent componentsDesign everything as a Black BoxDe-couplingfor Hybrid modelsLoad-balance clustersUse Amazon SQS as BuffersTight CouplingController AController BController CQQQLoose Coupling using QueuesController AController BController C
  • 15. 3. Implement ElasticityElasticity is fundamental property of the CloudDon’t assume healthor fixed location of componentsUse designs that are resilient to reboot and re-launchBootstrapyour instancesEnable dynamic configurationUse Auto-scaling (Free)Use Elastic Load Balancing on multiple layersUse configurations in SimpleDB to bootstrap instance
  • 16. 4. Build Security in every layerSecurity is everywherePhysical is freeNetwork is easyThe rest can be addedCreate distinct Security Groups for each Amazon EC2 clusterUse group-based rules for controlling access between layersRestrict external access to specific IP rangesEncrypt data “at-rest” in Amazon S3Encrypt data “in-transit” (SSL)Consider encrypted file systems in EC2 for sensitive dataRotate your AWS Credentials, Pass in as arguments encrypted Use MultiFactor Authentication
  • 18. 5. Don't fear constraintsRe-think architectural constraintsMore RAM? Distribute load across machinesShared distributed cacheBetter IOPS on my database? Multiple read-only / sharding / DB clusteringYour server has better config? Implement elasticityStatic IP?Boot script for software reconfiguration from SimpleDB
  • 19. 6. Leverage many storage optionsWhich storage option to use when?Amazon S3: large static objectsAmazon Cloudfront: content distributionAmazon SimpleDB: simple data indexing/queryingAmazon EC2 local disc drive : transient dataAmazon EBS: RDBMS persistent storage + Snapshots on S3
  • 20. Cloud Architecture LessonsBest Practices1. Design for failure and nothing fails2. Loose coupling sets you free3. Design for dynamism4. Build Security in every layer5. Don't fear constraints6. Leverage many storage options
  • 21. AWS community and EcosystemFind help, guidance, assistance when you need itAWS EcosystemAWS Community
  • 22. Migratinga Web Applicationto AWSPhoto: La Pedrera - Casa Milà, Barcelona - Antonio Gaudi
  • 23. Migrating your Web ApplicationStep by Step towards AWSA typical Web App needs:Compute PowerStorage capacityContent DistributionDatabase storageMessagingLoad balancingMonitoring
  • 24. Migrating your Web Application - 1/8Typical Web App ArchitectureDatabaseApplication Server /Business LogicWeb Server /Presentation LayerClient Browser
  • 25. Migrating your Web Application - 2/8Amazon S3 for StorageStore persistent files in Amazon S3 for lower costs, higher reliabilityClient Browser
  • 26. Migrating your Web Application - 3/8Use Amazon CloudFrontAmazon CloudFront for distributionAmazon CloudFrontis a content delivery network that caches data stored in Amazon S3 across a network of 14 edge locations around the worldClient Browser
  • 27. Migrating your Web Application - 4/8Amazon EC2 for your choice of web serversConfigure Amazon EC2 running your choice of web server to handle all incoming web requests.Client Browser
  • 28. Migrating your Web Application - 4/8Scale out App servers on Amazon EC2Configure 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 serviceClient Browser
  • 29. Migrating your Web Application - 5/8Use Amazon EBS for DatabaseEBS for Persistent Storage and S3 for SnapshotsConfigure 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/8Use Amazon SQSAmazon SQS for queuing requestsSQSAmazon SQS makes it easy to coordinate between the web server and application servers.Client Browser
  • 31. Migrating your Web Application - 7/8Use Amazon SimpleDBAmazon SimpleDB for log files, metadataSimpleDBSQSAmazon SimpleDBcan be used to store metadata, logfiles, and other information for your site.Client Browser
  • 32. Migrating your Web Application - 8/8Use Amazon SimpleDBMonitor your Amazon EC2 instances using CloudWatchSimpleDBSQSAmazon CloudWatch to monitoring your Amazon EC2 instancesClient Browser
  • 33. Migrating your Web ApplicationStep by Step towards AWSA typical Web App needs:With AWS:Compute PowerStorage capacityContent DistributionDatabase storageMessagingLoad balancingMonitoringAmazon EC2Amazon S3Amazon CloudFrontAmazon EBSAmazon SQSAmazon EC2Amazon CloudWatch
  • 34. Other ServicesWait, there’s more…Amazon Flexible Payments ServicePCI-compliant Payment infrastructure built from the ground up for DevelopersAmazon Mechanical TurkA Flexible, Scalable Workforce with a programmatic interface (400K People in 100 Countries)Amazon Elastic MapReduceHosted Hadoop Framework on Amazon EC2 and Amazon S3 to crunch large amounts of data AWS Import/ExportFor uploading large datasets to Amazon S3, Ship us your hard drives - “sneaker net” to Amazon S3
  • 35. Amazon Web Services toolsThings you needWeb : AWS Management ConsoleIDE : AWS Toolkit for EclipseTools : iPhoneAppsCloudBerryExplorerAWSZoneFirefox Plugins : ElasticFox, S3Fox, SDB ToolSeveral libraries
  • 36. ConclusionsMost Important Lesson From Our Customers:Start small with a well-defined proof of concept that will highlight the power of AWSBuild support in your organizationOnce one application is launched others will follow…Photo: Grand Canyon Hopi Point SunSet

Editor's Notes

  1. Explain each service features and details here
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.