Skip to content

Instantly share code, notes, and snippets.

@Sam-Martin
Created March 16, 2017 17:50
Show Gist options
  • Save Sam-Martin/29a79528e538bf5ed6b3a11ee2161e67 to your computer and use it in GitHub Desktop.
Save Sam-Martin/29a79528e538bf5ed6b3a11ee2161e67 to your computer and use it in GitHub Desktop.
Get AWS Account Limits
function Get-AWSAccountLimits {
param(
$region
)
$ASGAccountLimits = Get-ASAccountLimits -region $region
$MaxNumberOfAutoScalingGroups = @{
AccountQuotaName="MaxNumberOfAutoScalingGroups";
Max=$ASGAccountLimits.MaxNumberOfAutoScalingGroups;
Used=$ASGAccountLimits.NumberOfAutoScalingGroups
}
New-Object psobject -Property $MaxNumberOfAutoScalingGroups
$MaxNumberOfLaunchConfigurations = @{
AccountQuotaName="MaxNumberOfLaunchConfigurations";
Max=$ASGAccountLimits.MaxNumberOfLaunchConfigurations;
Used=$ASGAccountLimits.NumberOfLaunchConfigurations
}
New-Object psobject -Property $MaxNumberOfLaunchConfigurations
$EC2Counts = @{
"max-elastic-ips" = (Get-EC2Address -region $region).count
"max-instances" = (Get-EC2Instance -Region $region).count
}
(Get-EC2AccountAttributes -Region $region) | select @{"L"="AccountQuotaName";E={$_.AttributeName}},
@{L="Limit"; E={$_.attributevalues.attributevalue}},
@{L="Count"; E={$EC2Counts[$_.attributename]}}
Get-RDSAccountAttributes -Region eu-west-2
Get-CFNAccountLimits -Region $region | select @{L="AccountQuotaName";E={"CFNStacks"}}, @{L="Max";E={$_.value}}, @{"L"="Used";E={(Get-CFNStack -Region $region).count}}
}
foreach($region in (Get-AWSRegion).region){
$output = Get-AWSAccountLimits -region $region | select *, @{L="Region";E={$Region}}
#$output | ?{$_.accountquotaname -eq 'max-elastic-ips'}
$output | ?{$_.Max -gt 0}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment