standard
turbot/aws_thrifty
- Detect & correct DynamoDB table with stale data
- Detect & correct EBS snapshots exceeding max age
- Detect & correct EBS volumes attached to stopped instances
- Detect & correct EBS volumes exceeding max size
- Detect & correct EBS volumes if unattached
- Detect & correct EBS volumes using gp2
- Detect & correct EBS volumes using io1
- Detect & correct EBS volumes with low IOPS
- Detect & correct EBS volumes with low usage
- Detect & correct EC2 application load balancers if unused
- Detect & correct EC2 classic load balancers if unused
- Detect & correct EC2 gateway load balancers if unused
- Detect & correct EC2 instances exceeding max age
- Detect & correct EC2 instances large
- Detect & correct EC2 instances of older generation
- Detect & correct EC2 instances without graviton
- Detect & correct EC2 network load balancers if unused
- Detect & correct EKS node groups without graviton
- Detect & correct Elasticache clusters exceeding max age
- Detect & correct EMR Clusters idle 30 mins
- Detect & correct Lambda functions without graviton
- Detect & correct RDS DB instances exceeding max age
- Detect & correct RDS DB instances of older generation
- Detect & correct RDS DB instances with low connection count
- Detect & correct RDS DB instances without graviton processor
- Detect & correct Route53 health checks if unused
- Detect & correct Route53 records with lower TTL
- Detect & correct S3 buckets without lifecycle policy
- Detect & correct SecretsManager secrets if unused
- Detect & correct VPC EIPs if unattached
- Detect & correct VPC NAT gateways if unused
Get Involved
Version
Overview
ElastiCache clusters have an ongoing operational cost, so clusters that surpass a certain age should be retired to prevent unnecessary expenses.
This query trigger identifies ElastiCache clusters exceeding the maximum age and then either sends a notification or attempts to perform a predefined corrective action.
Getting Started
By default, this trigger is disabled, but it can be configured by setting the following variables:
elasticache_clusters_exceeding_max_age_trigger_enabled
should be set totrue
as the default isfalse
.elasticache_clusters_exceeding_max_age_trigger_schedule
should be set to your preferred schedule.elasticache_clusters_exceeding_max_age_default_action
should be set to the desired action (e.g.,"notify"
for notifications or"delete_cluster"
to delete the cluster).
Then starting the server:
flowpipe server
or if you've set the variables in a .fpvars
file:
flowpipe server --var-file=/path/to/your.fpvars
Query
with filter_clusters as ( select distinct c.replication_group_id as name, c.cache_cluster_create_time, c.sp_connection_name, c.region, c.account_id, 'redis' as engine, c.partition from aws_elasticache_replication_group as rg left join aws_elasticache_cluster as c on rg.replication_group_id = c.replication_group_id union select cache_cluster_id as name, cache_cluster_create_time, sp_connection_name, region, account_id, engine, partition from aws_elasticache_cluster where engine = 'memcached')select concat(name, ' [', region, '/', account_id, ']') as title, name, region, account_id, sp_connection_name as connfrom filter_clusterswhere date_part('day', now() - cache_cluster_create_time) > 90;
Schedule
15m
Tags
category = Cost
class = managed
plugin = aws
service = AWS/ElastiCache