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.

Create cloud service on AWS

2,295 views

Published on

For people who start to create a cloud service, it’s really important to know how to create a scalable cloud service to fit the growth of the future workloads. In this session, we will introduce how to design a scalable cloud service including AWS services introduction and best practices.

Published in: Technology
  • Be the first to comment

Create cloud service on AWS

  1. 1. 雲端服務開發架構 概述 John Chang, Ecosystem Solutions Architect September 2016
  2. 2. Fintech Innovation
  3. 3. Agenda • Why architecture matters? • Pattern/Anti-pattern • Cloud reference architectures
  4. 4. A scalable architecture • Can support growth in users, traffic, data size • Without practical limits • Without a drop in performance • Seamlessly - just by adding more resources • Efficiently - in terms of cost per user
  5. 5. Day 1 – Dev & private beta
  6. 6. Single host THE server (e.g. Apache, MySQL) Elastic IP www.example.com Amazon Route 53 DNS service Server Image (AMI)
  7. 7. Day 2 - Public beta
  8. 8. We need a bigger server • Add larger & faster storage (EBS) • Use the right instance type • Easy to change instance sizes • Not our long term strategy • Will hit an endpoint eventually • No fault tolerance
  9. 9. Separating web and DB • More capacity • Scale each tier individually • Tailor instance for each tier – Instance type – Storage • Security – Security groups – DB in a private VPC subnet
  10. 10. But how do I choose what DB technology I need? SQL? NoSQL?
  11. 11. Why start with a Relational DB? • SQL is versatile & feature-rich • Lots of existing code, tools, knowledge • Clear patterns to scalability* • Reality: eventually you will have a polyglot data layer – There will be workloads where NoSQL is a better fit – Use the right tool for each workload * for read-heavy apps
  12. 12. Key Insight: Relational Databases are Complex • Our experience running Amazon.com taught us that relational databases can be a pain to manage and operate with high availability • Poorly managed relational databases are a leading cause of lost sleep and downtime in the IT world! • Especially for startups with small teams
  13. 13. Relational Databases MySQL, Aurora, PostgreSQL, Oracle, SQL Server Fully managed; zeroadmin Amazon RDS Aurora
  14. 14. Improving efficiency
  15. 15. Offload static content • Amazon S3: highly available hosting that scales – Static files (JavaScript, CSS, images) – User uploads • S3 URLs – serve directly from S3 • Let the web server focus on dynamic content
  16. 16. Amazon CloudFront • Worldwide network of edge locations • Cache on the edge – Reduce latency – Reduce load on origin servers – Static and dynamic content – Even few seconds caching of popular content can have huge impact • Connection optimizations – Optimize transfer route – Reuse connections – Benefits even non cachable content CloudFront
  17. 17. CloudFront for static & dynamic content Amazon Route 53 EC2 instance(s) S3 bucket Static content Dynamic content css/* js/* Images/* Default(*) CloudFront distribution
  18. 18. Database caching • Faster response from RAM • Reduce load on database Application server 1. If data in cache, return result 2. If not in cache, read from DB RDS database Amazon ElastiCache 3. And store in cache
  19. 19. Amazon ElastiCache: in-memory cache • Simple to Deploy • Managed – Automatically replaces failed nodes – Patch management • Elastic • Compatible ElastiCache
  20. 20. Day 3 – Paying customers
  21. 21. High Availability Availability Zone a RDS DB instance Web server S3 bucket for static assets www.example.com Amazon Route 53 DNS service Amazon CloudFront ElastiCache node 1
  22. 22. High Availability Availability Zone a RDS DB instance Availability Zone b Web server Web server S3 bucket for static assets www.example.com Amazon Route 53 DNS service Amazon CloudFront ElastiCache node 1
  23. 23. High Availability Availability Zone a RDS DB instance Availability Zone b www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server S3 bucket for static assets Amazon CloudFront ElastiCache node 1
  24. 24. Elastic Load Balancing • Managed Load Balancing Service • Fault tolerant • Health Checks • Distributes traffic across AZs • Elastic – automatically scales its capacity
  25. 25. High Availability Availability Zone a RDS DB instance Availability Zone b www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server S3 bucket for static assets ElastiCache node 1 Amazon CloudFront
  26. 26. High Availability Availability Zone a RDS DB instance Availability Zone b www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby S3 bucket for static assets ElastiCache node 1 Amazon CloudFront
  27. 27. Data layer HA Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby
  28. 28. Data layer HA Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2
  29. 29. User sessions • Problem: Often stored on local disk (not shared) • Quickfix: ELB Session stickiness • Solution: DynamoDB Elastic Load Balancing Web server Web server Logged in Logged out
  30. 30. Amazon DynamoDB • Managed document and key-value store • Simple to launch and scale • To millions of IOPS • Both reads and writes • Consistent, fast performance • Durable: perfect for storage of session data https://github.com/aws/aws-dynamodb-session-tomcat http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-dynamodb-session-handler.html
  31. 31. Day 4 – Let’s go!
  32. 32. Replace guesswork with elastic IT Startups pre-AWS Demand Unhappy Customers Waste $$$ Traditional Capacity Capacity Demand AWS Cloud
  33. 33. Scaling the web tier Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2
  34. 34. Scaling the web tier Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2 Web server Web server
  35. 35. Scaling the web tier Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2 Web server Web server
  36. 36. Automatic resizing of compute clusters based on demand Feature Details Control Define minimum and maximum instance pool sizes and when scaling and cool down occurs. Integrated to Amazon CloudWatch Use metrics gathered by CloudWatch to drive scaling. Instance types Run Auto Scaling for on-demand and Spot Instances. Compatible with VPC. aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyGroup --launch-configuration-name MyConfig --min-size 4 --max-size 200 --availability-zones us-west-2c, us-west-2b Auto Scaling Trigger auto-scaling policy Amazon CloudWatch
  37. 37. ” “ Sanlih E-Television Uses AWS to Support Online Strategy Sanlih E-Television is a nationwide cable TV network delivering some of the most popular TV channels in Taiwan. I estimate that we’ve saved 30% by selecting AWS over other cloud service providers. Andy Wang Chief Information Officer, Sanlih E-Television ” “ • Wanted to take advantage of online and streaming platforms to build on leading position in the market • Had to ensure IT infrastructure could handle demand and deliver content • Began running streaming service, website and mobile apps on AWS • Successfully integrated internet and mobile into channel mix • Saved time and money due to stability of AWS platform and competitive pricing of services
  38. 38. ” “ Netflix Delivers Billions of Hours of Content per Month Using AWS. Netflix is one of the world’s leading Internet television network with over 57 million members in nearly 50 countries. Our success with AWS can be attributed to the scalability, elasticity, and global availability of AWS services. Eva Tse Director, Big Data Platform , Netflix ” “ • Needed flexible IT infrastructure to experiment, analyze, and grow its business worldwide. • Using AWS to measure its users’ streaming experiences through its analytics platform. • Reports a reduction from weeks to seconds in testing time for new features. • Netflix operates a 10 PB data ‘warehouse’ on Amazon S3 comprised of hundreds of millions of objects. • Designed to deliver billions of hours of content monthly using tens of thousands of instances across three regions.
  39. 39. Decompose into small, loosely coupled, stateless building blocks Prerequisite
  40. 40. What does this mean in practice? • Only store transient data on local disk • Needs to persist beyond a single http request? – Then store it elsewhere User uploads User Sessions Amazon S3 AWS DynamoDB Application Data Amazon RDS
  41. 41. Having decomposed into small, loosely coupled, stateless building blocks You can now Scale out with ease Having done that…
  42. 42. Having decomposed into small, loosely coupled, stateless building blocks We can also Scale back with ease Having done that…
  43. 43. Take the shortcut • While this architecture is simple you still need to deal with: – Configuration details – Deploying code to multiple instances – Maintaining multiple environments (Dev, Test, Prod) – Maintain different versions of the application • Solution: Use AWS Elastic Beanstalk
  44. 44. AWS Elastic Beanstalk (EB) • Easily deploy, monitor, and scale three-tier web applications and services. • Infrastructure provisioned and managed by EB • You maintain control. • Preconfigured application containers • Easily customizable. • Support for these platforms:
  45. 45. Day 5 – Add more features
  46. 46. Mobile Push Notifications Mobile Analytics Cognito Cognito Sync Analytics Kinesis Data Pipeline RedShift EMR Your Applications AWS Global Infrastructure Network VPC Direct Connect Route 53 Storage EBS S3 Glacier CloudFront Database DynamoDBRDS ElastiCache Deployment & Management Elastic Beanstalk OpsWorks Cloud Formation Code Deploy Code Pipeline Code Commit Security & Administration CloudWatch Config Cloud Trail IAM Directory KMS Application SQS SWF App Stream Elastic Transcoder SES Cloud Search SNS Enterprise Applications WorkSpaces WorkMail WorkDocs Compute EC2 ELB Auto Scaling LambdaECS
  47. 47. AWS building blocks Inherently Scalable & Highly Available Scalable & Highly Available  Elastic Load Balancing  Amazon CloudFront  Amazon Route53  Amazon S3  Amazon SQS  Amazon SES  Amazon CloudSearch  AWS Lambda  …  Amazon DynamoDB  Amazon Redshift  Amazon RDS  Amazon Elasticache  …  Amazon EC2  Amazon VPC Automated Configurable With the right architecture
  48. 48. Stay focused as you scale your team AWS Cloud-Based Infrastructure Your Business More Time to Focus on Your Business Configuring Your Cloud Assets 70% 30%70% On-Premise Infrastructure 30% Managing All of the “Undifferentiated Heavy Lifting”
  49. 49. Summary
  50. 50. Amazon Route 53 DNS serviceNo limit Availability Zone a RDS DB instance ElastiCache node 2 Availability Zone b S3 bucket for static assets www.example.com Elastic Load Balancing RDS DB standby ElastiCache node 3 RDS read replica RDS read replica DynamoDB RDS read replica ElastiCache node 4 RDS read replica ElastiCache node 1 CloudSearchLambdaSES SQS
  51. 51. A quick review • Keep it simple and stateless • Make use of managed self-scaling services • Multi-AZ and AutoScale your EC2 infrastructure • Use the right DB for each workload • Cache data at multiple levels • Simplify operations with deployment tools
  52. 52. Next steps? READ! • aws.amazon.com/documentation • aws.amazon.com/architecture ASK FOR HELP! • forums.aws.amazon.com • aws.amazon.com/support
  53. 53. Q&A

×