监控成本 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

监控成本

Amazon Cognito 会根据您的以下使用量收费。

  • 用户池每月活跃用户 (MAU)

  • 使用 OIDC 或 SAML 联合身份登录的用户池 MAU

  • 具有高级安全功能的用户池中的 MAU

  • 活跃的用户池应用程序客户端和使用客户端凭证进行机器到机器 (M2M) 授权的请求量

  • 某些类别的用户池 API 的购买使用量超过了默认配额

此外,用户池的功能(如电子邮件、SMS 消息和 Lambda 触发器)可能会在依赖服务中产生费用。有关完整概述,请参阅亚马逊 Cognito 定价。

查看和预测成本

您可以在Amazon Billing and Cost Management 控制台中查看和报告您的 Amazon 成本。您可以在 “账单和付款” 部分找到您最近的 Amazon Cognito 费用。在 “账单”、“按服务计费” 下,筛选Cognito以查看您的使用情况。有关更多信息,请参阅 Amazon Billing 用户指南中的查看您的账单

要监控 API 请求速率,请在 Service Quotas 控制台中查看利用率指标。例如,客户端凭证请求显示为 ClientAuthentication 请求率。在您的账单中,这些请求与生成这些请求的应用程序客户端相关联。有了这些信息,您就可以公平地将成本分配给多租户架构中的租户

要获取一段时间内的 M2M 请求数量,您还可以将Amazon CloudTrail 事件发送到 CloudWatch Logs 进行分析。使用客户端凭证授予 CloudTrail Token_POST的事件查询您的事件。以下 CloudWatch Insights 查询返回此计数。

filter eventName = "Token_POST" and @message like '"grant_type":["client_credentials"]' | stats count(*)

管理 成本

Amazon Cognito 根据用户数量、功能使用情况和请求量计费。以下是在亚马逊 Cognito 中管理成本的一些技巧,

不要激活不活跃的用户

使用户处于活动状态的典型操作是登录、注册和密码重置。有关更详尽的列表,请参阅每月活跃用户。Amazon Cognito 不会将不活跃的用户计入您的账单。避免任何使用户处于活动状态的操作。不AdminGetUser使用 API 操作,而是使用该ListUsers操作查询用户。不要对非活跃用户的用户池操作进行大量管理测试。

链接联合用户

使用 SAML 2.0 或 OpenID Connect (OIDC) 身份提供商登录的用户的成本要高于本地用户。您可以将这些用户链接到本地用户配置文件。关联用户可以使用其联合用户附带的属性和访问权限以本地用户身份登录。来自 SAML 或 OIDC IdPs 的用户在一个月内仅使用关联的本地账户登录,则按本地用户计费。

管理请求费率

如果您的用户池已接近配额的上限,则可以考虑购买额外的容量来处理该容量。您也许可以减少应用程序中的请求量。有关更多信息,请参阅 优化配额限制的请求速率

仅在需要新令牌时才申请新代币

使用客户端凭证授予的机器对机器 (M2M) 授权可以满足大量令牌请求。每个新的令牌请求都会影响您的请求速率配额和账单规模。为了优化成本,请在应用程序设计中包括令牌到期设置和令牌处理。

  • 缓存访问令牌,以便当您的应用程序请求新令牌时,它会收到先前发布的令牌的缓存版本。当您实现此方法时,您的缓存代理可以防范那些在不知道先前获取的令牌已过期的情况下请求访问令牌的应用程序。缓存令牌非常适合于 Lambda 函数和 Docker 容器等短期微服务。

  • 在您的应用程序中实现令牌处理机制,以考虑令牌过期。在之前的代币到期之前,请勿申请新令牌。评估每个应用程序的机密性和可用性需求,并将用户池应用程序客户端配置为颁发具有适当有效期的访问令牌。自定义令牌持续时间最适合使用寿命较长的 API 和可以持续管理凭证请求频率的服务器。

删除未使用的客户端凭据应用程序客户端

M2M 授权账单基于两个因素:令牌请求率和授予客户凭证的应用程序客户端数量。如果未使用用于 M2M 授权的应用程序客户端,请将其删除或移除其颁发客户端凭据的授权。有关管理应用程序客户端配置的更多信息,请参阅用户池应用程序客户端

管理高级安全

在用户池中配置高级安全功能时,高级安全计费费率适用于用户池中的所有 MAU。如果您的用户不需要高级安全功能,请将他们分成另一个用户池。