

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터 키 캐싱 예제
<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/ko_kr/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>1rps/100회 사용</td><td>1rps/100회 사용</td><td>1rps/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>생산자당 1rps</td><td>500</td><td>500</td><td>2</td><td>1,000</td></tr>
  <tr><td>로컬 캐시</td><td>생산자당 1rps/100회 사용</td><td>500</td><td>5</td><td>2</td><td>10</td></tr>
</tbody>
</table>
