https://docs.aws.amazon.com/organizations/latest/userguide/o...
I do agree it is still useful in the capacity you described.
https://docs.aws.amazon.com/organizations/latest/userguide/o...
The big thing you need is to be comfortable breaking anything you use until someone can update it (maybe forking a third-party IaC project or vendor stack, etc.) so it’s definitely less friction to remediate afterwards.
SCPs are conceptually very simple and easy to reason about. Not so with tag policies (and, I guess, "backup policies" or "Artificial Intelligence (AI) services opt-out policies", which are both new since the last time I looked at this documentation).
[0]
For what services can't you do this? I recently made a script that iterated over all DynamoDB Tables, Lambdas, SQS, Kinesis Firehose/Analytics/Streams, S3 Buckets, etc. and added a tag to track cost on the individual services.
The only thing I can think of is that you will not have any data before the data you added the tag on.
- launch instance A
- create a new CAT and activate it in the Billing console
- apply CAT to instance A
- get no cost data back for that instance in Cost Explorer filtering on that CAT
- terminate instance A
- launch instance B
- apply CAT to instance B
- get cost data back for that instance in Cost Explorer filtering on that CAT
It was explained to me by AWS support that this is in fact how it works, after I opened a case into why I wasn't getting full data back for some legacy stuff. So for any new account I would say that your tagging scheme should get built first, before infrastructure or anything else.Not only do tags fit well into already existing work flows (CI/CD, policy), cron expressions give freedom to devs/sysadmins to choose whichever schedule they need. Also, this solution allows a central IT team to easily query and calculate duty cycle of any tagged resource, and relate that calculation to money saved.
I suggest using cron expression tagging for any scheduled resource automation, as it will likely be more flexible and more easily monitored than anything natively offered by the cloud vendor.
For example, tag an EC2 instance with "CronStart: 0 8 * * " and "CronStop: 0 17 * *". Then have a service that queries EC2 instances with CronStart/CronStop tags, and start/stop the instances according to these schedules.
I haven't looked for any services that does this out-of-the-box, but it would not particularly complicated to implement on e.g. AWS Lambda.
disclaimer. maintainer on cloud custodian.
We don't have any issues tracking stuff down - if you create something that can't be traced back your department, it explodes. I've never seen anything more effective at directing a user configuration.
Following through on a threat is essentially magic.
These days I think you can use the new customer managed IP prefix list feature they added last month for this specific need so this approach could be simplified if you need to share the same ranges across accounts:
https://docs.aws.amazon.com/vpc/latest/userguide/sharing-man...
disclaimer: maintainer on cloud custodian
disclaimer: technical co-founder at CloudForecast
It gives great insight into infrastructure costs, makes budgeting a lot easier, and saved us a decent chunk of change by letting us know where savings would have the most impact or alerting us when we had unintended cost increases.