Which would enable the collection of this data MOST cost effectively?
Use AWS Application Discovery Service and deploy the data collection agent to each virtual machine in the data center.
Configure the Amazon CloudWatch agent on all servers within the local environment and publish metrics to Amazon CloudWatch Logs.
Use AWS Application Discovery Service and enable agentless discovery in the existing virtualization environment.
Enable AWS Application Discovery Service in the AWS Management Console and configure the corporate firewall to allow scans over a VPN.
Explanations:
AWS Application Discovery Service with the agent is the most comprehensive and cost-effective solution for this scenario. The agent collects detailed system performance information (CPU, memory, disk utilization), a list of running processes, and network connections. This provides the necessary data for right-sizing EC2 instances and mapping dependencies.
The CloudWatch agent primarily collects performance metrics but does not provide details about running processes or network connections. While you could potentially collect some network information through custom scripts and logs, it would require significant configuration and would not be as comprehensive as the Application Discovery Service agent.
Agentless discovery with AWS Application Discovery Service is primarily for VMware vCenter environments and collects basic inventory information, such as VM configuration and resource allocation. It does not collect detailed performance metrics, process lists, or network connections. Therefore, it does not meet all the requirements.
Enabling AWS Application Discovery Service in the console and configuring the firewall for scans is not a valid approach for discovering on-premises servers. This configuration is for discovering resources within an AWS environment. Discovery of on-premises resources requires either the agent or agentless discovery (for VMware vCenter).