aws-다이나모드-스트림-람다-탄성 검색-키바나 - AWS 솔루션 구성체

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

aws-다이나모드-스트림-람다-탄성 검색-키바나

모든 클래스는 활발히 개발 중이며 향후 버전에서 이전 버전과 호환되지 않는 변경 또는 제거 될 수 있습니다. 이들은 적용되지 않습니다의미 체계 버전 관리모델을 선택합니다. 즉, 이 패키지를 사용할 수도 있지만 이 패키지의 최신 버전으로 업그레이드할 때 소스 코드를 업데이트해야 할 수도 있습니다.

참고: 적절한 기능을 보장하려면 프로젝트의 AWS 솔루션 구성 패키지와 AWS CDK 패키지가 동일한 버전이어야 합니다.

언어 패키지
Python
aws_solutions_constructs.aws_dynamodb_stream_lambda_elasticsearch_kibana
타이프 스크립트
@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana
Java
software.amazon.awsconstructs.services.dynamodbstreamlambdaelasticsearchkibana

Overview

이 AWS 솔루션 구성은 스트림, AWS Lambda 함수 및 최소 권한이 있는 Amazon Elasticsearch Service 포함하는 Amazon DynamoDB 테이블을 구현합니다.

다음은 TypeScript 터의 최소 배포 가능한 패턴 정의입니다.

import { DynamoDBStreamToLambdaToElasticSearchAndKibana, DynamoDBStreamToLambdaToElasticSearchAndKibanaProps } from '@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana'; import { Aws } from "@aws-cdk/core"; const props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }, domainName: 'test-domain', // TODO: Ensure the Cognito domain name is globally unique cognitoDomainName: 'globallyuniquedomain' + Aws.ACCOUNT_ID; }; new DynamoDBStreamToLambdaToElasticSearchAndKibana(this, 'test-dynamodb-stream-lambda-elasticsearch-kibana', props);

Initializer

new DynamoDBStreamToLambdaToElasticSearchAndKibana(scope: Construct, id: string, props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps);

파라미터

소품 패턴 구성

이름 유형 설명
람다오브즈 기존인가요? lambda.Function Lambda 함수 객체의 기존 인스턴스, 이 및lambdaFunctionProps오류가 발생합니다.
람다기능소품? lambda.FunctionProps Lambda 함수의 기본 속성을 재정의하는 선택적 사용자 제공 속성입니다. 의 경우 무시됩니다.existingLambdaObj가 제공될 예정입니다.
다이나모테이블소품? dynamodb.TableProps DynamoDB 테이블의 기본 소품을 재정의할 수 있는 선택적 사용자가 제공한 소품
기존 테이블오브J? dynamodb.Table DynamoDB 테이블 객체의 기존 인스턴스로,dynamoTableProps오류가 발생합니다.
다이나모이벤트소품? aws-lambda-event-sources.DynamoEventSourceProps DynamoDB 이벤트 소스의 기본 소품을 재정의할 수 있는 선택적 사용자 제공 소품
이도메인Props? elasticsearch.CfnDomainProps Amazon Elasticsearch Service 기본 소품을 무시하기 위한 선택적 사용자가 제공한 소품
domainName string Cognito 및 Amazon Elasticsearch Service 도메인 이름
클라우드왓찰암스 만들기 boolean 권장 CloudWatch 경보를 생성할지 여부입니다.

패턴 속성

이름 유형 설명
클라우드왓찰암즈? cloudwatch.Alarm[] 패턴에 의해 생성된 하나 이상의 CloudWatch 경보 목록을 반환합니다.
다이나모터블 dynamodb.Table 패턴에 의해 생성된 DynamoDB 테이블의 인스턴스를 반환합니다.
엘라스틱검색 도메인 elasticsearch.CfnDomain 패턴에 의해 생성된 Elasticsearch 도메인의 인스턴스를 반환합니다.
IdentityPool cognito.CfnIdentityPool 패턴에 의해 생성된 Cognito 자격 증명 풀의 인스턴스를 반환합니다.
람다함수 lambda.Function 패턴에 의해 생성 된 Lambda 함수의 인스턴스를 돌려줍니다.
userPool cognito.UserPool 패턴에 의해 생성된 Cognito 사용자 풀의 인스턴스를 반환합니다.
UserPool cognito.UserPoolClient 패턴에 의해 생성된 Cognito 사용자 풀 클라이언트의 인스턴스를 반환합니다.

Lambda 함수

이 패턴을 사용하려면 DynamoDB 스트림에서 Elasticsearch 서비스에 데이터를 게시할 수 있는 Lambda 함수가 필요합니다. 샘플 함수가 제공됩니다.여기에서.

기본 설정

재정의없이이 패턴을 즉시 구현하면 다음과 같은 기본값이 설정됩니다.

Amazon DynamoDB 테이블

  • DynamoDB 테이블의 결제 모드를 온 디맨드 (요청당 지불) 로 설정

  • AWS 관리형 KMS 키를 사용하여 DynamoDB 테이블에 대한 서버 측 암호화 활성화

  • DynamoDB 테이블에 대해 'id'라는 파티션 키를 생성합니다.

  • CloudFormation 스택을 삭제할 때 테이블 유지

  • 지속적인 백업 및 지정 시간 복구

AWS Lambda 함수

  • Lambda 함수에 대한 제한된 권한 액세스 IAM 역할 구성

  • NodeJS Lambda 함수에 대한 연결 유지로 연결 재사용 사용

  • X-Ray 추적 활성화

  • 실패 처리 기능 사용: 함수 오류 시 이분절 사용, 기본 최대 레코드 사용 기간 (24시간) 설정, 기본 최대 재시도 횟수 (500) 설정, 실패 시 SQS 데드 레터 큐를 대상으로 배포

  • 환경 변수를 설정합니다.

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(노드 10.x 이상 함수의 경우)

Amazon Cognito

  • 사용자 풀에 대한 암호 정책 설정

  • 사용자 풀에 고급 보안 모드 적용

Amazon Elasticsearch Service

  • 엘라스틱 검색 도메인에 대한 CloudWatch 경보 모범 사례 배포

  • Cognito 사용자 풀로 Kibana 대시보드 액세스 보호

  • AWS 관리형 KMS 키를 사용하여 Elasticsearch 도메인에 대한 서버 측 암호화 활성화

  • ElasticSearch 도메인에 대해 노드 간 암호화를 활성화합니다.

  • Amazon ES 도메인에 대한 클러스터 구성

Architecture

GitHub

이 패턴의 코드를 보려면 문제 및 끌어오기 요청을 작성/조회하는 등의 작업을 수행합니다.
@aws -솔루션 - 구성/AWS - 동적 DB - 스트림 - 람다 - 탄성 검색 - 키바나