

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控和管理成本
<a name="tracking-cost"></a>

如同任何其他 AWS 服務，請務必了解 Amazon Cognito 組態和用量對 AWS 帳單的影響。在準備將使用者集區部署到生產環境時，請設定活動和資源消耗的監控和防護措施。當您知道要查看何處以及哪些動作會產生額外的成本時，您可以在帳單中設定意外的預防措施。

Amazon Cognito 會針對您的用量收取下列維度的費用。
+ 使用者集區每月作用中使用者 MAUs) — 費率因[功能計劃](cognito-sign-in-feature-plans.md)而異
+ 使用 OIDC 或 SAML 聯合登入的使用者集區 MAUs 
+ 使用用戶端憑證授予請求機器對機器 (M2M) 授權的磁碟區
+ 某些類別的使用者集區 APIs 購買用量超過預設配額

此外，電子郵件訊息、SMS 訊息和 Lambda 觸發條件等使用者集區的功能可能會在相依服務中產生成本。如需完整概觀，請參閱 [Amazon Cognito 定價](https://aws.amazon.com/cognito/pricing)。

## 檢視和預測成本
<a name="tracking-cost-monitoring"></a>

產品啟動和開放至新使用者群等大量事件可能會增加您的 MAU 計數，並產生成本影響。預先估計新使用者計數，並在活動發生時監看。您可能會發現您想要在購買額外的配額容量時容納磁碟區，或使用額外的安全措施來控制磁碟區。

您可以在 [AWS 帳單與成本管理 主控台](https://console.aws.amazon.com/billing/home)中檢視和報告您的 AWS 成本。您可以在**帳單和付款**區段中找到 Amazon Cognito 的最新費用。在**依****服務計費**下，篩選 `Cognito`以檢視您的用量。如需詳細資訊，請參閱 *AWS Billing 使用者指南*中的[檢視您的帳單](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html)。

若要監控 API 請求率，請在 Service Quotas 主控台中檢閱**使用率**指標。例如，用戶端登入資料請求會顯示為 ** ClientAuthentication 請求的速率**。在您的帳單中，這些請求會與產生請求的應用程式用戶端相關聯。透過此資訊，您可以公平分配成本給[多租戶架構中的租戶](multi-tenant-application-best-practices.md)。

若要取得一段時間內的 M2M 請求計數，您也可以將[AWS CloudTrail 事件傳送至 CloudWatch Logs](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/send-cloudtrail-events-to-cloudwatch-logs.html) 進行分析。使用用戶端憑證授予來查詢 CloudTrail `Token_POST` 事件。下列 CloudWatch Insights 查詢會傳回此計數。

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

## 管理成本
<a name="tracking-cost-managing"></a>

Amazon Cognito 會根據使用者計數、功能用量和請求量計費。以下是在 Amazon Cognito 中管理成本的一些秘訣，

**請勿啟用非作用中的使用者**  
讓使用者處於作用中狀態的典型操作是登入、註冊和密碼重設。如需更完整的清單，請參閱 [每月作用中使用者](quotas.md#monthly-active-users)。Amazon Cognito 不會將非作用中使用者計入您的帳單。避免任何將使用者設為作用中的操作。使用 [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) 操作查詢使用者，而不是 [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html) API 操作。請勿對非作用中的使用者執行使用者集區操作的大量管理測試。

**連結聯合身分使用者**  
使用 SAML 2.0 或 OpenID Connect (OIDC) 身分提供者登入的使用者的成本高於[本機使用者](cognito-terms.md#terms-localuser)。您可以將[這些使用者連結至本機使用者設定檔](cognito-user-pools-identity-federation-consolidate-users.md)。連結的使用者可以以本機使用者身分登入，其中包含與其聯合身分使用者一起提供的屬性和存取權。來自 SAML 或 OIDC IdPs 的使用者，在一個月內，只會以本機使用者身分使用連結的本機帳戶登入。

**管理請求率**  
如果您的使用者集區接近配額的上限，您可以考慮購買額外的容量來處理磁碟區。您可能可以減少應用程式中的請求量。如需詳細資訊，請參閱[最佳化配額限制的請求率](quotas.md#optimize-quotas)。

**只在您需要新權杖時請求新權杖**  
具有用戶端憑證授予的機器對機器 (M2M) 授權可以達到大量的字符請求。每個新的字符請求都會影響您的請求率配額和帳單大小。若要最佳化成本，請在您應用程式的設計中包含權杖過期設定和權杖處理。
+ [快取存取權杖](amazon-cognito-user-pools-using-tokens-caching-tokens.md)，以便在應用程式請求新的權杖時，它會收到先前發行權杖的快取版本。當您實作此方法時，快取代理會保護請求存取字符的應用程式，而不會察覺先前取得的字符過期。快取字符非常適合短期微服務，例如 Lambda 函數和 Docker 容器。
+ 在考量權杖過期的應用程式中實作權杖處理機制。在先前的權杖即將過期之前，請勿請求新的權杖。最佳實務是在字符生命週期的 75% 左右重新整理字符。此實務可將字符持續時間最大化，同時確保應用程式中的使用者連續性。

  評估每個應用程式的機密性和可用性需求，並設定使用者集區應用程式用戶端發行具有適當有效期間的存取權杖。自訂字符持續時間最適合長期 APIs 和伺服器，這些伺服器可以持續管理憑證請求的頻率。

**ListUsers，而非 AdminGetUser**  
若要查詢使用者集區中使用者的屬性，請盡可能使用 [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) API 操作和相關聯的 [SDK](https://aws.amazon.com/developer/tools/) 方法。[AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html) 將使用者標記為當月作用中，並對用於計算使用者集區帳單的每月作用中使用者 (MAUs) 做出貢獻。

**管理功能計劃**  
當您在使用者集區中選擇[功能計劃](cognito-sign-in-feature-plans.md)時，帳單費率會套用至使用者集區中的所有 MAUs。如果您有不需要更高層級功能計劃之功能的使用者，請將他們分開到另一個使用者集區。