Define application boundary using Amazon resources tags in Amazon DevOps Guru

海外精选
海外精选的内容汇集了全球优质的亚马逊云科技相关技术内容。同时,内容中提到的“AWS” 是 “Amazon Web Services” 的缩写,在此网站不作为商标展示。
0
0
{"value":"[Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) is an ML powered service that makes it easy to improve an application’s operational performance and availability. By analyzing application metrics, logs, events and traces, DevOps Guru identifies behaviors that deviate from normal operating patterns and creates insights that you can use to improve your application.\n\nAt re:Invent 2021, we announced a new tagging feature in DevOps Guru. This feature allows you to organize resources into logical applications, using [AWS resources tags](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) so that you can have more control over how applications are defined. Well-defined applications enable DevOps Guru to group related anomalies together to better identify problems and to provide more meaningful recommendations. A tag is a label consisting of a user-defined key and a value. Previously, the coverage boundary consisted of an entire AWS account or specific resources defined by [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) stacks.\n### **Getting Started**\n#### **Define Resources to analyze using AWS resources tags**\nAn AWS resource tag is a label that consists of a *key* and a *value*. A key-value pair can create useful grouping of resources into different applications. For DevOps Guru, you specify one tag key across all your applications. Resources with the same tag value are grouped together into a logical application. The tag key needs to be prefixed with the string “devops-guru-”. Note that the prefix string is not case sensitive. The tag value can be any value you define. The next section describes how you can use tag values to define coverage boundary for your applications.\n\nYou can add tags to your resources using the AWS service to which each resource belongs, or use the [Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html). To manage tags using your resource’s service, you can use the console, AWS CLI or SDK of the service.\n#### **Define Application boundary using AWS resources tag values**\n\nFor DevOps Guru, we define an application as a group of instantiated AWS resources (Amazon EC2, AWS Lambda, Amazon RDS, etc.) that your workload is running on. You assign the same tag value to all resources that make up your application. DevOps Guru will analyze each resource separately, and will also look at metrics and events across all resources in your application to detect anomalies and generate insights. For example, see the diagram below.\n\n![image.png](https://dev-media.amazoncloud.cn/9ec2261e7b754d8980f4de3bda3b68d0_image.png)\n\nApp 1 consists of 2 different resources for a database application – an EC2 instance and a database instance. Assigning the same tag value of *RDS* to both of the resources. I have another serverless application in App 2, which has a Lambda function and a DynamoDB instance. I assign a different tag value of *serverless-app-1* to both of the App 2 resources.\n#### **Example Test Scenario**\nI am going to create a test scenario with an application server running in an EC2 instance. The application server is connected to an Aurora MySQL-Compatible database instance. I will instrument my application to introduce a misbehaving SQL query to create a performance anomaly.\n\nIn my example below, I tagged my EC2 instance and database instance with the tag value of *RDS*. I am interested in detecting performance issues in my Database instance and I want DevOps Guru to provide recommendations to fix those issues.\n#### **Manage DevOpsGuru Analysis Coverage**\nNext, I define the coverage boundary in DevOps Guru Console. In the Settings options in navigation pane, I select Analyzed resources and choose Edit.\n\n![image.png](https://dev-media.amazoncloud.cn/65596863588241c2964c4084d3e3ac4a_image.png)\n\nNext, I select the “devops-guru-applications” as tag key from the dropdown menu. I am going to select RDS as the tag value, since I am interested in looking at performance issues in my Amazon Aurora database instance.\n\n![image.png](https://dev-media.amazoncloud.cn/29984c1e18594e61983a35fa43d4b5cc_image.png)\n\n### **Filter insights by tags**\nNext, I created my test scenario. Once DevOps Guru generated an insight, I am able to filter the insights by tag key or tag values. To display insights for my database instance, I select “Affected applications” from the search menu bar on insights page as shown below:\n\n![image.png](https://dev-media.amazoncloud.cn/4e03d0bc59be4757868195809ee3f7f6_image.png)\n\nNext, I select “Affected applications” as RDS in the above dropdown menu. Below is the Insight overview screen that gets displayed.\n\n![image.png](https://dev-media.amazoncloud.cn/f22edb95e05b4acaa174f35143e4a1ec_image.png)\n\nThe insights generated by DevOps Guru for my Amazon Aurora instances are enabled by [Amazon DevOps Guru for RDS](https://aws.amazon.com/devops-guru/features/devops-guru-for-rds/), a new feature we announced at re:Invent 2021. It allows developers to easily detect, diagnose, and resolve performance and operational issues in [Amazon Aurora](https://aws.amazon.com/rds/aurora/). For more information on Amazon DevOps Guru for RDS, see a related [news blog](https://aws.amazon.com/blogs/aws/new-amazon-devops-guru-for-rds-to-detect-diagnose-and-resolve-amazon-aurora-related-issues-using-ml/) written by my colleague, Marcia Villalba.\n\nThe insight summary indicates that there is high DB load, ten times above baseline. DevOps Guru for RDS uses anomaly detection on the [database load](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html) (DB load) performance metric to detect issues. DB load is measured in units of Average Active Sessions (AAS). DB load measures the level of activity in your database, making it a great metric to understand the health of your database.\n\nIf you continue scrolling on the DevOps Guru for RDS analysis page, you can discover the cause for the problem and some recommendations to fix it. DevOps Guru for RDS detected there was a high load of wait events, and one SQL query was found to require further investigation. You can even see the exact SQL query if you click on the **SQL digest ID**s. The insight’s analysis and recommendation section is full of information on how to investigate further and fix the issue.\n\nThe easy-to-understand recommendations made by DevOps Guru for RDS means that as a DevOps engineer, you do not need to rely on a database administrator (DBA) or use any third party tools.\n\n![image.png](https://dev-media.amazoncloud.cn/6e90aa2c77e34754bc48adc8b00513d7_image.png)\n\n### **Conclusion**\nAWS resources tags give you one more way to specify the resource analysis coverage boundary, in addition to existing methods of an entire AWS account or specific AWS CloudFormation stacks. AWS tags allows you to better isolate the applications you want DevOps Guru to analyze. In this post, we used AWS tags to define the coverage boundary for a database application. We reduced unrelated and unnecessary resource coverage from our analysis, thereby controlling our resource analysis costs. Visit the DevOps Guru documentation to learn more about how to [use tags to identify resources in your DevOps Guru applications](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-resource-tags.html).\n### **About the author**\n\n![image.png](https://dev-media.amazoncloud.cn/504b42962b9b45e990af4dd9973049a5_image.png)\n\n**Suneel Joshi**\nSuneel is an Enterprise Support Lead at Amazon Web Services. He provides advocacy and guidance to customers in their cloud journey as they plan and build cloud solutions. He is a DevOps and Machine Learning enthusiast. Among other things, he helps customers build intelligence in their applications using AI services.","render":"<p><a href=\"https://aws.amazon.com/devops-guru/\" target=\"_blank\">Amazon DevOps Guru</a> is an ML powered service that makes it easy to improve an application’s operational performance and availability. By analyzing application metrics, logs, events and traces, DevOps Guru identifies behaviors that deviate from normal operating patterns and creates insights that you can use to improve your application.</p>\n<p>At re:Invent 2021, we announced a new tagging feature in DevOps Guru. This feature allows you to organize resources into logical applications, using <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html\" target=\"_blank\">AWS resources tags</a> so that you can have more control over how applications are defined. Well-defined applications enable DevOps Guru to group related anomalies together to better identify problems and to provide more meaningful recommendations. A tag is a label consisting of a user-defined key and a value. Previously, the coverage boundary consisted of an entire AWS account or specific resources defined by <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html\" target=\"_blank\">AWS CloudFormation</a> stacks.</p>\n<h3><a id=\"Getting_Started_3\"></a><strong>Getting Started</strong></h3>\n<h4><a id=\"Define_Resources_to_analyze_using_AWS_resources_tags_4\"></a><strong>Define Resources to analyze using AWS resources tags</strong></h4>\n<p>An AWS resource tag is a label that consists of a <em>key</em> and a <em>value</em>. A key-value pair can create useful grouping of resources into different applications. For DevOps Guru, you specify one tag key across all your applications. Resources with the same tag value are grouped together into a logical application. The tag key needs to be prefixed with the string “devops-guru-”. Note that the prefix string is not case sensitive. The tag value can be any value you define. The next section describes how you can use tag values to define coverage boundary for your applications.</p>\n<p>You can add tags to your resources using the AWS service to which each resource belongs, or use the <a href=\"https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html\" target=\"_blank\">Tag Editor</a>. To manage tags using your resource’s service, you can use the console, AWS CLI or SDK of the service.</p>\n<h4><a id=\"Define_Application_boundary_using_AWS_resources_tag_values_8\"></a><strong>Define Application boundary using AWS resources tag values</strong></h4>\n<p>For DevOps Guru, we define an application as a group of instantiated AWS resources (Amazon EC2, AWS Lambda, Amazon RDS, etc.) that your workload is running on. You assign the same tag value to all resources that make up your application. DevOps Guru will analyze each resource separately, and will also look at metrics and events across all resources in your application to detect anomalies and generate insights. For example, see the diagram below.</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/9ec2261e7b754d8980f4de3bda3b68d0_image.png\" alt=\"image.png\" /></p>\n<p>App 1 consists of 2 different resources for a database application – an EC2 instance and a database instance. Assigning the same tag value of <em>RDS</em> to both of the resources. I have another serverless application in App 2, which has a Lambda function and a DynamoDB instance. I assign a different tag value of <em>serverless-app-1</em> to both of the App 2 resources.</p>\n<h4><a id=\"Example_Test_Scenario_15\"></a><strong>Example Test Scenario</strong></h4>\n<p>I am going to create a test scenario with an application server running in an EC2 instance. The application server is connected to an Aurora MySQL-Compatible database instance. I will instrument my application to introduce a misbehaving SQL query to create a performance anomaly.</p>\n<p>In my example below, I tagged my EC2 instance and database instance with the tag value of <em>RDS</em>. I am interested in detecting performance issues in my Database instance and I want DevOps Guru to provide recommendations to fix those issues.</p>\n<h4><a id=\"Manage_DevOpsGuru_Analysis_Coverage_19\"></a><strong>Manage DevOpsGuru Analysis Coverage</strong></h4>\n<p>Next, I define the coverage boundary in DevOps Guru Console. In the Settings options in navigation pane, I select Analyzed resources and choose Edit.</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/65596863588241c2964c4084d3e3ac4a_image.png\" alt=\"image.png\" /></p>\n<p>Next, I select the “devops-guru-applications” as tag key from the dropdown menu. I am going to select RDS as the tag value, since I am interested in looking at performance issues in my Amazon Aurora database instance.</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/29984c1e18594e61983a35fa43d4b5cc_image.png\" alt=\"image.png\" /></p>\n<h3><a id=\"Filter_insights_by_tags_28\"></a><strong>Filter insights by tags</strong></h3>\n<p>Next, I created my test scenario. Once DevOps Guru generated an insight, I am able to filter the insights by tag key or tag values. To display insights for my database instance, I select “Affected applications” from the search menu bar on insights page as shown below:</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/4e03d0bc59be4757868195809ee3f7f6_image.png\" alt=\"image.png\" /></p>\n<p>Next, I select “Affected applications” as RDS in the above dropdown menu. Below is the Insight overview screen that gets displayed.</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/f22edb95e05b4acaa174f35143e4a1ec_image.png\" alt=\"image.png\" /></p>\n<p>The insights generated by DevOps Guru for my Amazon Aurora instances are enabled by <a href=\"https://aws.amazon.com/devops-guru/features/devops-guru-for-rds/\" target=\"_blank\">Amazon DevOps Guru for RDS</a>, a new feature we announced at re:Invent 2021. It allows developers to easily detect, diagnose, and resolve performance and operational issues in <a href=\"https://aws.amazon.com/rds/aurora/\" target=\"_blank\">Amazon Aurora</a>. For more information on Amazon DevOps Guru for RDS, see a related <a href=\"https://aws.amazon.com/blogs/aws/new-amazon-devops-guru-for-rds-to-detect-diagnose-and-resolve-amazon-aurora-related-issues-using-ml/\" target=\"_blank\">news blog</a> written by my colleague, Marcia Villalba.</p>\n<p>The insight summary indicates that there is high DB load, ten times above baseline. DevOps Guru for RDS uses anomaly detection on the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html\" target=\"_blank\">database load</a> (DB load) performance metric to detect issues. DB load is measured in units of Average Active Sessions (AAS). DB load measures the level of activity in your database, making it a great metric to understand the health of your database.</p>\n<p>If you continue scrolling on the DevOps Guru for RDS analysis page, you can discover the cause for the problem and some recommendations to fix it. DevOps Guru for RDS detected there was a high load of wait events, and one SQL query was found to require further investigation. You can even see the exact SQL query if you click on the <strong>SQL digest ID</strong>s. The insight’s analysis and recommendation section is full of information on how to investigate further and fix the issue.</p>\n<p>The easy-to-understand recommendations made by DevOps Guru for RDS means that as a DevOps engineer, you do not need to rely on a database administrator (DBA) or use any third party tools.</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/6e90aa2c77e34754bc48adc8b00513d7_image.png\" alt=\"image.png\" /></p>\n<h3><a id=\"Conclusion_47\"></a><strong>Conclusion</strong></h3>\n<p>AWS resources tags give you one more way to specify the resource analysis coverage boundary, in addition to existing methods of an entire AWS account or specific AWS CloudFormation stacks. AWS tags allows you to better isolate the applications you want DevOps Guru to analyze. In this post, we used AWS tags to define the coverage boundary for a database application. We reduced unrelated and unnecessary resource coverage from our analysis, thereby controlling our resource analysis costs. Visit the DevOps Guru documentation to learn more about how to <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-resource-tags.html\" target=\"_blank\">use tags to identify resources in your DevOps Guru applications</a>.</p>\n<h3><a id=\"About_the_author_49\"></a><strong>About the author</strong></h3>\n<p><img src=\"https://dev-media.amazoncloud.cn/504b42962b9b45e990af4dd9973049a5_image.png\" alt=\"image.png\" /></p>\n<p><strong>Suneel Joshi</strong><br />\nSuneel is an Enterprise Support Lead at Amazon Web Services. He provides advocacy and guidance to customers in their cloud journey as they plan and build cloud solutions. He is a DevOps and Machine Learning enthusiast. Among other things, he helps customers build intelligence in their applications using AI services.</p>\n"}
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭
contact-us