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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Pilot Deployment
Agent or connector deployed to a small representative subset of servers to validate data flow and overhead before wider rollout.
Fleet-Wide Rollout
Deployment automation (configuration management tools, VM templates, or vCenter-wide connector configuration) extends collection to the full migration scope.
Extended Observation Window
Data collection runs long enough to capture at least one full business cycle, including monthly and quarter-end processes.
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
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
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 Practice | Common 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 applications | Right-sizing critical workloads using only coarse, hypervisor-level agentless data |
| Pilot on a small subset before fleet-wide rollout | Deploying an untested agent across thousands of production servers simultaneously |
| Review and manually validate application groupings before finalizing waves | Trusting automated grouping blindly and splitting tightly coupled servers across separate waves |
| Export and archive discovery data before the retention window expires | Losing 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
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.



