AWS Application Discovery Service, Mapped From the Inside

AWS Application Discovery Service, Mapped From the Inside

A practical, mechanics-first walkthrough of how AWS discovers, profiles, and groups thousands of on-premises servers into migration-ready applications — for engineers who already understand cloud migration basics and want the real internals of the discovery pipeline.

Picture a company preparing to move a house — except they’ve never actually walked through every room. They know roughly what’s in the attic and the garage, but nobody has a full inventory of every appliance, every wire connecting one room’s electronics to another, or how much power each device actually draws during the day. Moving blind like that means either overpacking the truck with things nobody uses, or arriving at the new house and discovering a critical appliance was left behind, unplugged, or wired to something that got separated in the move. AWS Application Discovery Service exists to prevent exactly this scenario for enterprise data centers: before you migrate hundreds or thousands of on-premises servers to AWS, it walks through every room, catalogs every device, and maps every wire — so migration planning is based on real, measured data instead of guesswork and outdated spreadsheets from three reorganizations ago.

1Problem & Motivation

Large enterprises migrating to AWS almost never have an accurate, current picture of their own infrastructure. Configuration management databases drift out of date the moment they’re written; server owners change teams; undocumented dependencies between applications accumulate silently over a decade of ad hoc changes. When a migration team tries to plan “move these 40 servers in wave one,” they frequently discover mid-migration that server #23 was quietly talking to a database server nobody scheduled for that wave, and the application breaks the moment it’s moved in isolation. Application Discovery Service exists to replace that guesswork with measured, automated data collection — actual CPU and memory utilization, actual network connections between servers, actual running processes — gathered continuously over weeks, not reconstructed from memory in a planning meeting.

Analogy

It’s the difference between an electrician redesigning a building’s wiring based on the original blueprints from forty years ago versus actually tracing every live wire with a multimeter before touching anything. The blueprints might be close, but “close” is exactly what causes outages during a move. Discovery Service is the multimeter — it measures what’s actually there and actually connected, right now, not what a document from years ago claims should be there.

Production example: large financial institutions migrating mainframe-adjacent server farms to AWS commonly report that Discovery Service surfaces dependency chains their own internal teams didn’t know existed — a batch-processing server quietly polling a reporting server every night that nobody had documented since the engineer who built that integration left the company years earlier. Catching that before migration, rather than during a failed cutover, is the entire value proposition.

2Core Concepts (Intermediate Layer)

This section assumes you already know Discovery Service “collects data about on-premises servers for migration planning.” It focuses on the mechanics and vocabulary that matter once you’re actually running a discovery project.

Agent-Based vs. Agentless Discovery

Discovery Service offers two fundamentally different collection mechanisms. The Discovery Agent is lightweight software installed directly on each server (Windows or Linux) that collects detailed, high-fidelity system performance data, running processes, and network connection information at the operating-system level. The Agentless Discovery Connector, by contrast, is a virtual appliance deployed into a VMware vCenter environment that collects inventory and utilization data about VMs without installing anything on the guest operating systems themselves, by querying vCenter’s own APIs. The intermediate-level distinction that matters: agent-based discovery sees inside the OS (actual process names, actual per-process network connections) while agentless discovery sees only what vCenter exposes about the VM from the hypervisor level — less granular, but zero-touch to the guest OS, which matters enormously in environments where installing new software on production servers requires a lengthy change-control process.

Static Configuration Data vs. Time-Series Utilization Data

Discovery Service collects two distinct categories of data that serve different purposes in migration planning. Static configuration data — hostname, OS version, installed applications, IP addresses — is captured largely as a snapshot and changes infrequently. Time-series performance data — CPU utilization, memory usage, disk I/O, network throughput — is sampled repeatedly (roughly every 15 seconds by the agent, aggregated into 5-minute and hourly rollups for reporting) over the full discovery window, which is what lets you right-size the target AWS instance based on actual peak and average load rather than the server’s theoretical maximum capacity, which is almost always wildly overprovisioned relative to real usage.

Network Connection Graphs and Dependency Mapping

Perhaps the single most valuable intermediate-level capability is the network connection data: Discovery Service records which servers are actually talking to which other servers, over which ports, and how frequently. This data is what powers dependency visualization in Migration Hub — instead of manually asking every application owner “what does your app talk to,” the connection graph is built empirically from observed TCP connections over the discovery period. This is also why discovery windows typically run for at least two to four weeks: many enterprise applications have monthly or quarterly batch jobs, and a connection that only fires once a month will be invisible if you only discover for a few days.

Grouping Servers Into “Applications”

Raw discovered servers are just a flat inventory until they’re grouped into logical Applications inside Migration Hub — a construct that represents a set of servers that should be migrated together as a unit because they’re functionally interdependent. This grouping can be done manually by a migration analyst reviewing the dependency graph, or informed by tagging conventions already present in the source environment. Grouping matters because migration waves are planned at the Application level, not the individual server level — you don’t want to migrate a web tier in wave one and its database tier in wave four, because the application simply won’t function correctly with that network latency and dependency gap in between.

i
Intermediate Insight

A common trap is running agentless discovery only and assuming the resulting utilization data is precise enough for accurate instance right-sizing. Because agentless discovery samples at the hypervisor level and can’t see per-process detail, teams doing rigorous cost modeling for a large migration typically deploy the Discovery Agent on at least the highest-impact servers to get accurate, process-level utilization data before finalizing target instance types.

Migration Hub

Central Aggregation Point

All discovered data — from both agent and agentless sources — flows into AWS Migration Hub, which provides the dependency visualization and application grouping interface used for wave planning.

Export

Data Export to S3

Discovered inventory and utilization data can be exported as CSV files to S3 for offline analysis, feeding third-party migration assessment tools or custom right-sizing spreadsheets.

Migration Evaluator

Complementary Cost Tool

A separate but related AWS service that focuses on business-case and TCO analysis using a lighter-weight collector, often run alongside Discovery Service’s deeper technical discovery.

Continuous vs. One-Time

Discovery Duration Modes

Discovery can run as a bounded assessment window for a one-time migration project, or continuously for organizations that want an ongoing, living inventory of their hybrid environment.

3Architecture & Components

The architecture separates cleanly into three layers: collection (agents and the agentless connector running in or near the source environment), transport (encrypted outbound connections carrying collected data to the AWS discovery service endpoint), and aggregation/presentation (the Discovery Service data store feeding Migration Hub’s visualization and grouping interface). Crucially, all communication is outbound-initiated from the source environment to AWS — neither the agent nor the agentless connector requires AWS to open any inbound connection into the on-premises network, which is a deliberate design choice that avoids the security review overhead of punching new inbound firewall holes into a production data center.

graph TB
    subgraph OnPrem["On-Premises / Data Center"]
        SRV1["Physical & Virtual
Servers"] AGENT["Discovery Agent
(installed per server)"] VCENTER["VMware vCenter"] CONNECTOR["Agentless Discovery
Connector (virtual appliance)"] end subgraph AWSCloud["AWS Cloud"] ENDPOINT["Discovery Service
API Endpoint"] STORE["Discovery Data Store"] HUB["AWS Migration Hub"] S3["Amazon S3
(Data Export)"] end SRV1 --> AGENT AGENT -->|"Outbound HTTPS"| ENDPOINT VCENTER --> CONNECTOR CONNECTOR -->|"Outbound HTTPS"| ENDPOINT ENDPOINT --> STORE STORE --> HUB STORE --> S3 HUB -->|"Application Grouping
& Dependency View"| STORE

Fig. 1 — Both discovery mechanisms push data outbound to AWS; Migration Hub reads from the shared discovery data store rather than talking to the agents directly.

Migration Hub itself is not a separate data-collection system — it’s a presentation and orchestration layer that reads from the same underlying discovery data store, which is why data you see in Migration Hub’s dependency map is exactly the data Discovery Service collected, not a separately synchronized copy that could drift out of sync.

4Internal Working

The Discovery Agent runs as a lightweight background process that periodically samples system-level metrics — CPU, memory, disk, and network counters exposed by the operating system — roughly every 15 seconds, buffers them locally, and transmits them in batches over an encrypted connection to the Discovery Service endpoint at a regular interval, typically every few minutes. This batching is deliberate: it avoids generating a constant drip of tiny network calls from thousands of servers simultaneously, which would create its own network load problem in the very data center you’re trying to profile without disruption.

For network connection data specifically, the agent inspects the server’s active TCP connection table (similar to what a command like netstat would show) at each sampling interval, records the local and remote IP/port pairs, and associates that connection with the local process that owns it where the OS exposes that mapping. Over the full discovery window, these individual snapshots are aggregated server-side into a connection graph — if server A is observed connecting to server B on port 5432 repeatedly across many samples, Discovery Service infers a persistent dependency, whereas a connection seen only once might be treated as transient or ignored depending on the analysis threshold.

Analogy

This is similar to how a wildlife researcher tracking animal movement doesn’t follow one animal with a video camera continuously — that’s expensive and invasive. Instead, they take periodic GPS pings and, after weeks of data, connect the dots to infer the animal’s regular migration path, feeding grounds, and territory boundaries. A single ping tells you little; the pattern across hundreds of pings tells you the real behavior. Discovery Service’s connection graph works the same way — individual samples are noisy, but the aggregate pattern over weeks reveals real, persistent application dependencies.

The agentless connector works differently at the collection layer: rather than sampling from inside each guest OS, it periodically queries the vCenter API for VM-level performance counters (CPU ready time, memory balloon, datastore I/O) that vCenter itself already aggregates from the hypervisor, and separately queries inventory metadata (VM name, guest OS type, allocated resources). It does not have visibility into per-process network connections inside the guest, which is the direct architectural consequence of not running inside the guest OS at all.

5Data Flow & Lifecycle

Follow a discovery project from start to finish. A migration team first deploys either the Discovery Agent on target servers or the Agentless Discovery Connector into their vCenter environment, both of which register themselves with the Discovery Service endpoint in AWS using credentials scoped for data submission only. Over the following weeks, collected performance and connection data streams into the Discovery Service data store, growing richer as more of the natural usage cycle of each application is captured — daily peaks, weekly batch jobs, month-end processing spikes.

Partway through this window, a migration analyst opens Migration Hub and begins reviewing the emerging dependency graph, grouping discovered servers into logical Applications as patterns become clear. This grouping is iterative — early in the discovery window, the graph may show incomplete or ambiguous connections that only resolve into a clear picture after a full business cycle has been observed. Once the team is satisfied with the data completeness, they export the inventory and utilization data to S3 as CSV, feed it into right-sizing logic (either AWS’s own recommendations or a third-party TCO tool), and use the finalized Application groupings to define migration waves — which servers move together, in what order, and on what timeline.

Why the Discovery Window Length Matters

A two-week discovery window will almost always miss monthly batch processes, quarter-end reporting jobs, or annual peak events (like retail Black Friday traffic patterns) — dependencies and load characteristics that only manifest on those cycles simply won’t appear in the collected data. Teams migrating business-critical systems commonly extend discovery to a full month or more specifically to capture at least one complete instance of every recurring business cycle before finalizing wave plans based on that data.

6Advantages, Disadvantages & Trade-offs

Advantages

  • Replaces guesswork and outdated documentation with measured, empirical data about real server usage and real dependencies.
  • No cost for the core discovery data collection itself, lowering the barrier to running thorough pre-migration assessment.
  • Outbound-only connectivity avoids the security review burden of opening new inbound paths into a production data center.
  • Direct integration with Migration Hub means discovery data flows straight into planning and tracking without manual data transfer between tools.

Disadvantages & Trade-offs

  • Agent-based discovery requires installing software on production servers, which can trigger lengthy change-control approval in regulated environments.
  • Agentless discovery, while zero-touch, produces coarser data that may be insufficient for precise right-sizing of high-impact workloads.
  • Meaningful dependency mapping requires a discovery window long enough to capture full business cycles, which can add weeks to a project timeline before planning can even begin.
  • The connection graph reflects only observed network traffic — dependencies that exist but happened not to fire during the discovery window (a disaster-recovery failover path, for instance) can be missed entirely.

7Performance & Scalability

Discovery Service is built to profile environments ranging from a few dozen servers to tens of thousands without requiring the migration team to provision or manage any collection infrastructure themselves beyond deploying the lightweight agent or connector. Because each agent operates independently, batching and transmitting its own data on its own schedule, the collection layer scales horizontally simply by installing more agents — there’s no shared collection bottleneck comparable to a single centralized polling server that would need capacity planning as the fleet grows.

The agentless connector, by contrast, does introduce a single point that scales less linearly: because it polls vCenter’s API on behalf of every VM it’s configured to discover, very large VMware environments (many thousands of VMs under one vCenter) can require tuning the connector’s polling interval or deploying multiple connector appliances across vCenter clusters to keep collection latency reasonable. This is a direct consequence of the architectural choice to collect from the hypervisor side rather than distributing collection load across each individual guest OS.

8High Availability & Reliability

Because both the agent and the agentless connector buffer data locally before transmission, transient network interruptions between the data center and AWS do not cause data loss for short outages — collected samples queue locally and transmit once connectivity resumes. This matters in practice because enterprise data centers undergoing migration planning are frequently also undergoing other network changes concurrently, and discovery data collection needs to tolerate that churn without silently losing weeks of collected history over a brief connectivity blip.

!
Reliability Caveat

Local buffering has limits — a prolonged outage (days, not minutes) can exceed the agent’s local buffer capacity, resulting in gaps in the collected time series for that period. Migration teams running discovery across an environment with known unreliable network segments should treat any reported utilization data around a known outage window with appropriate skepticism rather than assuming complete coverage.

On the AWS side, the discovery data store itself inherits the standard multi-AZ durability of the underlying storage service backing it, meaning data that has successfully reached AWS is not at meaningful risk of loss from an AWS-side infrastructure failure — the reliability risk in practice sits almost entirely on the collection side, inside the customer’s own network.

9Security

The agent and agentless connector authenticate to AWS using credentials scoped narrowly to data submission for the Discovery Service, following the principle that a component collecting sensitive internal network topology data should not also hold broad permissions to read or modify anything else in the AWS account. All data in transit between the collection layer and AWS uses encrypted connections, and collected data at rest inherits AWS’s standard encryption for the underlying storage.

Scoped Credentials

Submission-Only Access

Agent and connector credentials are limited to submitting discovery data, not to broader account access, limiting blast radius if a credential were ever compromised.

Data Sensitivity

Network Topology as Sensitive Data

The discovered connection graph itself is sensitive — it’s effectively a map of an organization’s internal application architecture — which is why access to Migration Hub’s dependency views is typically restricted to the migration team via IAM.

Outbound-Only

No Inbound Requirement

Because the collection layer only initiates outbound connections, security teams don’t need to approve any new inbound firewall rule into the production data center to enable discovery.

Data Retention

Bounded Retention Window

Collected discovery data is retained for a limited period by default, after which it’s automatically purged unless explicitly exported, limiting how long sensitive topology data persists unnecessarily.

10Deployment & Cloud Integration

In practice, discovery deployment is staged rather than all-at-once: teams typically pilot the agent or connector against a small, representative subset of servers first to validate that data is flowing correctly and that the collection mechanism doesn’t introduce any measurable performance overhead on production systems, before rolling it out across the full fleet slated for migration. This staged approach also gives the security and change-management teams a concrete, low-risk example to review before approving fleet-wide deployment.

1

Pilot Deployment

Agent or connector deployed to a small representative subset of servers to validate data flow and overhead before wider rollout.

2

Fleet-Wide Rollout

Deployment automation (configuration management tools, VM templates, or vCenter-wide connector configuration) extends collection to the full migration scope.

3

Extended Observation Window

Data collection runs long enough to capture at least one full business cycle, including monthly and quarter-end processes.

4

Export & Wave Planning

Finalized Application groupings and exported utilization data feed the actual migration wave plan and target instance sizing.

11Design Patterns & Anti-Patterns

PATTERN-01 Recommended
Pattern

Hybrid discovery: use the agentless connector for broad, low-friction coverage across the entire VMware estate, and layer in agent-based discovery selectively for the specific high-impact applications where precise right-sizing and process-level dependency data actually matter.

Why It Works

It balances discovery speed and low change-control friction against the need for high-fidelity data exactly where migration risk and cost decisions are highest, instead of forcing one collection method across an entire heterogeneous estate.

ANTI-PATTERN-01 Avoid
Anti-Pattern

Running discovery for only a few days and immediately finalizing application groupings and migration waves from that incomplete snapshot.

Why It Fails

Short windows systematically miss weekly, monthly, and cyclical dependencies, which surfaces as broken applications during cutover when a dependency nobody saw during discovery suddenly matters in production.

12Best Practices & Common Mistakes

Best PracticeCommon Mistake It Prevents
Run discovery for a full business cycle (typically 4+ weeks)Finalizing wave plans from a short window that misses monthly or quarterly dependencies
Layer agent-based discovery onto high-impact applicationsRight-sizing critical workloads using only coarse, hypervisor-level agentless data
Pilot on a small subset before fleet-wide rolloutDeploying an untested agent across thousands of production servers simultaneously
Review and manually validate application groupings before finalizing wavesTrusting automated grouping blindly and splitting tightly coupled servers across separate waves
Export and archive discovery data before the retention window expiresLosing valuable historical discovery data needed for a later migration phase or audit

13Real-World & Industry Examples

Large insurance and financial services firms undertaking data-center exit projects — moving entirely off owned data centers onto AWS within a fixed multi-year deadline — commonly cite Discovery Service’s dependency mapping as the tool that let them sequence thousands of servers into coherent migration waves rather than attempting the far riskier approach of migrating servers in isolation based on incomplete internal documentation. Healthcare organizations migrating clinical and administrative systems have described using extended discovery windows specifically to capture month-end and quarter-end billing cycle dependencies that would otherwise have been invisible in a standard multi-week assessment. Retail companies preparing for a full cloud migration ahead of a major shopping season have used discovery data to identify which server clusters experience genuine seasonal peak load, ensuring those specific applications receive more conservative right-sizing rather than applying a single generic sizing formula across the entire estate.

14FAQ

Q1Can I use both agent-based and agentless discovery in the same project?
Yes — this is the recommended hybrid pattern. Agentless discovery gives broad, low-friction coverage across an entire VMware estate, while agent-based discovery is layered on top for the specific servers where higher-fidelity utilization and process-level dependency data is worth the extra deployment effort.
Q2Does the Discovery Agent work on physical (non-virtualized) servers?
Yes, unlike the agentless connector (which depends on vCenter and therefore only covers virtualized VMware environments), the Discovery Agent installs directly on the OS and works on both physical and virtual servers, which is precisely why it’s necessary for discovering bare-metal infrastructure.
Q3What happens to discovered data after the retention window expires?
Data not explicitly exported before the retention window closes is purged from the Discovery Service data store, which is why teams running long migration projects routinely export snapshots to S3 for durable, longer-term reference rather than relying on the service’s own retention.
Q4Is the network dependency graph guaranteed to be complete?
No — it reflects only connections actually observed during the discovery window. Infrequent or cyclical connections that don’t fire during that window, including some disaster-recovery or failover paths, can be entirely absent from the graph, which is why manual validation of groupings by application owners remains an important step.

15Summary & Key Takeaways

Key Takeaways

  • Discovery Service replaces outdated documentation and guesswork with empirically measured server utilization and network dependency data.
  • Agent-based discovery sees inside the OS at process-level detail; agentless discovery sees only what vCenter exposes from the hypervisor — the trade-off is fidelity versus deployment friction.
  • The network connection graph is built from aggregated, repeated observation over time, not a single snapshot, which is why discovery windows need to span at least several weeks to capture full business cycles.
  • Servers are grouped into logical Applications inside Migration Hub, and migration waves are planned at that Application level, not per individual server.
  • All collection connectivity is outbound-only from the source environment, avoiding new inbound firewall exposure during a security-sensitive project.
  • Collected data has a bounded default retention window, making timely export to S3 essential for projects that need to retain discovery history longer term.
  • A hybrid deployment pattern — broad agentless coverage plus targeted agent-based depth on high-impact applications — balances discovery speed against the precision needed for accurate right-sizing decisions.