Embrace the Cloud Frontier: Empowering Agility with AWS Application Discovery Service
In this blog post, I provide a concise introduction to AWS Application Discovery Service, highlighting its ability to simplify and streamline your cloud migration process. With this service, you can gain a comprehensive understanding of your on-premises applications, their dependencies, and the underlying infrastructure.
Discover how AWS Application Discovery Service’s agent-based and agentless discovery methods enable you to collect vital data about your applications, operating systems, hardware, networking, and resource utilization. Uncover the power of visual representations and analysis tools to gain insights into application dependencies, optimize resource allocation, and identify opportunities for cost savings.
AWS Application Discovery Service
AWS Application Discovery Service is a robust solution offered by Amazon Web Services (AWS) that facilitates the process of understanding and migrating on-premises applications to the cloud. It provides organizations with a comprehensive set of tools to discover, analyze, and visualize their existing application inventory and dependencies, enabling them to make informed decisions and plan their migration strategy effectively.
One of the key features of AWS Application Discovery Service is its application discovery capability. By deploying lightweight agents on servers within the on-premises environment, the service collects valuable data about the applications running on those servers. It captures crucial information such as the operating system, hardware specifications, network dependencies, and resource utilization of each application. This comprehensive inventory of applications serves as a foundation for subsequent migration planning and decision-making.
Key Features:
- Application Discovery: The service utilizes lightweight agents deployed on servers in the on-premises environment to collect data on the applications and their dependencies. It discovers servers, applications, and their configuration details, helping organizations understand the complexity and interdependencies of their application landscape.
- Dependency Mapping: AWS Application Discovery Service maps the relationships and dependencies between applications, servers, and other infrastructure components. It generates visual representations, such as diagrams and graphs, that illustrate the connections and interactions between different elements of the IT environment. This information is invaluable for planning the migration of applications to the cloud, as it helps identify potential challenges and risks.
- Continuous Data Collection: The service provides continuous discovery and data collection, allowing organizations to keep track of changes in their environment. It captures real-time data about new applications, updates, and changes in dependencies, ensuring that the application inventory and mapping remain up to date.
- Application Profiling: AWS Application Discovery Service analyzes collected data to provide detailed insights into application performance and resource usage. It helps identify opportunities for optimization and cost savings by understanding how applications consume resources and how they can be better aligned with cloud infrastructure.
- Integration with Migration Services: The collected data from AWS Application Discovery Service can be seamlessly integrated with other AWS services, such as AWS Migration Hub, AWS Database Migration Service, or AWS Server Migration Service. This integration streamlines the migration process and enables organizations to create accurate migration plans, estimate costs, and execute migrations efficiently.
- Scalability and Security: The service is designed to handle large-scale environments, with the ability to collect data from thousands of servers and applications. It ensures data security by encrypting data in transit and at rest, providing organizations with the confidence to leverage the service in their migration journey.
Business Use Case:
- Cloud Migration Planning: AWS Application Discovery Service plays a crucial role in planning cloud migrations. By providing accurate application inventory and dependency mapping, organizations can assess the complexity of their environment and identify dependencies that need to be addressed before migration. This enables them to create migration strategies, estimate costs, and develop a prioritized roadmap for moving applications to the cloud.
- Application Portfolio Analysis: Organizations often have a large portfolio of applications running on-premises, and not all applications are suitable for migration to the cloud. AWS Application Discovery Service helps businesses analyze their portfolio and make informed decisions about which applications to migrate, retire, or replace. It provides insights into resource utilization, dependencies, and performance, enabling organizations to optimize their application landscape for the cloud.
- Cloud Cost Optimization: AWS Application Discovery Service’s application profiling capabilities help organizations identify opportunities for cost optimization in the cloud. Businesses can identify overprovisioned or underutilized resources by analyzing resource utilization and performance characteristics. This information allows them to rightsize resources and optimize costs, ensuring efficient resource allocation in the cloud environment.
- Datacenter Consolidation: For organizations with multiple data centers, AWS Application Discovery Service assists in consolidating and streamlining the infrastructure. By providing a comprehensive view of applications and their dependencies across data centers, organizations can identify opportunities for consolidation, reducing the overall footprint and costs while improving operational efficiency.
- Application Modernization: AWS Application Discovery Service aids in application modernization initiatives. By capturing detailed information about application dependencies and performance, organizations can assess the feasibility and impact of modernization efforts. This information helps them prioritize and plan application refactoring, containerization, or migration to cloud-native services.
- Compliance and Security Assessments: The service helps organizations assess their compliance and security posture by providing visibility into application configurations and dependencies. This information assists in identifying potential compliance risks or security vulnerabilities, enabling organizations to address them proactively and ensure a secure and compliant cloud environment.
- Capacity Planning: AWS Application Discovery Service provides valuable insights into resource utilization and the performance of applications. Organizations can leverage this information to effectively plan and allocate resources in the cloud, ensuring optimal performance, scalability, and cost-efficiency.
Method For Discovery and Collection:
AWS Application Discovery Service offers two methods for performing discovery and collecting data:
- Agent-Based Discovery: In the agent-based discovery method, lightweight software components called agents are installed on servers within the on-premises environment. These agents collect data about the applications, operating systems, hardware specifications, network dependencies, and resource utilization on the servers where they are deployed. The agents securely transmit the collected data to AWS Application Discovery Service for analysis and visualization. This method provides detailed and accurate information about the applications and their dependencies, enabling organizations to gain deep insights into their infrastructure.
- Agentless Discovery: In the agentless discovery method, AWS Application Discovery Service leverages existing infrastructure management tools, such as system management agents or configuration management databases (CMDBs), to collect data about the applications and infrastructure components. It integrates with these tools using APIs or connectors, extracting relevant data without requiring the installation of dedicated agents. This method enables organizations to leverage their existing infrastructure management systems to discover and collect data about their applications, simplifying the process and reducing the need for additional software deployments.
For more details and pre-requisites for both types of agents, follow https://docs.aws.amazon.com/application-discovery/latest/userguide/discovery-agent.html
Both agent-based and agentless discovery methods offer their own advantages and can be chosen based on the organization’s preferences, infrastructure complexity, and existing tooling. The selection of the appropriate discovery method depends on factors such as the level of control required, compatibility with existing systems, and the depth of data required for migration planning and analysis.
For more details kindly review “Compare Agentless Collector and Discovery Agent” section in https://docs.aws.amazon.com/application-discovery/latest/userguide/what-is-appdiscovery.html
Types of Discovery
VMware Discovery: AWS Application Discovery Service includes a VMware connector that enables organizations to perform the discovery of their VMware-based virtualized infrastructure. The VMware connector integrates with the VMware vCenter server and collects detailed information about the virtual machines (VMs), hosts, clusters, and other VMware infrastructure components. It captures data such as VM configurations, resource utilization, networking details, and storage information. This allows organizations to gain visibility into their VMware environment and understand the dependencies and relationships between VMs and underlying infrastructure. The collected data can be used for migration planning, optimization, and resource management within the AWS cloud environment.
Database Discovery: AWS Application Discovery Service also offers database discovery capabilities to identify and collect information about databases running in the on-premises environment. It supports popular database platforms such as Oracle, Microsoft SQL Server, MySQL, and PostgreSQL. By connecting to these databases, the service retrieves metadata and configuration details, including database schemas, tables, columns, and stored procedures. This enables organizations to gain insights into their database landscape, understand data dependencies, and plan the migration of databases to the AWS cloud. The database discovery feature helps organizations assess the complexity and effort involved in migrating their databases, facilitating a smooth and successful transition to managed database services or database instances in the AWS environment.
Process flow of AWS Application Discovery Service:
- Deployment: Install lightweight agents on servers in the on-premises environment or integrate with existing infrastructure management tools.
- Data Collection: The agents or integrations collect data about applications, operating systems, hardware, networking, and resource utilization.
- Data Transmission: Collected data is securely transmitted to AWS Application Discovery Service for analysis and processing.
- Discovery and Mapping: AWS Application Discovery Service analyzes the collected data to discover applications, dependencies, and relationships between infrastructure components. It generates visual representations, such as diagrams and graphs, to illustrate the discovered information.
- Profiling and Analysis: The service performs application profiling and analysis to gain insights into resource utilization, performance characteristics, and opportunities for optimization.
- Integration and Migration Planning: The collected data can be seamlessly integrated with other AWS services, such as AWS Migration Hub or database migration services, to plan and execute migration strategies effectively.
- Continuous Data Collection: AWS Application Discovery Service provides continuous discovery and data collection to capture changes in the environment, ensuring up-to-date information for ongoing management and decision-making.
- Reporting and Visualization: The service offers reporting and visualization capabilities to present the discovered information and insights in a clear and meaningful way.
- Cloud Migration and Optimization: Organizations leverage the collected data and insights to plan and execute cloud migration, optimize resource allocation, and modernize applications as needed.
- Security and Compliance: The service ensures data security during collection, transmission, and storage, helping organizations assess compliance and security risks associated with their applications and infrastructure.
Environment Details For This Walkthrough
1- We are running an Ubuntu 20.04 VM over Oracle virtualbox.
2- This VM has nginx. MySQL and postfix service running.
3- We are using an agent-based discovery approach.
Pre-requisites
1- Set the home region in AWS Migration Hub.
2- Verify the pre-requisites for the Discovery agent
3- A Set Of IAM Keys, which can be used for Agent initialization.
For that, we have 2 solutions supported by AWS
- Create an IAM user with credentials, along with the required permission. You can refer to the following link for this.
- You can use IAM Role Anywhere service for generating credentials with the required permission.
Refer to the link mentioned for implementation steps.
Let’s Get Started
1- Create an Instance on Oracle Virtual BOX
Use the following link to install Ubuntu on the virtual box
2- Download the Agent and Verification of Downloaded File
Use the following link for installation and verification of the agent
3- Extract the package and perform the installation:
Use the following link to know more about installation methods and options.
4- Agent Initialization:
Once you have downloaded the package, the next step you have to initialize your agent for aws application discovery service communication.
sudo bash install -r your-home_region -k aws-access-key-id -s aws-secret-access-key -c true -b true
5- Check the status of the Discovery agent
You can check the status of the Discovery agent, as you can see on the screenshot is still collecting the data. Kindly allow the agent sufficient time to collect the entire data.
6- Verify the On-Prem or Source Server Status in Migration Hub
Go to Migration Hub >>> Servers to view details of your server.
You can now review your application server details
As you can see, my application server is listed on AWS console.
Network Details
7- Stop the Discovery agent data collection
Once your entire or required data has been collected to AWS console, kindly stop the agent data collection process.
8- Review & explore discovered data
For the next steps, kindly review the following document:
Pricing:
AWS Application Discovery Service follows a usage-based pricing model. The pricing is based on the number of discovered servers and the data ingested by the service.
Here are the key pricing components for AWS Application Discovery Service:
- Server Discovery:
- Servers are classified into two types: active servers and inactive servers.
- Active servers are those discovered and actively sending data to the service.
- Inactive servers are previously discovered servers that are no longer sending data.
- You pay an hourly rate based on the maximum number of active servers discovered during the month.
2. Data Ingestion:
- Data ingestion refers to the amount of data collected and transmitted from the Discovery Agents to the service.
- You are charged based on the volume of data ingested, measured in gigabytes (GB).
3. Data Export:
- If you choose to export the discovered data from AWS Application Discovery Service, additional charges may apply based on the amount of data exported.
It’s important to note that AWS regularly updates and adjusts its pricing structure. Therefore, it is recommended to refer to the official AWS pricing documentation or contact AWS support for the most up-to-date and accurate pricing details specific to your region and usage requirements.
Recommendations for Using Aws Application Discovery Service:
Here are 5 key recommendations for leveraging AWS Application Discovery Service effectively:
- Plan Ahead: Before deploying AWS Application Discovery Service, define clear objectives and goals for your cloud migration or optimization project. Determine the scope of the discovery process, prioritize applications and infrastructure components, and establish a timeline for the project.
- Deploy Agents Strategically: Place the Discovery Agents strategically across your on-premises environment to ensure comprehensive data collection. Consider installing agents on servers that host critical applications, have complex dependencies, or represent a significant portion of your infrastructure. This targeted approach will provide valuable insights into your most important systems.
- Regularly Review and Update Agent Deployments: As your infrastructure evolves, periodically review and update the agent deployments. Ensure that new servers or applications are covered, and decommission agents from servers that are no longer active or relevant. This practice will keep your data collection up-to-date and accurate.
- Utilize Visualization and Analysis Tools: AWS Application Discovery Service offers visualization and analysis features to help you understand the discovered data better. Leverage these tools to gain insights into application dependencies, resource utilization, and opportunities for optimization. Use the generated visual representations to communicate findings effectively within your organization.
- Integrate with Other AWS Services: AWS Application Discovery Service seamlessly integrates with other AWS services, such as AWS Migration Hub and database migration services. Leverage these integrations to streamline your migration planning, execution, and resource optimization. The combined power of these services will simplify your cloud migration journey and maximize the benefits of AWS.
By following these recommendations, you can make the most of AWS Application Discovery Service and accelerate your cloud migration or optimization efforts.
Conclusion:
In conclusion, AWS Application Discovery Service empowers organizations to gain deep insights into their on-premises application landscape, dependencies, and performance characteristics. By leveraging this information, organizations can make well-informed decisions, develop robust migration strategies, optimize resource utilization, and minimize risks during their cloud migration journey.