데이터 키 캐싱 예제 - AWS Encryption SDK

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

데이터 키 캐싱 예제

이 예제에서는 데이터 키 캐싱로컬 캐시를 함께 사용하여 다양한 리전에서 여러 디바이스에 의해 생성되는 데이터가 암호화 및 저장되는 애플리케이션의 속도를 가속화합니다.

이 시나리오에서는 여러 데이터 생산자가 데이터를 생성하고 암호화하여 각 리전의 Kinesis 스트림에 씁니다. AWS Lambda 함수(소비자)는 스트림을 복호화하여 일반 텍스트 데이터를 해당 리전의 DynamoDB 테이블에 씁니다. 데이터 생산자와 소비자는 AWS Encryption SDK 및 AWS KMS 마스터 키 공급자를 사용합니다. KMS에 대한 호출을 줄이기 위해 각 생산자와 소비자는 자체 로컬 캐시를 보유하고 있습니다.

Java 및 Python에서 이러한 예제의 소스 코드를 찾을 수 있습니다. 샘플에는 샘플의 리소스를 정의하는 AWS CloudFormation 템플릿도 포함되어 있습니다.

이 다이어그램은 데이터 생산자와 소비자가 AWS KMS, Amazon Kinesis Data Streams 및 Amazon DynamoDB를 사용하는 방법을 보여줍니다.

로컬 캐시 결과

아래 표에서는 로컬 캐시가 이 예제의 총 KMS 호출 수(리전별 초당)를 원래 값의 1%로 줄이는 것을 보여줍니다.

생산자 요청
클라이언트당 초당 요청 리전당 클라이언트 리전당 초당 평균 요청
데이터 키 생성(us-west-2) 데이터 키 암호화(eu-central-1) 총계(리전별)
캐시 없음 1 1 1 500 500
로컬 캐시 1rps/100회 사용 1rps/100회 사용 1rps/100회 사용 500 5
소비자 요청
클라이언트당 초당 요청 리전당 클라이언트 리전당 초당 평균 요청
데이터 키 복호화 생산자 합계
캐시 없음 생산자당 1rps 500 500 2 1,000
로컬 캐시 생산자당 1rps/100회 사용 500 5 2 10