Overview
Workload Discovery on AWS (formerly called AWS Perspective) is a tool to visualize AWS Cloud workloads. Use this AWS Solution to build, customize, and share detailed architecture diagrams of your workloads based on live data from AWS. The solution maintains an inventory of the AWS resources across your accounts and AWS Regions, mapping relationships between them, and displaying them in a web user interface (UI).
The solution also comes with a cost query builder that lets you locate AWS resources and services that may have incurred a cost. The estimated cost data is automatically calculated for the time period specified and displays on your architecture diagrams. You can generate a cost report for your architecture diagrams that contains an overview of the estimated cost and export them as CSV.
The image to the right is a sample architecture diagram generated by the solution.
Benefits
The search feature lets you use basic information, such as resource name, tag name, or IP address to locate resources of interest.
Start building your architecture diagrams by selecting a resource in the web UI, which includes a directory that contains all the resources the solution has discovered.
Save your architecture diagram to revisit later or share it with other solutions users. To use the diagrams outside of the solution, you can export to PNG, JSON, CSV, or draw.io.
Technical details
You can automatically deploy this architecture using the implementation guide and the accompanying AWS CloudFormation template.
Step 1
HTTP Strict-Transport-Security (HSTS) adds security headers to each response from the Amazon CloudFront distribution.
Step 2
An Amazon Simple Storage Service (Amazon S3) bucket hosts the web UI, which is distributed with CloudFront. Amazon Cognito authenticates user access to the web UI.
Step 3
AWS WAF protects the AWS AppSync API from common exploits and bots that can affect availability, compromise security, or consume excessive resources.
Step 4
AWS AppSync endpoints allow the web UI component to request resource relationship data, query costs, import new AWS Regions, and update preferences. AWS AppSync also allows the discovery component to store persistent data in the solution’s databases.
Step 5
AWS AppSync uses JSON Web Tokens (JWTs) provisioned by Cognito to authenticate each request.
Step 6
The Settings AWS Lambda function persists imported Regions and other configurations to Amazon DynamoDB.
Step 7
The solution deploys AWS Amplify and an S3 bucket as the storage management component to store user preferences and saved architecture diagrams.
Step 8
The data component uses the Gremlin Resolver Lambda function to query and return data from an Amazon Neptune database.
Step 9
The data component uses the Search Resolver Lambda function to query and persist resource data into an Amazon OpenSearch Service domain.
Step 10
The Cost Lambda function uses Amazon Athena to query AWS Cost and Usage Reports (AWS CUR) to provide estimated cost data to the web UI.
Step 11
Athena runs queries on CUR.
Step 12
CUR delivers the reports to the CostAndUsageReportBucket S3 bucket.
Step 13
The Cost Lambda function stores the Athena results in the AthenaResultsBucket S3 bucket.
Step 14
AWS CodeBuild builds the discovery component container image in the image deployment component.
Step 15
Amazon Elastic Container Registry (Amazon ECR) contains a Docker image provided by the image deployment component.
Step 16
Amazon Elastic Container Service (Amazon ECS) manages the AWS Fargate task and provides the configuration required to run the task. Fargate runs a container task every 15 minutes to refresh inventory and resource data.
Step 17
AWS Config and AWS SDK for JavaScript calls help the discovery component maintain an inventory of resource data from imported Regions, then store its results in the data component.
Step 18
The Fargate task persists the results of the Config and SDK for JavaScript calls into a Neptune database and an OpenSearch Service domain with API calls to the AWS AppSync API.
Related content
This course provides an introduction to AWS Config and the process of recording and normalizing configuration changes within your AWS account. We also cover use cases and configuration, and we give a brief demonstration of the service.
This course introduces you to Amazon Neptune and its core features and capabilities. The course describes how this service integrates with other AWS services, introduces important terminology and technology concepts, and includes a demonstration of the service.
This course provides a basic overview of how AWS CloudFormation can be used to automate resource provision. It also covers use cases where CloudFormation repeatedly and predictably creates groups of resources. The course includes a demonstration in designing a CloudFormation template for resource provisioning is also covered.
- Publish Date