SlideShare une entreprise Scribd logo
1  sur  38
 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

Contenu connexe

Tendances

AWS AWSome Day Roadshow
AWS AWSome Day RoadshowAWS AWSome Day Roadshow
AWS AWSome Day RoadshowIan Massingham
 
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.Amazon Web Services
 
AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...
AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...
AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...Amazon Web Services
 
Best Practices for Getting Started with AWS
Best Practices for Getting Started with AWSBest Practices for Getting Started with AWS
Best Practices for Getting Started with AWSAmazon Web Services
 
HSBC and AWS Day - AWS foundations
HSBC and AWS Day - AWS foundationsHSBC and AWS Day - AWS foundations
HSBC and AWS Day - AWS foundationsAmazon Web Services
 
SMC302 Building Serverless Web Applications
SMC302 Building Serverless Web ApplicationsSMC302 Building Serverless Web Applications
SMC302 Building Serverless Web ApplicationsAmazon Web Services
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapIan Massingham
 
Architetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
Architetture Serverless: concentrarsi sull'idea, non sull'infrastrutturaArchitetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
Architetture Serverless: concentrarsi sull'idea, non sull'infrastrutturaAmazon Web Services
 
Deploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS CloudDeploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS CloudAmazon Web Services
 
GOTO Stockholm - AWS Lambda - Logic in the cloud without a back-end
GOTO Stockholm - AWS Lambda - Logic in the cloud without a back-endGOTO Stockholm - AWS Lambda - Logic in the cloud without a back-end
GOTO Stockholm - AWS Lambda - Logic in the cloud without a back-endIan Massingham
 
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...Amazon Web Services
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesAmazon Web Services
 
AWS AWSome Day - Getting Started Best Practices
AWS AWSome Day - Getting Started Best PracticesAWS AWSome Day - Getting Started Best Practices
AWS AWSome Day - Getting Started Best PracticesIan Massingham
 
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioniContent Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioniAmazon Web Services
 
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAmazon Web Services
 
AWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed Raafat
AWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed RaafatAWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed Raafat
AWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed RaafatAWS Riyadh User Group
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and DockerKristana Kane
 
AWS June 2016 Webinar Series - AWS Quarterly Update
AWS June 2016 Webinar Series - AWS Quarterly Update AWS June 2016 Webinar Series - AWS Quarterly Update
AWS June 2016 Webinar Series - AWS Quarterly Update Amazon Web Services
 

Tendances (20)

AWS AWSome Day Roadshow
AWS AWSome Day RoadshowAWS AWSome Day Roadshow
AWS AWSome Day Roadshow
 
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
 
The Best of re:invent 2016
The Best of re:invent 2016The Best of re:invent 2016
The Best of re:invent 2016
 
AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...
AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...
AWS re:Invent 2016: Workshop: Building Your First Big Data Application with A...
 
Best Practices for Getting Started with AWS
Best Practices for Getting Started with AWSBest Practices for Getting Started with AWS
Best Practices for Getting Started with AWS
 
HSBC and AWS Day - AWS foundations
HSBC and AWS Day - AWS foundationsHSBC and AWS Day - AWS foundations
HSBC and AWS Day - AWS foundations
 
SMC302 Building Serverless Web Applications
SMC302 Building Serverless Web ApplicationsSMC302 Building Serverless Web Applications
SMC302 Building Serverless Web Applications
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:Cap
 
Architetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
Architetture Serverless: concentrarsi sull'idea, non sull'infrastrutturaArchitetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
Architetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
 
Deploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS CloudDeploying Java Applications in the AWS Cloud
Deploying Java Applications in the AWS Cloud
 
GOTO Stockholm - AWS Lambda - Logic in the cloud without a back-end
GOTO Stockholm - AWS Lambda - Logic in the cloud without a back-endGOTO Stockholm - AWS Lambda - Logic in the cloud without a back-end
GOTO Stockholm - AWS Lambda - Logic in the cloud without a back-end
 
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
 
AWSome Day | Tech Track
AWSome Day | Tech TrackAWSome Day | Tech Track
AWSome Day | Tech Track
 
AWS AWSome Day - Getting Started Best Practices
AWS AWSome Day - Getting Started Best PracticesAWS AWSome Day - Getting Started Best Practices
AWS AWSome Day - Getting Started Best Practices
 
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioniContent Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
 
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
 
AWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed Raafat
AWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed RaafatAWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed Raafat
AWS reinvent 2019 recap - Riyadh - AI And ML - Ahmed Raafat
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and Docker
 
AWS June 2016 Webinar Series - AWS Quarterly Update
AWS June 2016 Webinar Series - AWS Quarterly Update AWS June 2016 Webinar Series - AWS Quarterly Update
AWS June 2016 Webinar Series - AWS Quarterly Update
 

Similaire à Architecting Cloud Apps

AWS Webcast - Best Practices in Architecting for the Cloud
AWS Webcast - Best Practices in Architecting for the CloudAWS Webcast - Best Practices in Architecting for the Cloud
AWS Webcast - Best Practices in Architecting for the CloudAmazon Web Services
 
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAmazon Web Services
 
Architecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesArchitecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesAmazon Web Services
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloudnwcloud
 
Best Practices for Protecting Cloud Workloads - November 2016 Webinar Series
Best Practices for Protecting Cloud Workloads - November 2016 Webinar SeriesBest Practices for Protecting Cloud Workloads - November 2016 Webinar Series
Best Practices for Protecting Cloud Workloads - November 2016 Webinar SeriesAmazon Web Services
 
AWS 101, London - September 2014
AWS 101, London - September 2014AWS 101, London - September 2014
AWS 101, London - September 2014Ian Massingham
 
Cloud computing-Practical Example
Cloud computing-Practical ExampleCloud computing-Practical Example
Cloud computing-Practical ExampleTasawar Gulzar
 
AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014
AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014
AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014Amazon Web Services
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudVladimir Ilic
 
Your First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS CloudYour First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS CloudAmazon Web Services
 
Architecting Enterprise Applications In The Cloud
Architecting Enterprise Applications In The CloudArchitecting Enterprise Applications In The Cloud
Architecting Enterprise Applications In The CloudAmazon Web Services
 
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...Amazon Web Services
 
The IoT Academy_awstraining_part2_aws_ec2_iaas
The IoT Academy_awstraining_part2_aws_ec2_iaasThe IoT Academy_awstraining_part2_aws_ec2_iaas
The IoT Academy_awstraining_part2_aws_ec2_iaasThe IOT Academy
 
AWS Webcast - What is Cloud Computing?
AWS Webcast - What is Cloud Computing?AWS Webcast - What is Cloud Computing?
AWS Webcast - What is Cloud Computing?Amazon Web Services
 

Similaire à Architecting Cloud Apps (20)

AMAZON CLOUD Course Content
AMAZON CLOUD Course ContentAMAZON CLOUD Course Content
AMAZON CLOUD Course Content
 
AWS Webcast - Best Practices in Architecting for the Cloud
AWS Webcast - Best Practices in Architecting for the CloudAWS Webcast - Best Practices in Architecting for the Cloud
AWS Webcast - Best Practices in Architecting for the Cloud
 
AWS Architecting In The Cloud
AWS Architecting In The CloudAWS Architecting In The Cloud
AWS Architecting In The Cloud
 
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
 
Architecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesArchitecting for the Cloud: Best Practices
Architecting for the Cloud: Best Practices
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
 
Aws coi7
Aws coi7Aws coi7
Aws coi7
 
Best Practices for Protecting Cloud Workloads - November 2016 Webinar Series
Best Practices for Protecting Cloud Workloads - November 2016 Webinar SeriesBest Practices for Protecting Cloud Workloads - November 2016 Webinar Series
Best Practices for Protecting Cloud Workloads - November 2016 Webinar Series
 
Aws
AwsAws
Aws
 
AWS 101, London - September 2014
AWS 101, London - September 2014AWS 101, London - September 2014
AWS 101, London - September 2014
 
Building Enterprise Cloud Apps
Building Enterprise Cloud AppsBuilding Enterprise Cloud Apps
Building Enterprise Cloud Apps
 
Cloud computing-Practical Example
Cloud computing-Practical ExampleCloud computing-Practical Example
Cloud computing-Practical Example
 
AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014
AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014
AWS Cloud Kata 2014 | Jakarta - 2-1 AWS Intro and Scale 2014
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloud
 
Your First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS CloudYour First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS Cloud
 
Architecting Enterprise Applications In The Cloud
Architecting Enterprise Applications In The CloudArchitecting Enterprise Applications In The Cloud
Architecting Enterprise Applications In The Cloud
 
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
 
The IoT Academy_awstraining_part2_aws_ec2_iaas
The IoT Academy_awstraining_part2_aws_ec2_iaasThe IoT Academy_awstraining_part2_aws_ec2_iaas
The IoT Academy_awstraining_part2_aws_ec2_iaas
 
AWS Webcast - What is Cloud Computing?
AWS Webcast - What is Cloud Computing?AWS Webcast - What is Cloud Computing?
AWS Webcast - What is Cloud Computing?
 
AWS 101 December 2014
AWS 101 December 2014AWS 101 December 2014
AWS 101 December 2014
 

Architecting Cloud Apps

  • 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

Notes de l'éditeur

  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.