• Save
Architectural Best Practices, Introduction to AWS, Cambridge
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,809
On Slideshare
1,809
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Architectural Best Practice Ianni Vamvadelis Solutions Architect
  • 2. ArchitecturalPatterns with AWS
  • 3. #1 Architecture Patterns#2 Example Designs#3 Automation
  • 4. Architecture Patterns
  • 5. Cloud Architecture Lessons using Amazon Web Services1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement “Elasticity”4. Build Security in every layer5. Dont fear constraints6. Think Parallel7. Leverage different storage options
  • 6. 1. Design for Failure …and nothing will really fail"Everything fails, all the time"Werner Vogels, CTO Amazon.comAvoid single points of failureAssume everything fails, and design backwardsGoal: Applications should continue to function even if theunderlying physical hardware fails or is removed or replaced.
  • 7. 1. Design for Failure AWS provides tools to make your life easierUse Elastic IP addresses, Route53Use multiple Amazon EC2 Availability Zones (AZs)Create database slaves across AZsUse monitoring and alertingUse persistent storageAutomate operational processes
  • 8. 2. Build Loosely Coupled Systems The looser theyre coupled, the bigger they scaleIndependent componentsDesign everything as a Black BoxDe-coupling for Hybrid modelsLoad-balance servicesAmazon SQS and SWF
  • 9. 3. Implement Elasticity Elasticity is a fundamental property of the Cloud Bootstrap your instances: “Who am I & what is my role?” Use designs that are resilient to reboot and re-launchUse Auto-scalingUse Elastic Load BalancingUse configurations in a durable store to bootstrap instance
  • 10. 4. Build Security in every layer Design with Security in mindCreate distinct Security Groups for each app tier/roleRestrict external access to IP rangesEncrypt data “at-rest” and “in-transit”Use Multi-Factor AuthenticationUse Amazon Virtual Private Cloud
  • 11. 5. Dont fear constraints Re-think architectural constraints More RAM? Distribute load across machines Shared distributed in-memory cacheBetter IOPS on my database?Multiple read-only / sharding / DBclustering / Non-relationalYour hardware failed or messed up config?simply throw it away and switch to newhardware with no additional cost Performance Caching at all levels (Data, Pages, Amazon CloudFront)
  • 12. 6. Think Parallel Horizontal scaling instead of vertical scaling…Use Elastic Load Balancing to distribute load across multiple serversExperiment with different architectures in parallelMulti-threading and Concurrent requests to cloud servicesRun parallel MapReduce Jobs
  • 13. 7. Leverage many storage options One size does not fit allAmazon S3: large static objectsAmazon Cloudfront: content distributionAmazon DynamoDB: simple querying, seemless scaleAmazon EC2 local disc drive : transient dataAmazon EBS: persistent storage + Snapshots on S3Amazon RDS: RDBMS service (MySQL, Oracle, MS SQL Server)
  • 14. Cloud Architecture Lessons Best Practices1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Dont fear constraints6. Think Parallel7. Leverage many storage options
  • 15. Example Designs
  • 16. Loosely CoupledAmazon Simple Queue Service
  • 17. Elasticity andMulti-AZ
  • 18. Autoscaling 3 Approaches to design MDEThree Services: Better Together Elastic Load Balancer Latency Utilization Auto Scaling CloudWatch Metrics
  • 19. US East Region (N. VA) EU West Region (Ireland) Japan Region (Tokyo)Availability Availability Availability Availability Zone A Zone B Zone A Zone B Availability Availability Zone A Zone BAvailability Availability Availability Zone C Zone D Zone C US West 1 Region (N. CA) APAC Region (Singapore) US West 2 Region (Oregon)Availability Availability Availability Availability Availability Availability Zone A Zone B Zone A Zone B Zone A Zone B
  • 20. Automation
  • 21. Automation EnablesProvisioning of Environments Recovery from Failure Schedule Big Data Analysis Scaling Out / In / Up /Down Create Touchless systems
  • 22. AWS CloudFormation Template-based provisioning service
  • 23. Example: Gallery
  • 24. API Summarydescribe <xyz> create update delete
  • 25. Command LineScript your IT infrastructure
  • 26. Examples EC2ec2-describe-instancesec2-run-instances -t m1.small -g demo -k useast_keypair ami-a29943cb EBSec2-create-volume –z eu-west-1a –s 100ec2-attach-volume vol-4bc54b23 –i i-f1ada197
  • 27. CodeControl AWS Resources
  • 28. http://aws.amazon.com/eclipse/
  • 29. ExamplesVisual Studio app
  • 30. Instance Metadata
  • 31. ExamplesCLI launch + User-Data
  • 32. How Can I Obtain Info about Myself from a Running Instance? http://169.254.169.254/latest/meta-dataami-id local-hostnameami-launch-index local-ipv4ami-manifest-path macblock-device-mapping/ network/hostname placement/instance-action profileinstance-id public-hostnameInstance-type public-ipv4kernel-id public-keys/ reservation-id
  • 33. Architecture Whitepapersaws.amazon.com/whitepapers
  • 34. Cloud Best Practices Whitepapers Prescriptive guidance to Architects aws.amazon.com/whitepapers © 2011 Amazon.com, Inc. and its affiliates. All rights reserved.
  • 35. Architecture Centeraws.amazon.com/architecture
  • 36. THANK YOUaws.amazon.com