Answers: <p>I created such a tool, it is called <strong>AWS Inventory</strong> and eventually, it will cover all available resources in your account. While it is still a work in progress, should be very easy to add the items you might be missing just by adding the API name to a list.</p>
  
  <p>The tool is just a single HTML file that uses <code>aws-sdk.js</code> to query all the different <code>list...</code> and <code>describe...</code> APIs of CORS-enabled services.</p>
  
  <p>The project is MIT license and open source at <a href="https://github.com/devops-israel/aws-inventory" rel="nofollow noreferrer">https://github.com/devops-israel/aws-inventory</a>.</p>
  
Answers: CC BY-SA 3.0
Answers: 2018-02-11T12:01:19.737Z
Answers: 2018-02-11T12:01:19.737Z
Answers: Evgeny Zislis
Answers: <p>If you wish to do it purely with AWS provided tools, try this:</p>
  
  <ol>
  <li>figure out a tagging scheme that works for you</li>
  <li>tag all the resources you provision, make sure nothing is left untagged</li>
  <li>for stuff you provision outside of the terraform and are not always tagged correctly by your tagging scheme, use AWS Config service to enforce the tagging scheme</li>
  </ol>
  
  <p>After you have all of your resources tagged, use AWS Budgets to monitor and tracked down changes in you spend and get alerts when it crosses the budget threshold you define.</p>
  
  <p>Also, create and periodically review some reports within the AWS Costs Explorer to find daily changes in region spend / service spend / <em>etc</em>.</p>
  
  <p>Using a strict and meaningful tagging scheme helps maintain a healthy account with less money going to waste.</p>
  
Answers: CC BY-SA 3.0
Answers: 2018-02-07T14:57:11.067Z
Answers: The issue with tagging is. You have to do it for everything you need. Obviously, I have my critical tags present. Every now and then something new comes along and I have to change the tagging scheme as the KPIs change. It's not really a scalable solution.
Answers: Veer Abheek Singh Manhas
Answers: CC BY-SA 3.0
Answers: 2018-02-08T15:11:57.450Z
Answers: it is if you automate all of your tagging
  have a look at graffiti-monkey / similar tools that help deploy tags / ensure a tagging scheme
Answers: tolib
Answers: CC BY-SA 4.0
Answers: 2018-02-06T16:22:50.077Z
Answers: 2019-07-03T16:46:13.413Z
Answers: 2019-07-03T16:46:13.413Z
Answers: tolib
Answers: <p>That would be one way of doing, using just the AWS console. </p>
  
  <p>I have been using <a href="https://totalcloud.io" rel="nofollow noreferrer">TotalCloud</a> for many other things but this is very easily possible on the platform. It seems to be free for now. I have been using it with two large AWS accounts for 3 months now.</p>
  
  <p>It shows everything in a single view with visual topological view which makes it fairly easy to understand the relationships between resources/services. The grouping can definitely help you find the resources as needed.  </p>
  
Answers: CC BY-SA 3.0
Answers: 2018-02-13T13:59:35.990Z
Answers: tried it, pretty awful.
Answers: Evgeny Zislis
Answers: CC BY-SA 4.0
Answers: 2018-06-17T03:30:22.743Z
Answers: @Evgeny Mind adding why? Seems like a glowing recommendation above, and the answer's been given a bounty, so it'd be useful to see why it didn't work for you to help others make an informed decision.
Answers: Tim Malone
Answers: CC BY-SA 4.0
Answers: 2018-06-21T22:40:51.750Z
Answers: The "why" is that it is very low-quality software. Horribly broken. Much worse than the AWS console. Trying to "see" what you actually have in AWS based on using this software is a futile exercise. Sorry, some software is just no good.
Answers: Evgeny Zislis
Answers: CC BY-SA 4.0
Answers: 2023-11-27T13:28:43.143Z
Answers: TotalCloud seems to be down now. On my side, I'm building a product for Waste and Cost Awareness for AWS. It's called unusd.cloud.
Answers: zoph
Answers: CC BY-SA 3.0
Answers: 2018-02-07T14:26:19.357Z
Answers: 2018-02-07T14:45:18.827Z
Answers: 2018-02-07T14:45:18.827Z
Answers: xachela
Answers: <p>There are a few ways to approach deleting unused resources, perhaps tagging items that are part of some trusted or known group, as some have suggested here and then manually monitoring for resources that isn’t tagged appropriately. </p>
  
  <p>You could then extend this to a python script that you run every so often to ID and delete these resources. </p>
  
  <p>However, there are other (potentially less intensive) options. </p>
  
  <p>1) AWS already provide a way for us to monitor our resources, identify unused ones and terminate them with <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html" rel="noreferrer">CloudWatch</a> alarms. You can start by configuring some alarming based on some set of checks that you might already be doing manually. Once you are comfortable that the alarming is accurate, you can add a termination step to the chain.</p>
  
  <p>2) Alternatively, our friends at Netflix made this chill tool called <a href="https://medium.com/netflix-techblog/janitor-monkey-keeping-the-cloud-tidy-and-clean-d517ad74d648?source=linkShare-2dbc3eb8d7f6-1518252522" rel="noreferrer">JanitorMonkey</a> to monitor and delete unused Instances, EBS Volumes, EBS Snapshots and Autoscaling groups. It is part of the original so-called “Simian Army” open source pack from Netflix and written in Java. Even thought it’s a few years old now, this thing is highly configurable and well worth a look. </p>
  
  <p>Both options here allow you to configure warnings and business rules that fit your needs. Additionally, using CloudWatch might also be a good opportunity to learn more about AWS logs and anomaly identification. </p>
  
Answers: CC BY-SA 4.0
Answers: 2019-09-20T07:39:49.683Z
Answers: Janitor monkey seems to be retired.
Answers: silverdagger
Answers: CC BY-SA 3.0
Answers: 2018-02-10T10:34:09.767Z
Answers: 2018-02-10T10:34:09.767Z
Answers: llorrac
Body: <p>I have been using AWS for a while now. I always have the difficulty tracking AWS resources and how they are interconnected. Obviously, I am using Terraform but still, there is always ad-hoc operations that cut down my visibility.</p>
  
  <p>Since I have been charged multiple times for resources/services that are present but not used by me.</p>
  
  <p>Unused services include resources that are not pointing to other services but present in the AWS environment.</p>
  
  <p>Tools suggestions are also welcome.</p>
  
Comments: CC BY-SA 3.0
Comments: 2018-02-06T16:09:41.937Z
Comments: It's not clear what you mean by unused resources. Do you mean resources that are stopped (i.e. not being utilized)? Resources that are running, but not performing the operations that you need? An active EBS volume not associated with any EC2 instance or an ELB not pointing to any instances?
Comments: Preston Martin
Comments: CC BY-SA 3.0
Comments: 2018-02-07T10:40:40.940Z
Comments: I would suggest to use Cloudyn here as it is made for what you are looking for.
Comments: Alok Singh
Comments: CC BY-SA 3.0
Comments: 2018-02-07T11:32:16.340Z
Comments: @PrestonM I am referring to both. Primarily to ELBs that are not pointing to any instance but also resources that are stopped.
Comments: Veer Abheek Singh Manhas
Tags: <amazon-web-services><amazon-cloudwatch>
Title: How to track unused resources in AWS?
UserDisplayName: Veer Abheek Singh Manhas
ThreadText: # How to track unused resources in AWS?
  
  (Asked by: username_0 on 2018-02-06)
  
  I have been using AWS for a while now. I always have the difficulty tracking AWS resources and how they are interconnected. Obviously, I am using Terraform but still, there is always ad-hoc operations that cut down my visibility.
  
  Since I have been charged multiple times for resources/services that are present but not used by me.
  
  Unused services include resources that are not pointing to other services but present in the AWS environment.
  
  Tools suggestions are also welcome.
  
  **Tags:** amazon-web-services, amazon-cloudwatch
  
  > **Comments:**
  > **username_1**: It's not clear what you mean by unused resources. Do you mean resources that are stopped (i.e. not being utilized)? Resources that are running, but not performing the operations that you need? An active EBS volume not associated with any EC2 instance or an ELB not pointing to any instances?  
  > **username_2**: I would suggest to use Cloudyn here as it is made for what you are looking for.  
  > **username_0**: @PrestonM I am referring to both. Primarily to ELBs that are not pointing to any instance but also resources that are stopped.  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_8 on 2018-02-10. Score: 7 | Accepted answer
  
  There are a few ways to approach deleting unused resources, perhaps tagging items that are part of some trusted or known group, as some have suggested here and then manually monitoring for resources that isn’t tagged appropriately.
  
  You could then extend this to a python script that you run every so often to ID and delete these resources.
  
  However, there are other (potentially less intensive) options.
  
  1) AWS already provide a way for us to monitor our resources, identify unused ones and terminate them with [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html) alarms. You can start by configuring some alarming based on some set of checks that you might already be doing manually. Once you are comfortable that the alarming is accurate, you can add a termination step to the chain.
  
  2) Alternatively, our friends at Netflix made this chill tool called [JanitorMonkey](https://medium.com/netflix-techblog/janitor-monkey-keeping-the-cloud-tidy-and-clean-d517ad74d648?source=linkShare-2dbc3eb8d7f6-1518252522) to monitor and delete unused Instances, EBS Volumes, EBS Snapshots and Autoscaling groups. It is part of the original so-called “Simian Army” open source pack from Netflix and written in Java. Even thought it’s a few years old now, this thing is highly configurable and well worth a look.
  
  Both options here allow you to configure warnings and business rules that fit your needs. Additionally, using CloudWatch might also be a good opportunity to learn more about AWS logs and anomaly identification.
  
  > **Comments:**
  > **username_9**: Janitor monkey seems to be retired.  
  
  ---
  
  ### Answer by username_3 on 2018-02-11. Score: 3
  
  I created such a tool, it is called **AWS Inventory** and eventually, it will cover all available resources in your account. While it is still a work in progress, should be very easy to add the items you might be missing just by adding the API name to a list.
  
  The tool is just a single HTML file that uses `aws-sdk.js` to query all the different `list...` and `describe...` APIs of CORS-enabled services.
  
  The project is MIT license and open source at <https://github.com/devops-israel/aws-inventory>.
  
  
  ---
  
  ### Answer by username_4 on 2018-02-06. Score: 3
  
  If you wish to do it purely with AWS provided tools, try this:
  
  1. figure out a tagging scheme that works for you
  2. tag all the resources you provision, make sure nothing is left untagged
  3. for stuff you provision outside of the terraform and are not always tagged correctly by your tagging scheme, use AWS Config service to enforce the tagging scheme
  
  After you have all of your resources tagged, use AWS Budgets to monitor and tracked down changes in you spend and get alerts when it crosses the budget threshold you define.
  
  Also, create and periodically review some reports within the AWS Costs Explorer to find daily changes in region spend / service spend / *etc*.
  
  Using a strict and meaningful tagging scheme helps maintain a healthy account with less money going to waste.
  
  > **Comments:**
  > **username_0**: The issue with tagging is. You have to do it for everything you need. Obviously, I have my critical tags present. Every now and then something new comes along and I have to change the tagging scheme as the KPIs change. It's not really a scalable solution.  
  > **username_4**: it is if you automate all of your tagging have a look at graffiti-monkey / similar tools that help deploy tags / ensure a tagging scheme  
  
  ---
  
  ### Answer by username_5 on 2018-02-07. Score: 2
  
  That would be one way of doing, using just the AWS console.
  
  I have been using [TotalCloud](https://totalcloud.io) for many other things but this is very easily possible on the platform. It seems to be free for now. I have been using it with two large AWS accounts for 3 months now.
  
  It shows everything in a single view with visual topological view which makes it fairly easy to understand the relationships between resources/services. The grouping can definitely help you find the resources as needed.
  
  > **Comments:**
  > **username_3**: tried it, pretty awful.  
  > **username_6**: @username_3 Mind adding why? Seems like a glowing recommendation above, and the answer's been given a bounty, so it'd be useful to see why it didn't work for you to help others make an informed decision.  
  > **username_3**: The "why" is that it is very low-quality software. Horribly broken. Much worse than the AWS console. Trying to "see" what you actually have in AWS based on using this software is a futile exercise. Sorry, some software is just no good.  
  > **username_7**: TotalCloud seems to be down now. On my side, I'm building a product for Waste and Cost Awareness for AWS. It's called unusd.cloud.  
  
  ---
  
  