使用 AWS Budgets 功能在费用超限时向您发送短信或邮件提醒

2020-08-18

摘要

像是 AWS 这种大型的云服务厂商提供花样繁多的云服务,鉴于并不是所有的用户都有时间和精力在使用每种服务之前都去完全了解一遍该服务的计费规则(Pricing),所以亚马逊推出了 Budgets 功能,主要是负责实时监测账户上已经产生的费用和各项服务的使用量,当费用(或者使用量)在一定时间范围内超出用户预先设置好的阈值时可以第一时间通过各种方式向用户发送告警信息,方便用户及时采取行动并且也为用户更好地使用云服务提供了便捷.

设置方式

使用 Root 账户登录后,首先点击页面又上角的自己的用户名,会展开出一个子菜单,点击其中的 “My Billing Dashboard” 进入到账单中心页面:

点击 “My Billing Dashboard”

点击 “My Billing Dashboard”

会出现一个页面列出自己使用各项服务的花费,此时,点击页面左边选项列表中的 “Budgets:

点击 “Budgets”

点击 “Budgets”

然后点击 “Create budget” 来创建一个预算计划

点击 “Create budget”

点击 “Create budget”

在出现的选项中,我们选择 “Cost budget” 就可以了,你也可以探索其他的选项,然后点 “Set your budget” 进行进一步的设置:

选择 “Cost budget” 即「费用预算」

选择 “Cost budget” 即「费用预算」

在出现的页面中,我们要给一些字段填入相应的值,其中 Name 表示该预算计划的命名,Period 是预算周期,如果选 Monthly 就表示要监控的是每个月的费用,而 Yearly 表示监控的是每年的费用,区别就在于,例如说,你希望你每年在 AWS 上花费的费用不超过 50,那么你可以将 Period 设为 Yearly,否则,如果设为 Monthly,由于每个月的花费都不太可能超过 50,所以这个 Budget 告警就不太可能起作用.而假如说你想预算每个月花费不超过 5,却将 Period 设为了 Yearly,那显然也是不太合适的.设置好后可以翻到页面底部点击 “Configure Alerts” 设置超出预算时的提醒方式:

设置账单名称、周期和预算额度

设置账单名称、周期和预算额度

Alert threshold 表示当实际产生的费用超过预算的百分之多少时才触发告警,要在 Email contacts 字段中填入自己的邮箱地址,然后点击 Confirm budget 并在接下来的页面中点击 Create.

设置提醒警戒线和提醒方式

设置提醒警戒线和提醒方式

这样的话,邮件提醒服务就设置好了,接下来我们还可以选择添加短信提醒服务,首先返回 AWS 控制台首页中,然后搜索 SNS,会出现 Simple Notification Service 入口,点进去:

进入 SNS 设置

进入 SNS 设置

在 SNS 首页中,填写 Topic name 创建一个 Topic,这个 Topic name 可以自己设置,然后点击 “Next step”:

填写 Topic name

填写 Topic name

在接下来的页面中,设置一个 Display name,这个在短信提示中会显示,然后翻到页面下方点击 “Create topic”,在接下来的页面中我们会看到提示 Topic 创建成功

填写 Display name

填写 Display name

在接下来的页面中翻到页面底部,点击 “Create subscription”,因为 AWS SNS 是一个基于 Pub/Sub(发布/订阅)模式的消息提醒服务,所以当有事件产生时,SNS 才知道要向谁(订阅方)推送消息:

创建订阅方

创建订阅方

容易看懂的一步终于来了,在 Protocol 选项中选择 SMS(短信服务),在 Endpoint 字段中填入加区号的电话号码,例如,在大陆,区号就是 +86,假如说手机号是 13212341234,那么这里就应该填入 +8613212341234,而如果是美国的电话,区号就是 +1,填好后点击页面底部的 “Create subscription”:

创建订阅方

创建订阅方

回到 Topic 页面,点击 Publish message 试试看短信能否被收到:

回到 Topic 页面

回到 Topic 页面

填入短信标题

填入短信标题

填入短信标题

填入短信内容

填入短信内容

填入短信内容

最后点页面底部的 “Publish message”,短信就可以发出去啦!

确认收到短信

确认收到短信

现在,我们已经分别创建好了 SNS 服务和 Budgets 预算提醒服务,我们接下来所要做的,就是把这两个服务连接起来:这样,当 Budgets 产生预算超出限制的事件时,就会把事件发生到刚才我们所创建的这个 SNS 服务节点上,而 SNS 会对订阅方列表中的每一个订阅方发生短信提醒,这样就实现了预算的短信提醒服务.下面,我们先回到 Topic 页面,并复制 ARN 号码:

复制 ARN 号码

复制 ARN 号码

然后,回到控制台首页,搜索 “Billing” 关键字,点击出现的 Billing 入口,和一开始一样,点击 Budgets,再点击进入我们之前创建好的那个 Budget:

进入 Budget 设置

进入 Budget 设置

在 Budget 首页点击 “Edit budget”,翻到页面尾部,点击 “Configure alerts”,点击 “Add new alerts”:

添加 Alert

添加 Alert

在接下来出现的 “Alert 2” 中,Alert threshold 填一个跟刚才不一样的值,SNS topic ARN 字段就填入刚才我们复制的 ARN

填入 ARN 码

填入 ARN 码

最后点击 Confirm budget 和 Done,就设置完成了,从此之后 AWS 就会自动地在预算超限发生之后的第一时间通过多种渠道提醒我们了.

结语

AWS 提供的多种服务都是通过事件(Event)相连的,Amazon SNS 不光能和 Budgets 服务相连,也能够和 API Gateway 服务,Amazon Lambda 服务等其他服务相连,灵活的搭配和连接 AWS 的各项服务能够得到各种强大的功能,感兴趣的读者不妨对此自己多做探索.

经验分享aws

Longest Common Prefix 问题基于 N-ary Tree 的解法

图片旋转问题