Best Practices for Building Multi-Region, Active- Active Serverless Applications

Total Page:16

File Type:pdf, Size:1020Kb

Best Practices for Building Multi-Region, Active- Active Serverless Applications S V S 3 3 7 - R Best practices for building multi-region, active- active serverless applications Adrian Hornsby Principal Evangelist Amazon Web Services © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why build a global architecture? Once upon a time … Origin And now . Origin ~300 ms Improve latency for end users Origin Origin Improve availability and disaster recovery Service 1 Service 1 Service 2 Applications in Applications in Service 2 US West US East Service 3 Service 3 Service 4 Service 4 Users from Users from San Francisco New York Amazon global network Cross-region VPC peering Origin Origin Amazon S3 cross-region replication Bucket with Bucket with objects objects Amazon DynamoDB global table https://aws.amazon.com/blogs/aws/new-convert-your-single-region-amazon-dynamodb-tables-to-global-tables/ Active-Active | Active-Passive | What to do? Serverless cost model is a huge advantage here! © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Route 53 > Amazon API Gateway > AWS Lambda > Amazon DynamoDB © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Region Amazon API Gateway AWS Lambda Amazon DynamoDB Region us-east-1 Global Table Amazon Route 53 Region https://global.adhorn.me Amazon API Gateway AWS Lambda Amazon DynamoDB Region us-west-2 Multi-region with Route 53 Amazon Route 53 Latency-based routing Amazon Route 53 Region Region Application Application Geo-based routing Amazon Route 53 Region Region Application Application Weighted round-robin routing Amazon Route 53 Region Region Application Application DNS failover Amazon Route 53 Region Region Application Application Region Amazon DynamoDB Region us-east-1 Global Table Region Amazon DynamoDB Region us-west-2 Region AWS Lambda Amazon DynamoDB Region us-east-1 Global Table Region AWS Lambda Amazon DynamoDB Region us-west-2 API Gateway Region Custom Domain Name Regional API Endpoint Amazon API Gateway AWS Lambda https://globalddb.adhorn.me Region Amazon Route 53 Custom Domain Name Regional API Endpoint Amazon API Gateway AWS Lambda Route 53: Traffic policy Health checks with Route 53 Voilà! Region Amazon API Gateway AWS Lambda Amazon DynamoDB Region us-east-1 Global Table Amazon Route 53 Region https://global.adhorn.me Amazon API Gateway AWS Lambda Amazon DynamoDB Region us-west-2 AWS Global Accelerator > Application Load Balancer > Lambda > DynamoDB © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Region Application Load Balancer AWS Lambda Amazon DynamoDB Region eu-central-1 Global Table AWS Global Accelerator Region Application Load Balancer AWS Lambda Amazon DynamoDB Region us-west-2 AWS Global Accelerator Region Amazon DynamoDB Region eu-central-1 Global Table Region Amazon DynamoDB Region us-west-2 Region AWS Lambda Amazon DynamoDB Region eu-central-1 Global Table Region AWS Lambda Amazon DynamoDB Region us-west-2 Region Application Load Balancer AWS Lambda Amazon DynamoDB Region eu-central-1 Global Table Region Application Load Balancer AWS Lambda Amazon DynamoDB Region us-west-2 Voilà! Region Application Load Balancer AWS Lambda Amazon DynamoDB Region eu-central-1 Global Table AWS Global Accelerator Region Application Load Balancer AWS Lambda Amazon DynamoDB Region us-west-2 © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. https://medium.com/@adhorn Learn serverless with AWS Training and Certification Resources created by the experts at AWS to help you learn modern application development Free, on-demand courses on serverless, including Deep Dive: Lambda@Edge and Deep Dive on AWS Fargate Additional digital and classroom trainings cover modern application development and computing Visit the Learning Library at https://aws.training © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you! Adrian Hornsby [email protected] © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved..
Recommended publications
  • Amazon Dynamodb
    Dynamo Amazon DynamoDB Nicolas Travers Inspiré de Advait Deo Vertigo N. Travers ESILV : Dynamo Amazon DynamoDB – What is it ? • Fully managed nosql database service on AWS • Data model in the form of tables • Data stored in the form of items (name – value attributes) • Automatic scaling ▫ Provisioned throughput ▫ Storage scaling ▫ Distributed architecture • Easy Administration • Monitoring of tables using CloudWatch • Integration with EMR (Elastic MapReduce) ▫ Analyze data and store in S3 Vertigo N. Travers ESILV : Dynamo Amazon DynamoDB – What is it ? key=value key=value key=value key=value Table Item (64KB max) Attributes • Primary key (mandatory for every table) ▫ Hash or Hash + Range • Data model in the form of tables • Data stored in the form of items (name – value attributes) • Secondary Indexes for improved performance ▫ Local secondary index ▫ Global secondary index • Scalar data type (number, string etc) or multi-valued data type (sets) Vertigo N. Travers ESILV : Dynamo DynamoDB Architecture • True distributed architecture • Data is spread across hundreds of servers called storage nodes • Hundreds of servers form a cluster in the form of a “ring” • Client application can connect using one of the two approaches ▫ Routing using a load balancer ▫ Client-library that reflects Dynamo’s partitioning scheme and can determine the storage host to connect • Advantage of load balancer – no need for dynamo specific code in client application • Advantage of client-library – saves 1 network hop to load balancer • Synchronous replication is not achievable for high availability and scalability requirement at amazon • DynamoDB is designed to be “always writable” storage solution • Allows multiple versions of data on multiple storage nodes • Conflict resolution happens while reads and NOT during writes ▫ Syntactic conflict resolution ▫ Symantec conflict resolution Vertigo N.
    [Show full text]
  • Performance at Scale with Amazon Elasticache
    Performance at Scale with Amazon ElastiCache July 2019 Notices Customers are responsible for making their own independent assessment of the information in this document. This document: (a) is for informational purposes only, (b) represents current AWS product offerings and practices, which are subject to change without notice, and (c) does not create any commitments or assurances from AWS and its affiliates, suppliers or licensors. AWS products or services are provided “as is” without warranties, representations, or conditions of any kind, whether express or implied. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers. © 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved. Contents Introduction .......................................................................................................................... 1 ElastiCache Overview ......................................................................................................... 2 Alternatives to ElastiCache ................................................................................................. 2 Memcached vs. Redis ......................................................................................................... 3 ElastiCache for Memcached ............................................................................................... 5 Architecture with ElastiCache for Memcached ...............................................................
    [Show full text]
  • Amazon Documentdb Deep Dive
    DAT326 Amazon DocumentDB deep dive Joseph Idziorek Antra Grover Principal Product Manager Software Development Engineer Amazon Web Services Fulfillment By Amazon © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda What is the purpose of a document database? What customer problems does Amazon DocumentDB (with MongoDB compatibility) solve and how? Customer use case and learnings: Fulfillment by Amazon What did we deliver for customers this year? What’s next? © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Purpose-built databases Relational Key value Document In-memory Graph Search Time series Ledger Why document databases? Denormalized data Normalized data model model { 'name': 'Bat City Gelato', 'price': '$', 'rating': 5.0, 'review_count': 46, 'categories': ['gelato', 'ice cream'], 'location': { 'address': '6301 W Parmer Ln', 'city': 'Austin', 'country': 'US', 'state': 'TX', 'zip_code': '78729'} } Why document databases? GET https://api.yelp.com/v3/businesses/{id} { 'name': 'Bat City Gelato', 'price': '$', 'rating': 5.0, 'review_count': 46, 'categories': ['gelato', 'ice cream'], 'location': { 'address': '6301 W Parmer Ln', 'city': 'Austin', 'country': 'US', 'state': 'TX', 'zip_code': '78729'} } Why document databases? response = yelp_api.search_query(term='ice cream', location='austin, tx', sort_by='rating', limit=5) Why document databases? for i in response['businesses']: col.insert_one(i) db.businesses.aggregate([ { $group: { _id: "$price", ratingAvg: { $avg: "$rating"}} } ]) db.businesses.find({
    [Show full text]
  • A Motion Is Requested to Authorize the Execution of a Contract for Amazon Business Procurement Services Through the U.S. Communities Government Purchasing Alliance
    MOT 2019-8118 Page 1 of 98 VILLAGE OF DOWNERS GROVE Report for the Village Council Meeting 3/19/2019 SUBJECT: SUBMITTED BY: Authorization of a contract for Amazon Business procurement Judy Buttny services Finance Director SYNOPSIS A motion is requested to authorize the execution of a contract for Amazon Business procurement services through the U.S. Communities Government Purchasing Alliance. STRATEGIC PLAN ALIGNMENT The goals for 2017-2019 includes Steward of Financial Sustainability, and Exceptional, Continual Innovation. FISCAL IMPACT There is no cost to utilize Amazon Business procurement services through the U.S. Communities Government Purchasing Alliance. RECOMMENDATION Approval on the March 19, 2019 Consent Agenda. BACKGROUND U.S. Communities Government Purchasing Alliance is the largest public sector cooperative purchasing organization in the nation. All contracts are awarded by a governmental entity utilizing industry best practices, processes and procedures. The Village of Downers Grove has been a member of the U.S. Communities Government Purchasing Alliance since 2008. Through cooperative purchasing, the Village is able to take advantage of economy of scale and reduce the cost of goods and services. U.S. Communities has partnered with Amazon Services to offer local government agencies the ability to utilize Amazon Business for procurement services at no cost to U.S. Communities members. Amazon Business offers business-only prices on millions of products in a competitive digital market place and a multi-level approval workflow. Staff can efficiently find quotes and purchase products for the best possible price, and the multi-level approval workflow ensures this service is compliant with the Village’s competitive process for purchases under $7,000.
    [Show full text]
  • AWS Certified Developer – Associate (DVA-C01) Sample Exam Questions
    AWS Certified Developer – Associate (DVA-C01) Sample Exam Questions 1) A company is migrating a legacy application to Amazon EC2. The application uses a user name and password stored in the source code to connect to a MySQL database. The database will be migrated to an Amazon RDS for MySQL DB instance. As part of the migration, the company wants to implement a secure way to store and automatically rotate the database credentials. Which approach meets these requirements? A) Store the database credentials in environment variables in an Amazon Machine Image (AMI). Rotate the credentials by replacing the AMI. B) Store the database credentials in AWS Systems Manager Parameter Store. Configure Parameter Store to automatically rotate the credentials. C) Store the database credentials in environment variables on the EC2 instances. Rotate the credentials by relaunching the EC2 instances. D) Store the database credentials in AWS Secrets Manager. Configure Secrets Manager to automatically rotate the credentials. 2) A Developer is designing a web application that allows the users to post comments and receive near- real-time feedback. Which architectures meet these requirements? (Select TWO.) A) Create an AWS AppSync schema and corresponding APIs. Use an Amazon DynamoDB table as the data store. B) Create a WebSocket API in Amazon API Gateway. Use an AWS Lambda function as the backend and an Amazon DynamoDB table as the data store. C) Create an AWS Elastic Beanstalk application backed by an Amazon RDS database. Configure the application to allow long-lived TCP/IP sockets. D) Create a GraphQL endpoint in Amazon API Gateway. Use an Amazon DynamoDB table as the data store.
    [Show full text]
  • A Serverless Journey: Under the Hood of AWS Lambda
    S V S 4 0 5 - R A Serverless Journey: Under the Hood of AWS Lambda Holly Mesrobian Marc Brooker Director of Engineering Senior Principal Engineer Amazon AWS Lambda Amazon AWS Serverless Amazon Web Services Amazon Web Services © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. SERVERLESS AT SCALE IS THE NEW NORM processes 4,000 requests executes 16 million per second requests a month processes half a trillion validations of stock trades daily ingests, analyzes and processes tens of stores 17+ petabytes of billions of data data per season points monthly API traffic to register and license more than 47 million driver records in Great Britain, © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Load Balancing Scaling Up and Down Handling Failures Predictable Low Latency AWS Lambda Handles Event Processing Stream Processing Predictable Performance Innovations in Isolation © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Cloud Region Availability Zone 1 Worker Mgr Worker Claim Worker Invoke Placement Front End Invoke Reserve Sandbox Worker Mgr Init Lambda customer Worker (New Function or Scaling Up) Invoke Front End Worker Availability Zone 2 AWS Cloud Region Availability Zone 1 Worker Mgr Worker Invoke Front End Invoke Reserve Sandbox Lambda customer Worker Mgr Worker (Existing Worker, Existing Sandbox) Invoke Front End Worker Availability Zone 2 Poller Consumes events and ensures they are processed State Manager or Stream Tracker Handles scaling by managing Pollers and event or stream source resources Leasing Service Assigns Pollers to work on a specific event or streaming source © 2019, Amazon Web Services, Inc.
    [Show full text]
  • Amazon Elasticache Deep Dive Powering Modern Applications with Low Latency and High Throughput
    Amazon ElastiCache Deep Dive Powering modern applications with low latency and high throughput Michael Labib Sr. Manager, Non-Relational Databases © 2020, Amazon Web Services, Inc. or its Affiliates. Agenda • Introduction to Amazon ElastiCache • Redis Topologies & Features • ElastiCache Use Cases • Monitoring, Sizing & Best Practices © 2020, Amazon Web Services, Inc. or its Affiliates. Introduction to Amazon ElastiCache © 2020, Amazon Web Services, Inc. or its Affiliates. Purpose-built databases © 2020, Amazon Web Services, Inc. or its Affiliates. Purpose-built databases © 2020, Amazon Web Services, Inc. or its Affiliates. Modern real-time applications require Performance, Scale & Availability Users 1M+ Data volume Terabytes—petabytes Locality Global Performance Microsecond latency Request rate Millions per second Access Mobile, IoT, devices Scale Up-out-in E-Commerce Media Social Online Shared economy Economics Pay-as-you-go streaming media gaming Developer access Open API © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon ElastiCache – Fully Managed Service Redis & Extreme Secure Easily scales to Memcached compatible performance and reliable massive workloads Fully compatible with In-memory data store Network isolation, encryption Scale writes and open source Redis and cache for microsecond at rest/transit, HIPAA, PCI, reads with sharding and Memcached response times FedRAMP, multi AZ, and and replicas automatic failover © 2020, Amazon Web Services, Inc. or its Affiliates. What is Redis? Initially released in 2009, Redis provides: • Complex data structures: Strings, Lists, Sets, Sorted Sets, Hash Maps, HyperLogLog, Geospatial, and Streams • High-availability through replication • Scalability through online sharding • Persistence via snapshot / restore • Multi-key atomic operations A high-speed, in-memory, non-Relational data store. • LUA scripting Customers love that Redis is easy to use.
    [Show full text]
  • AWS Autotech Forum 2020 Online #1
    AWS Autotech Forum 2020 Online #1 2020/08/07 © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ) ( ( AWS Glue Amazon Kinesis Amazon S3 © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • • • • AWS • Next Action © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • • • ü ü • Next Step • © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark LIDAR Camera Telematics Control Unit GPS/HD Maps Accelerometer/Gyroscope Odometry Cellular/DSRC Radar Infrared Ultrasonic © 2020,© 2018, Amazon Amazon Web Web Services, Services, Inc. Inc.or its or Affiliates. its Affiliates. All rightsAll rights reserved. reserved. , ), (, :, { “trip_id”: “00000001”, “timestamp”: “202008071000”, “x_value”: “0.342264”, “y_value”: “0.011724”, ”z_value”: “0.924651”, } / : , etc. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. / { “trip_id”: “00000001”, “timestamp”: “202008071000”, “x_value”: “0.342264”, “y_value”: “0.011724”, ”z_value”: “0.924651”, ( ( )/.,( ( ( } : c c e © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ) • • • ( • © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark What is Data Lake? • • • © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 1 A B © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 2. C D © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. .. 3Hadoop 3 Amazon Simples Storage Service(S3) © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • RDBMS • • • )API( API © 2020, Amazon Web Services, Inc.
    [Show full text]
  • Amazon Mechanical Turk Developer Guide API Version 2017-01-17 Amazon Mechanical Turk Developer Guide
    Amazon Mechanical Turk Developer Guide API Version 2017-01-17 Amazon Mechanical Turk Developer Guide Amazon Mechanical Turk: Developer Guide Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Amazon Mechanical Turk Developer Guide Table of Contents What is Amazon Mechanical Turk? ........................................................................................................ 1 Mechanical Turk marketplace ....................................................................................................... 1 Marketplace rules ............................................................................................................... 2 The sandbox marketplace .................................................................................................... 2 Tasks that work well on Mechanical Turk ...................................................................................... 3 Tasks can be completed within a web browser ....................................................................... 3 Work can be broken into distinct, bite-sized tasks .................................................................
    [Show full text]
  • Optimizing Lambda Performance for Your Serverless Applications
    Optimizing Lambda performance for your serverless applications James Beswick Senior Developer Advocate, AWS Serverless @jbesw © 2020, Amazon Web Services, Inc. or its Affiliates. About me • James Beswick • Email: [email protected] • Twitter: @jbesw • Senior Developer Advocate – AWS Serverless • Self-confessed serverless geek • Software Developer • Product Manager • Previously: • Multiple start-up tech guy • Rackspace, USAA, Morgan Stanley, J P Morgan © 2020, Amazon Web Services, Inc. or its Affiliates. Agenda Memory and profiling © 2020, Amazon Web Services, Inc. or its Affiliates. How does Lambda work? © 2020, Amazon Web Services, Inc. or its Affiliates. Anatomy of an AWS Lambda function Your function Language runtime Execution environment Lambda service Compute substrate © 2020, Amazon Web Services, Inc. or its Affiliates. Where you can impact performance… Your function Language runtime Execution environment Lambda service Compute substrate © 2020, Amazon Web Services, Inc. or its Affiliates. Anatomy of an AWS Lambda function Handler () function Event object Context object Function to be executed Data sent during Lambda Methods available to upon invocation function Invocation interact with runtime information (request ID, log group, more) // Python // Node.js import json const MyLib = require(‘my-package’) import mylib const myLib = new MyLib() def lambda_handler(event, context): exports.handler = async (event, context) => { # TODO implement # TODO implement return { return { 'statusCode': 200, statusCode: 200, 'body': json.dumps('Hello World!') body: JSON.stringify('Hello from Lambda!') } } } © 2020, Amazon Web Services, Inc. or its Affiliates. Function lifecycle – worker host Start new Download Execution Execute Execute your code environment INIT code handler code Full Partial Warm cold start cold start start AWS optimization Your optimization © 2020, Amazon Web Services, Inc.
    [Show full text]
  • Analytics Lens AWS Well-Architected Framework Analytics Lens AWS Well-Architected Framework
    Analytics Lens AWS Well-Architected Framework Analytics Lens AWS Well-Architected Framework Analytics Lens: AWS Well-Architected Framework Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Analytics Lens AWS Well-Architected Framework Table of Contents Abstract ............................................................................................................................................ 1 Abstract .................................................................................................................................... 1 Introduction ...................................................................................................................................... 2 Definitions ................................................................................................................................. 2 Data Ingestion Layer ........................................................................................................... 2 Data Access and Security Layer ............................................................................................ 3 Catalog and Search Layer ...................................................................................................
    [Show full text]
  • October 24, 2013—Amazon.Com, Inc
    AMAZON.COM ANNOUNCES THIRD QUARTER SALES UP 24% TO $17.09 BILLION SEATTLE—(BUSINESS WIRE)—October 24, 2013—Amazon.com, Inc. (NASDAQ: AMZN) today announced financial results for its third quarter ended September 30, 2013. Operating cash flow increased 48% to $4.98 billion for the trailing twelve months, compared with $3.37 billion for the trailing twelve months ended September 30, 2012. Free cash flow decreased 63% to $388 million for the trailing twelve months, compared with $1.06 billion for the trailing twelve months ended September 30, 2012. Free cash flow for the trailing twelve months ended September 30, 2013 includes fourth quarter 2012 cash outflows for purchases of corporate office space and property in Seattle, Washington, of $1.4 billion. Common shares outstanding plus shares underlying stock-based awards totaled 475 million on September 30, 2013, compared with 469 million one year ago. Net sales increased 24% to $17.09 billion in the third quarter, compared with $13.81 billion in third quarter 2012. Excluding the $332 million unfavorable impact from year-over-year changes in foreign exchange rates throughout the quarter, net sales grew 26% compared with third quarter 2012. Operating loss was $25 million in the third quarter, compared with an operating loss of $28 million in third quarter 2012. The unfavorable impact from year-over-year changes in foreign exchange rates throughout the quarter on operating loss was $7 million. Net loss was $41 million in the third quarter, or $0.09 per diluted share, compared with a net loss of $274 million, or $0.60 per diluted share, in third quarter 2012.
    [Show full text]