SUS02-BP04 Optimize geographic placement of workloads for user locations - AWS Well-Architected Framework (2022-03-31)

SUS02-BP04 Optimize geographic placement of workloads for user locations

Analyze network access patterns to identify where your customers are connecting from geographically. Select Regions and services that reduce the distance network traffic must travel to decrease the total network resources required to support your workload.

Common anti-patterns:

  • You select the workload's Region based on your own location.

Benefits of establishing this best practice: Placing a workload close to its customers provides the lowest latency while decreasing data movement across the network and lowering environmental impact.

Level of risk exposed if this best practice is not established: Medium

Implementation guidance

  • Select the Regions for your workload deployment based on the following key elements:

    • Your Sustainability goal: as explained in Region selection.

    • Where your data is located: For data-heavy applications (such as big data and machine learning), application code should execute as close to the data as possible.

    • Where your users are located: For user-facing applications, choose a Region close to your workload’s customer base.

    • Other constraints: Consider constraints such as security and compliance as explained in What to Consider when Selecting a Region for your Workloads.

  • Use AWS Local Zones to run workloads like video rendering and graphics-intensive virtual desktop applications. Local Zones allow you to benefit from having compute and storage resources closer to end users.

  • Use local caching or AWS Caching Solutions for frequently used resources to improve performance, reduce data movement, and lower environmental impact.

    Service When to use

    Amazon CloudFront

    Use to cache static content such as images, scripts, and videos, as well as dynamic content such as API responses or web applications.

    Amazon ElastiCache

    Use to cache content for web applications.

    DynamoDB Accelerator

    Use to add in-memory acceleration to your DynamoDB tables.

  • Use services that can help you run code closer to users of your workload:

    Service When to use

    Lambda@Edge

    Use for compute-heavy operations that are executed when objects are not in the cache.

    Amazon CloudFront Functions

    Use for simple use cases like HTTP(s) request or response manipulations that can be executed by short-lived functions.

    AWS IoT Greengrass

    Use to run local compute, messaging, and data caching for connected devices.

  • Use connection pooling to enable connection reuse, and reduce required resources.

  • Use distributed data stores that don’t rely on persistent connections and synchronous updates for consistency to serve regional populations.

  • Replace pre-provisioned static network capacity with shared dynamic capacity, and share the sustainability impact of network capacity with other subscribers.

Resources

Related documents:

Related videos:

Related examples: