

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

# 資料金鑰快取範例
<a name="sample-cache-example"></a>

此範例使用[資料金鑰快取](data-key-caching.md)搭配[本機快取](data-caching-details.md#simplecache)，以加速應用程式，其中由多個裝置產生的資料會加密並儲存在不同的 區域中。

在此案例中，多個資料生產者會產生資料、加密資料，並寫入每個區域中的 [Kinesis 串流](https://aws.amazon.com/kinesis/streams/)。 [AWS Lambda](https://aws.amazon.com/lambda/)函數 （取用者） 會解密串流，並將純文字資料寫入區域中的 DynamoDB 資料表。資料生產者和消費者使用 AWS Encryption SDK 和 [AWS KMS 主金鑰提供者](concepts.md#master-key-provider)。為了減少對 KMS 的呼叫，每個生產者和消費者都有自己的本機快取。

您可以在 [Java 和 Python](sample-cache-example-code.md) 中找到這些範例的原始程式碼。此範例也包含定義範例資源的 CloudFormation 範本。

![此圖表顯示資料生產者和消費者如何使用 AWS KMS、Amazon Kinesis Data Streams 和 Amazon DynamoDB。](http://docs.aws.amazon.com/zh_tw/encryption-sdk/latest/developer-guide/images/simplecache-example.png)


## 本機快取結果
<a name="caching-example-impact"></a>

下表顯示本機快取會將此範例中對 KMS 的呼叫總數 （每個區域每秒） 減少為原始值的 1%。


**製作者請求**  

<table>
<tbody>
  <tr><td rowspan="2"></td><td colspan="3">每秒每個用戶端的請求數</td><td rowspan="2">每個區域的用戶端</td><td rowspan="2">每秒每個區域的平均請求數</td></tr>
  <tr><td>產生資料金鑰 (us-west-2)</td><td>加密資料金鑰 (eu-central-1)</td><td>總數 (每個區域)</td></tr>
  <tr><td>無快取</td><td>1</td><td>1</td><td>1</td><td>500</td><td>500</td></tr>
  <tr><td>本機快取</td><td>1 rps/100 次使用</td><td>1 rps/100 次使用</td><td>1 rps/100 次使用</td><td>500</td><td>5</td></tr>
</tbody>
</table>



**消費者請求**  

<table>
<tbody>
  <tr><td rowspan="2"></td><td colspan="3">每秒每個用戶端的請求數</td><td rowspan="2">每個區域的用戶端</td><td rowspan="2">每秒每個區域的平均請求數</td></tr>
  <tr><td>解密資料金鑰</td><td>生產者</td><td>總計</td></tr>
  <tr><td>無快取</td><td>每個製作者 1 rps</td><td>500</td><td>500</td><td>2</td><td>1,000</td></tr>
  <tr><td>本機快取</td><td>每個製作者 1 rps/100 次使用</td><td>500</td><td>5</td><td>2</td><td>10</td></tr>
</tbody>
</table>
