千家信息网

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安全错误 数据库的锁怎样保障安全 互联网科技英文 互联网科技英文翻译 互联网科技素材视频竖屏 中正互联网科技招聘 隆华科技工业互联网 阿里巴巴算科技企业还是互联网 成都互联网科技公司100强 汽车互联网创新科技园 想开互联网科技公司怎么样 华夏恒生互联网科技013171 晋城互联网科技 四川慕妮娅互联网科技有限公司 恒生互联网科技业指数调整周期 张召忠谈中国互联网科技 广州燕处互联网科技有限公司 上海同邻互联网科技有限公司规模 西安左小互联网科技有限公司 绵阳真晨互联网科技有限公司 长沙易易互联网科技有限公司 北京瑞云互联网科技有限公司 科技互联网 网络科技有限互联网 世界互联网领先科技成果 百单互联网科技有限公司 电子科技大学互联网 福州新华互联网科技学校 知乎 恒生互联网科技业指数调整周期 保山互联网科技靠谱吗 承德科技产业互联网平台 重庆科技产业互联网有哪些
0