Amazon AppStream 2.0: The Advanced Architect’s Guide

Amazon AppStream 2.0: The Advanced Architect's Guide

A production-grade deep dive into fleet architecture, session broker internals, persistence layers, and the security and scaling decisions that determine whether a streamed application platform actually holds up under real organizational load.

Amazon AppStream 2.0 gets introduced as “stream desktop applications to a browser,” which is true and, on its own, tells you nothing about how to run it for ten thousand employees across three continents without blowing the budget or infuriating users with cold-start delays. This guide skips the fundamentals entirely and assumes you already know that AppStream streams applications rather than shipping installers. We go straight into what matters at scale: how fleets and the session broker actually allocate capacity, how image pipelines should be versioned and rolled out, the real security boundary between a streaming session and the underlying instance, and where teams consistently misconfigure persistence and end up with angry users who lose their work.

1Advanced Core Concepts

The building blocks that determine cost, cold-start latency, and session capacity: fleet types, image pipelines, stacks, and the layered persistence model.

Fleet Types Are Cost-vs-Latency Decisions, Not Just Compute Choices

An Always-On fleet keeps instances running continuously, ready to accept a session in seconds, at the cost of paying for idle capacity around the clock. An On-Demand fleet starts instances only when a session is requested, dramatically reducing cost for spiky or low-utilization usage patterns, at the cost of a cold-start delay — often one to several minutes — while an instance boots and the application image loads. Elastic fleets, the newer model, support multiple concurrent sessions per instance and eliminate most of the idle-capacity waste of Always-On while avoiding much of the cold-start penalty of On-Demand, but they impose constraints on what can run inside them (no persistent local state assumptions between different users’ sessions on the same instance). Choosing the wrong fleet type for a given user population is the single most common source of both unnecessary cost and unnecessary user-facing latency in production deployments.

Analogy

An Always-On fleet is like keeping a fleet of taxis running with engines on all night in case someone needs a ride. An On-Demand fleet is calling a taxi only when needed and waiting for it to arrive. An Elastic fleet is more like a shared shuttle bus that’s already moving and picks up multiple passengers along its route without idling empty the whole time.

Image Pipeline: Golden Images Are Immutable Snapshots, Not Living Servers

An AppStream image is built once via an Image Builder instance — a temporary, interactively-accessible instance where applications are installed and configured — then captured as an immutable image that fleets launch from. Advanced teams never treat a published image as something to patch in place; instead, a new Image Builder session is launched from the previous image, changes are applied, and a new versioned image is captured and published, with fleets migrated to the new image through a controlled rollout rather than an in-place mutation of running fleet instances.

Stacks Are the Policy Layer, Fleets Are the Compute Layer

A stack defines user-facing policy — which applications appear in the catalog, storage connector configuration (Home Folders, Google Drive, OneDrive), clipboard and file transfer redirection settings, and session idle/disconnect timeouts. A fleet defines the compute — instance type, scaling configuration, and the image it launches from. The same fleet can be associated with multiple stacks (different user groups with different policy needs sharing the same underlying compute), and this decoupling is what lets a platform team manage compute capacity centrally while different business units independently control their own user-facing policy.

Always-On Fleet

Instant Availability

Continuously running capacity; lowest latency, highest idle-capacity cost.

On-Demand Fleet

Pay-Per-Session

Instances start on request; lowest idle cost, meaningful cold-start delay.

Elastic Fleet

Multi-Session Density

Multiple concurrent user sessions per instance, balancing cost and startup latency.

Stack

User-Facing Policy Layer

Catalog, storage connectors, and redirection settings — decoupled from the compute fleet itself.

The Layered Persistence Model

Because most fleet instances are ephemeral by design, user data persistence is deliberately layered outside the instance itself: Home Folders back onto S3, application settings persistence captures user-specific application configuration (window layouts, recently opened files metadata) separately from documents, and enterprise storage connectors (Google Drive, OneDrive, custom SMB shares) can be attached per stack. Advanced teams map exactly which of these layers a given application actually needs — a stateless internal tool may need none of them, while a CAD application with heavy local user preferences needs application settings persistence specifically, not just document storage.

2Internal Working

What happens between “a user clicked launch” and “pixels appeared in their browser” — the session broker, streaming protocol, and per-session network isolation.

When a user requests a session, a session broker component evaluates the target stack’s associated fleet, checks current capacity and health across the fleet’s instances, and assigns the session to an available instance — provisioning a new instance first if the fleet’s scaling policy allows and current capacity is exhausted. Each session’s actual pixel and input streaming runs over the NICE DCV protocol, which is specifically engineered for low-latency remote display, dynamically adjusting image quality and frame rate based on measured client-side bandwidth and rendering complexity rather than using a fixed bitrate.

flowchart LR
    U[User Browser / Client] -->|Launch Request| AUTH[Authentication - User Pool or SAML]
    AUTH --> BROKER[Session Broker]
    BROKER -->|Check Fleet Capacity| FLEET[Fleet Instances]
    FLEET -->|Assign or Provision| INST[Streaming Instance]
    INST -->|NICE DCV Protocol| U
    INST -->|Mount| STORAGE[Home Folder / Enterprise Storage Connector]
    INST -->|Session End| TEARDOWN[Instance Reset or Terminated]
        
FIG 2.1 — Session request through broker assignment to streaming instance teardown

Per-Session Network Isolation Inside a Shared Instance

On Elastic fleets, where multiple users can share one underlying instance concurrently, AppStream enforces isolation between concurrent sessions at both the process and network level so one user’s session cannot observe or interfere with another’s, even though they share the same physical compute. Advanced architects should understand this isolation is engineered specifically because multi-session density is the entire value proposition of elastic fleets — without strong per-session isolation, the model wouldn’t be viable for a shared multi-tenant compute layer at all.

Instance State After Session End Depends Entirely on Fleet Type

On traditional (non-elastic) fleets, an instance is returned to a clean state after a session ends — any local, non-persisted changes to the instance are discarded, and the next session on that instance starts fresh from the published image. On elastic fleets, since multiple sessions may be active on the same instance simultaneously, session cleanup happens per-session rather than per-instance. Applications that write meaningful state to local disk outside the recognized persistence mechanisms will silently lose that state at session end regardless of fleet type — this is one of the most common sources of “why did my settings disappear” support tickets.

!
Common Misconception

“My application saved a file to a local folder, so it should be there next time” is false unless that folder is explicitly mapped through Home Folders, application settings persistence, or an enterprise storage connector. Anything written outside those mechanisms is ephemeral by design.

3Data Flow & Lifecycle

Following a single user session from authentication through streaming to teardown, and where the image-build lifecycle intersects it.

1

Authentication

A user authenticates via a managed user pool or federated SAML 2.0 identity provider before ever reaching the session broker.

2

Session Brokering

The broker evaluates the requested stack’s fleet, checks capacity, and assigns or provisions an instance for the session.

3

Storage Attachment

Home Folders and any configured enterprise storage connectors are mounted into the session before the application catalog becomes interactive.

4

Active Streaming

NICE DCV streams the application’s display to the client, dynamically adapting to bandwidth and rendering load throughout the session.

5

Idle Timeout or Disconnect Teardown

On idle timeout, disconnect, or explicit logout, the session ends and the instance is reset (or, on Elastic fleets, that specific session slot is cleaned up) per the stack’s configured policy.

The Image Lifecycle Runs Parallel to, Not Inside, the Session Lifecycle

Image creation happens entirely outside the user session lifecycle: an administrator launches an Image Builder instance, installs and configures applications interactively, runs the image assistant to validate application launch behavior, and publishes a new image version. Fleets are then updated to reference the new image, typically via a blue/green fleet swap rather than modifying a live fleet in place, so that in-progress user sessions on the old image are never disrupted mid-stream by an image change.

Production Example — Quarterly CAD Software Upgrade

Engineering organizations streaming licensed CAD software build a new image quarterly with updated software and patches, validate it against a small pilot fleet, then perform a blue/green fleet cutover so the broader user base transitions to the new image only after validation, with the previous image’s fleet kept warm briefly as an instant rollback path.

4Advantages, Disadvantages & Trade-offs

Where application streaming genuinely beats traditional VDI or local installs, and where its architecture imposes real constraints.

Advantages

  • No local installation footprint — licensed or legacy software runs centrally, reducing endpoint management burden
  • Fine-grained fleet scaling matches compute cost to actual concurrent usage far more precisely than provisioning fixed VDI capacity
  • Federated SAML authentication integrates cleanly with existing enterprise identity providers
  • Elastic fleets provide meaningfully better cost density than one-instance-per-user models for lightweight applications

Disadvantages & Limits

  • Cold-start latency on On-Demand fleets can frustrate users expecting instant application launch
  • Persistence must be deliberately engineered per application — nothing persists by default outside recognized storage mechanisms
  • GPU-intensive or highly specialized hardware requirements constrain available instance families more than a locally provisioned workstation would
  • Network dependency is absolute — a degraded or high-latency connection directly degrades the user’s entire working experience, unlike a local application

AppStream vs. Traditional VDI

Traditional VDI typically provisions a full persistent desktop per user, with all the storage and patching overhead that implies. AppStream’s application-level streaming model (rather than full-desktop) plus elastic, scalable fleets trades some of VDI’s “it’s just like my normal desktop” familiarity for meaningfully lower operational overhead and better cost elasticity, particularly for organizations that need to distribute access to a specific set of licensed applications rather than a full desktop environment to every user.

5Performance & Scalability

How fleet auto-scaling actually reacts to demand, and where instance family choice determines a hard performance ceiling regardless of scaling policy.

Fleet scaling policies define target capacity based on metrics like the percentage of in-use capacity or number of available sessions, triggering scale-out or scale-in of the underlying instance count. The critical advanced nuance: scaling reacts to demand, it does not anticipate it. A fleet scaling purely reactively can still produce a burst of cold-start delays if demand spikes faster than new instances can boot and become session-ready — which is why predictable high-demand periods (a Monday morning login surge, a training session with two hundred simultaneous new users) are handled with scheduled scaling policies that pre-warm capacity ahead of the known spike, rather than relying on reactive scaling alone.

Elastic
FLEETS SUPPORT MULTI-
SESSION PER INSTANCE
Scheduled
SCALING PRE-WARMS
KNOWN DEMAND SPIKES
Per-Hour
BILLING UNIT IS
INSTANCE STREAMING HOURS

Instance Family Selection Is a Performance Ceiling, Not a Cost Slider

Choosing an undersized instance family for a graphics-intensive application (CAD, video editing, 3D visualization) doesn’t just save cost incrementally — it caps rendering performance in a way scaling out more instances cannot fix, because scaling adds more concurrent sessions, not more compute power per session. Advanced capacity planning matches instance family to application workload profile explicitly (general-purpose for office productivity apps, graphics-optimized families for GPU-dependent workloads) rather than defaulting to the cheapest available family across every fleet.

Analogy

Adding more instances to a fleet is like adding more checkout lanes at a store — it helps more customers get served at once, but it does nothing to make a single slow cash register scan items faster. Instance family choice is the speed of that individual register.

Session Density Trade-offs on Elastic Fleets

Packing more concurrent sessions onto a single elastic-fleet instance improves cost density but proportionally reduces the CPU, memory, and GPU resources available to each individual session. Lightweight applications (a browser-based line-of-business tool) tolerate high session density well; resource-intensive applications degrade in perceived responsiveness for every user on that instance if density is pushed too aggressively — this is a tuning knob that requires real usage-pattern testing, not a one-size-fits-all default.

6High Availability & Reliability

Designing fleets that survive an Availability Zone issue and session interruptions that don’t cost users their work.

Fleets should be configured across multiple subnets spanning multiple Availability Zones, so the session broker can place new sessions on healthy capacity in an unaffected AZ if one AZ experiences a localized issue. Reliability at the user-experience layer, however, depends just as heavily on session-level design: a user’s network connection dropping briefly should not mean losing unsaved work, which is why applications streamed through AppStream should be evaluated for their own auto-save behavior as part of the platform’s reliability posture, not just the AppStream infrastructure’s own uptime.

Reliability Rule of Thumb

Configure fleets across at least two Availability Zones for any production stack, and set disconnect timeout policies generously enough that a brief network blip triggers a session reconnect rather than a full session termination and loss of in-progress application state.

Disconnect vs. Idle Timeout Are Different Reliability Levers

Disconnect timeout governs how long a session is preserved after the client connection drops unexpectedly, allowing a user to reconnect to the same still-running session rather than starting fresh. Idle timeout governs how long a session persists with no user input at all, and exists primarily for cost and security reasons rather than reliability. Setting disconnect timeout too short turns a two-minute Wi-Fi hiccup into full data loss for whatever the user hadn’t saved; setting idle timeout too long leaves paid streaming capacity allocated to genuinely inactive users. These are distinct policies serving distinct purposes and should never be set to the same value out of convenience.

Health Checks Prevent Routing Sessions to Degraded Instances

Fleet instance health checks detect instances that have become unresponsive or degraded and remove them from the pool of instances eligible for new session assignment, preventing the broker from routing a new user onto hardware already experiencing problems. Advanced monitoring pairs this built-in health check behavior with application-level synthetic session testing — periodically launching and validating a real session end-to-end — since infrastructure-level health checks alone can’t detect an application that launches successfully but is itself misbehaving inside the session.

7Security

The real trust boundaries between a streamed session and the network it runs in, and the redirection settings that most often get misconfigured.

VPC Placement and ENI-Level Network Control

Fleet instances run within a VPC, attached to specific subnets and security groups just like any other EC2-backed resource, meaning network access from within a streaming session is governed by standard VPC networking controls — security groups can restrict what internal resources a session’s outbound traffic can reach, which matters significantly when AppStream is used to give contractors or external users controlled access to specific internal applications without granting broader VPC-wide network access.

ADR-AS-011 Anti-Pattern
Context

An organization wants to give external contractors browser-based access to one internal reporting application without issuing VPN access or corporate laptops.

Anti-Pattern

Placing the contractor-facing fleet in the same subnet and security group configuration as internal employee fleets, assuming AppStream’s session isolation alone is sufficient network segmentation.

Why It Fails

Session isolation protects one user’s session from another’s, but it does not restrict what internal network resources a session’s own outbound traffic can reach — a contractor’s session sharing employee-fleet network placement can potentially reach internal systems far beyond the one reporting application they were meant to access, unless security groups explicitly scope that fleet’s network reach.

Clipboard, File Transfer, and USB Redirection as Data-Loss-Prevention Controls

Stack settings control whether clipboard copy/paste, file upload/download, and USB device redirection are permitted between the local client and the streamed session. For workloads handling sensitive data, disabling these redirection channels is often the single most effective control against data exfiltration via the streaming session — a user can view sensitive data on screen without ever being able to copy it to a local clipboard, download it as a file, or move it to an attached USB device, regardless of what permissions they’d otherwise have within the streamed application itself.

Authentication: User Pools vs. SAML Federation

AppStream’s built-in user pool is suitable for smaller, self-contained user bases, but most enterprise deployments federate authentication through SAML 2.0 to an existing identity provider, centralizing credential management, MFA enforcement, and deprovisioning within the organization’s existing identity governance rather than maintaining a second, parallel user directory specifically for streaming access.

Security ControlProtects AgainstWhere It’s Configured
VPC security groups on fleet subnetsUnintended internal network reach from a streaming sessionFleet VPC configuration
Clipboard / file transfer / USB redirection settingsData exfiltration via the streaming clientStack configuration
SAML federationFragmented identity governance and weak deprovisioningStack authentication configuration
Session isolation (per-user, per-session)Cross-user data exposure on shared elastic-fleet instancesBuilt into the AppStream session model

8Monitoring, Logging & Metrics

The signals that reveal capacity pressure and user experience quality, most of which live outside a simple uptime check.

Fleet Capacity Utilization

Scaling Pressure Signal

Tracks the percentage of in-use versus available capacity, the primary indicator that scaling policy tuning is needed.

Usage Reports

Session-Level Business Metrics

Detailed per-session usage data useful for cost allocation, license utilization tracking, and capacity forecasting.

Streaming Quality Metrics

Client Experience Signal

Round-trip latency and frame rate data that reveal degraded experience even when infrastructure health checks report everything as normal.

Application Log Forwarding

In-Session Diagnostics

Custom scripts capturing application-specific logs from within sessions, since application misbehavior isn’t visible from infrastructure metrics alone.

Utilization Metrics Drive Scaling Policy Tuning, Not Just Reporting

Capacity utilization metrics aren’t just a dashboard curiosity — they’re the direct input for tuning scaling policy thresholds. A fleet consistently running near its scale-out threshold during business hours signals the baseline capacity target itself needs raising, rather than relying on reactive scaling to keep catching up to a demand pattern that’s actually predictable and recurring.

“Infrastructure health checks tell you the instance is alive. Streaming quality metrics tell you whether the person using it is actually having a good day.”

9Deployment & Cloud

Managing image pipelines, stacks, and fleets as versioned infrastructure across a growing application catalog.

Fleets, stacks, and their associations are typically defined through CloudFormation or a similar infrastructure-as-code tool, but the image itself — built interactively through Image Builder — requires a distinct, semi-manual pipeline discipline: a documented, repeatable process for what gets installed on each new image version, validated through the image assistant before publishing, and version-tagged so any fleet’s currently running image is always traceable to an exact, auditable build.

Blue/Green Fleet Cutover for Image Updates

As introduced in Chapter 3, updating a fleet’s image is done by provisioning a new fleet from the new image, validating it, then shifting stack associations from the old fleet to the new one, rather than mutating a live fleet’s image reference in place. This gives an instant rollback path (simply re-associate the stack back to the old fleet) if the new image introduces an unexpected regression, at the cost of temporarily running double the compute capacity during the cutover window.

Multi-Region Considerations for Global User Bases

For globally distributed user populations, streaming latency is dominated by the physical distance between the user and the fleet’s region — a user in Singapore streaming from a fleet in Virginia will experience meaningfully worse responsiveness than one streaming from a regional fleet closer to them. Advanced deployments provision regional fleets per major user population and route users to their nearest region, treating streaming latency as a first-class deployment topology concern rather than an afterthought addressed only after complaints arrive.

Production Example — Global Consulting Firm Rollout

A consulting firm streaming a specialized analytics application to consultants across multiple continents runs independent regional fleets per major office cluster, each built from the same versioned image but scaled and scheduled independently to match that region’s business hours and usage patterns.

10Design Patterns & Anti-patterns

The patterns that keep large streaming deployments manageable, and the shortcuts that produce a fragile, expensive mess.

Pattern: Decoupled Stack-Per-Business-Unit, Shared Fleet-Per-Workload-Profile

Because stacks and fleets are independently associable, mature deployments group fleets by workload profile (light office apps, GPU-intensive design tools, specialized licensed software) rather than by business unit, while stacks are created per business unit or user group to independently manage catalog and policy. This avoids the anti-pattern of provisioning a near-identical fleet per department purely to give each department its own catalog, which multiplies idle capacity without any real isolation benefit.

ADR-AS-018 Anti-Pattern
Context

Three departments each want their own application catalog and branding for their streamed applications.

Anti-Pattern

Provisioning three separate, near-identical fleets — one per department — running the exact same base image and instance family, purely so each department can have its own catalog configuration.

Why It Fails

This triples idle capacity overhead and triples the operational surface for scaling policy tuning and image updates, for a need that stacks alone already solve — each department could have its own stack with its own catalog and policy, sharing one underlying fleet’s compute capacity.

Pattern: Scheduled Pre-Warming for Predictable Demand

As covered in Chapter 5, known recurring demand spikes (login surges, scheduled training sessions) are handled with scheduled scaling policies that pre-provision capacity ahead of the spike, rather than relying on reactive auto-scaling to catch up after the spike has already begun causing cold-start delays for the first wave of users.

Anti-Pattern: Treating Application Settings Persistence as Optional

Skipping application settings persistence configuration for applications with meaningful per-user configuration (custom toolbars, saved connection profiles, license activation state) produces a support burden where users must reconfigure their environment every single session — a cost that compounds daily across an entire user base and is almost always cheaper to solve correctly during initial stack design than to retrofit after user complaints accumulate.

11Best Practices & Common Mistakes

The habits that keep large-scale streaming deployments cost-efficient and user-friendly, and the mistakes that quietly erode both.

Best Practice

Match Fleet Type to Actual Usage Pattern

Always-On for continuous business-hours demand, On-Demand for sporadic access, Elastic for high-density lightweight applications — pick deliberately per workload.

Best Practice

Version Every Published Image

Treat images as immutable, auditable artifacts and roll updates through blue/green fleet cutover, never in-place mutation.

Common Mistake

Setting Disconnect and Idle Timeout to the Same Value

These serve different purposes — conflating them either causes premature data loss on brief network blips or wastes paid capacity on truly idle sessions.

Common Mistake

Undersizing Instance Family for Graphics Workloads

Scaling out more instances doesn’t compensate for an undersized instance family’s rendering ceiling per individual session.

Test Session Density Empirically, Not by Estimation

The right number of concurrent sessions per elastic-fleet instance for a given application is rarely knowable in advance from specs alone — it should be validated with realistic concurrent usage testing before committing a production rollout to a specific density target, since actual resource contention under real usage patterns frequently differs from theoretical capacity calculations.

12Real-World & Industry Examples

How organizations apply these advanced patterns to real streaming deployments.

Engineering Firms Streaming Licensed CAD Software

Firms with expensive, seat-limited CAD licenses use AppStream to centralize license management and stream the application only to active users, using On-Demand or scheduled Always-On fleets tied closely to license seat counts rather than provisioning a workstation per potential user.

Financial Services Contractor Access

Banks and financial institutions extending controlled access to contractors use tightly scoped stacks and fleet-level network isolation (as covered in Chapter 7) to provide exactly one internal application’s functionality without issuing VPN credentials or corporate devices to non-employees.

Educational Institutions Streaming Specialized Software

Universities streaming expensive statistical or engineering software to students use elastic fleets to serve high concurrent session counts during peak lab hours cost-effectively, scaling down heavily overnight and during academic breaks when demand drops close to zero.

The Common Thread

Every mature deployment treats fleet type, image versioning, and persistence configuration as deliberate, workload-specific engineering decisions — never defaults left unexamined — because at real organizational scale, each of those decisions compounds directly into either cost efficiency or user frustration.

13Frequently Asked Questions

Q1Why do my users lose settings between sessions?
Anything not explicitly routed through Home Folders, application settings persistence, or an enterprise storage connector is discarded when a session ends — persistence must be deliberately configured, not assumed.
Q2Should I use Always-On, On-Demand, or Elastic fleets?
It depends on usage pattern: Always-On for continuous demand needing instant launch, On-Demand for sporadic access tolerant of cold-start delay, and Elastic for high-density, lightweight applications where cost efficiency matters most.
Q3Can I update a live fleet’s image in place?
You shouldn’t. The recommended pattern is provisioning a new fleet from a new image version and performing a blue/green cutover of stack associations, preserving an instant rollback path if issues arise.
Q4Why is my graphics application still slow after adding more instances?
Scaling out adds more concurrent session capacity, not more compute power per session — a graphics-intensive workload’s performance ceiling is set by instance family choice, not instance count.
Q5Is session isolation on elastic fleets enough network security by itself?
No. Session isolation protects users from each other’s sessions but does not restrict what internal network resources a session’s outbound traffic can reach — that requires explicit VPC security group scoping on the fleet.
Q6What’s the difference between disconnect timeout and idle timeout?
Disconnect timeout preserves a session after an unexpected connection drop so the user can reconnect without losing state; idle timeout ends a session after a period of genuine inactivity, primarily for cost and security. They should be set independently.
Q7Should every department get its own fleet?
Usually not. Group fleets by workload profile instead, and use separate stacks per department for catalog and policy differences — this avoids multiplying idle capacity for no real isolation benefit.
Q8How do I prepare for a known, scheduled demand spike?
Use scheduled scaling policies to pre-warm capacity ahead of the known spike, rather than relying on reactive auto-scaling, which can still produce cold-start delays for the first wave of users during a sudden surge.
Q9Can I prevent users from copying sensitive on-screen data to their local machine?
Yes — disabling clipboard, file transfer, and USB redirection at the stack level is one of the most effective controls against data exfiltration through a streaming session.
Q10Why do users in a distant region report worse performance than local users?
Streaming latency is heavily influenced by physical distance to the fleet’s region. Provisioning regional fleets closer to major user populations, rather than serving everyone from one central region, meaningfully improves their experience.

14Summary & Key Takeaways

What to Carry Forward

  • Fleet type is a cost-versus-latency decision that must match actual usage patterns — Always-On, On-Demand, and Elastic each fit different demand shapes.
  • Images are immutable, versioned artifacts; update fleets via blue/green cutover, never in-place image mutation.
  • Persistence must be explicitly engineered per application — nothing survives session end unless routed through a recognized storage mechanism.
  • Session isolation is not network isolation — VPC security groups on fleet subnets are the real boundary for what internal resources a session can reach.
  • Disconnect timeout and idle timeout serve different purposes and should be tuned independently, not set to matching defaults.
  • Instance family choice sets a hard performance ceiling for graphics-intensive workloads that scaling out cannot compensate for.
  • Scheduled scaling pre-warms known demand spikes; reactive scaling alone still produces cold-start delays for the first wave of a sudden surge.