千家信息网

AWS 通过成本分配标签来查看账单

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,公司的AWS上运行了很多不同的服务,EC2,S3,VPC等等,他们属于20多个不同的诊所。之前的管理员并没有进行很好的Tag,因此每个月底的账单都只能看见一大堆总的开支,具体到每个服务,每个诊所很难确
千家信息网最后更新 2026年10月31日AWS 通过成本分配标签来查看账单

公司的AWS上运行了很多不同的服务,EC2,S3,VPC等等,他们属于20多个不同的诊所。之前的管理员并没有进行很好的Tag,因此每个月底的账单都只能看见一大堆总的开支,具体到每个服务,每个诊所很难确定具体的开支,结果就是所有的开支都从IT部门的预算走的,而不是分摊到实际的各个诊所上去。

为了解决这个问题,可以对每个服务都进行自定义的Tag标签,然后在Cost Allocation Tag的控制台里激活自定义的标签,一天之后,就可以在Billing账单里面根据自己定义的标签来过滤查询了。

比如说,为了区分诊所,我定义了一个Tag,key是Clinic,value就是每个诊所的名字了

因为我有上百个volume和上千个Snapshot,豆子写了个简单的PowerShell脚本来添加标签。EC2实例上手动添加了对应的标签,然后根据EC2关联的volume添加Tag,再通过volume来关联snapshot添加Tag

Write-Host "Checking EC2 instance Tags status" -ForegroundColor Yellow$all=Get-EC2Instance | select -expand instances$return=$all | Where-Object {$_.tag.key -notcontains "Clinic"}if($return -ne $null){$username = "example@aa.com" $password = "password" | ConvertTo-SecureString -asPlainText -Force$credential = New-Object System.Management.Automation.PSCredential($username,$password)Send-MailMessage -From example@aa.com -to example@bb.com -SmtpServer smtp.office365.com -Port 587 -UseSsl -Subject "EC2 instance Tag" -Credential $credentialexit}# confirm EC2 instances were tagged$result=@()foreach($item in $all){    $Name=$item.tag | Where-Object {$_.Key -eq 'Name'} | select -ExpandProperty value    $clinic=$item.tag | Where-Object {$_.Key -eq 'clinic'} | select -ExpandProperty value    $item | add-member -NotePropertyName Description -NotePropertyValue $name    $item | add-member -NotePropertyName Clinic -NotePropertyValue $clinic    $item = $item | select *    $result+=$item}$result | select Description, InstanceId, privateIpaddress, Clinic | Group-Object Clinicwrite-host "Updating Volume Tags Status ... " -ForegroundColor Yellow #Tag all volumes based on their attached EC2 Clinic Tag$allvol=Get-EC2Volume | Where-Object {$_.tag.key -notcontains "Clinic"}foreach($item in $result){    foreach($item2 in $allvol){        if ($item2.attachments.instanceid -eq $item.InstanceId){                $value=$item.Clinic              New-EC2Tag -Resource $item2.VolumeId -Tag @{Key="Clinic";value=$value}            }        }}write-host "Done !" -ForegroundColor YellowWrite-Host "Updating Snapshot Tags Status..." -ForegroundColor Yellow #Tag all snapshots based on the volume Tag$allvol=Get-EC2Volume $filter= New-Object Amazon.EC2.Model.Filter -Property @{Name = "owner-id"; Values ='xxxxxxx' } $snapshots=Get-EC2Snapshot -Filter $filter $snapshots= $snapshots | ? {$_.Tag.key -notcontains "Clinic"} foreach($i in $snapshots){    $volid=$i.VolumeId    foreach($j in $allvol){        if($volid -eq $j.Volumeid){            $value=$j.tag | Where-Object {$_.key -eq 'Clinic'} | select -ExpandProperty value            $name=$j.Tag | Where-Object {$_.key -eq "Name"} | select -ExpandProperty value            $snapid=$i.snapshotid            $snapid            New-EC2Tag -Resource $snapid -Tag @{Key="Clinic";value=$value}             New-EC2Tag -Resource $snapid -Tag @{Key="Name";value=$name}        }    }}write-host "Done !" -ForegroundColor Yellow

执行之后大概是这样, 确认工作之后把他放到任务计划里面自动跑就行了

然后过了24小时,登录billing的控制台,根据Tag来分类,就可以看见每个诊所的开支记录了

诊所 标签 服务 账单 不同 就是 控制台 关联 控制 上千 任务 公司 名字 多个 大堆 实例 实际 小时 手动 比如说 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 广州紫鲸互联网科技有限公司 云之行互联网科技 科技赋能下的互联网金融 互联网公司 科技公司 易通互联网络科技有限公司 沃里互联网科技 广州紫鲸互联网科技 顺网科技2021年互联网排名 互联网科技公司招聘 富国互联网科技创新基金 安控科技rtu产品工业互联网 福建科技产业互联网发展 荆州市昕露互联网络科技有限公司 花神(南京)互联网科技有限公司 互联网科技人工智能实验室 洛阳共同富裕互联网科技有限公司 伍佰万互联网科技怎么赚钱 10位科技互联网大佬 长沙易易互联网科技有限公司 中关村互联网 科技集团 互联网科技公司电话 卓越科技(互联网 ) 菲比寻常互联网科技 互联网科技公司的市场部门 剑昆互联网络科技有限公司临桂 注册互联网科技公司经营范围大全 半导体行业属于互联网高科技类吗 河南商务圈互联网科技有限公司 互联网科技创新方面的资料
0