DynamoDB 작업은 CloudWatch 사용자 정의 지표 스캔 vs 조회를 사용합니다

AWS DynamoDB는 데이터 항목 검색을 위한 검색 및 조회 작업을 제공합니다.이 두 가지 조작의 작업 방식은 데이터 조직이 백그라운드에서 발생하는 방식이 다를 뿐만 아니라 조작의 성능도 다르다.CloudWatch 맞춤형 지표는 DynamoDB 작업에 걸린 시간의 도표인 스캔이나 조회를 그릴 수 있습니다. 이것은 DynamoDB 작업의 성능 차이를 이해하는 데 도움을 줄 것입니다.

블로그의 주요 특징

  • DynamoDB 작업 비교 - 스캔과 조회.
  • 단계 함수를 바탕으로 하는 Lambda 함수 트리거의 실현.
  • 클라우드워치 사용자 정의 지표의 실현.
  • 훈련을 실시하다

  • Lambda 함수를 호출할 Step 함수를 설정합니다.
  • Step 함수가 트리거하는 Lambda는 DynamoDB를 조회하고 응답 시간을 기록하기 위해 다른 Lambda를 호출합니다.
  • 응답 시간은 스캔과 조회 비교를 통해 클라우드워치 맞춤형 지표를 작성하기도 한다.

  • DynamoDB 작업 비교 - 스캔 및 조회



    스캔이란 무엇입니까?
    Scan DynamoDB 작업은 전체 테이블을 검색한 다음 순서대로 저장된 데이터를 반환합니다.
    let scanResponse = await dynamodb.scan({
            "TableName": "cars-demo"
        }).promise()
    

    조회란?
    검색DynamoDB 작업은 KeyConditionExpression 데이터 모델과 테이블의 키 모드나 인덱스 모드를 이용하여 검색 작업이 정의된 조건에서 검색하도록 한다.
    let queryResponse = await dynamodb.query({
            TableName: 'cars-demo',
            IndexName: 'origin-index',
            KeyConditionExpression: 'origin = :origin',
            ExpressionAttributeValues: { ':origin': { "S": "USA" } },
        }).promise()
    
    특징.
    스캔
    묻다
    검색 기술
    순차 검색
    파티션 검색
    패턴 구속은 필수입니다.


    인덱스

    ✅ LSI 및 GSI와의 협력 강화
    분류하다

    SortKey를 사용하여 데이터 정렬
    응답 한계
    1MB
    1MB
    응답 시간
    더 느렸어
    더욱 빠르다
    계산하다
    O(n)
    로그 (n)
    코스트
    스캔은 모든 물품이 매우 비싸다
    더 싸다
    DynamoDB가 실행되는 성능은 주요 요소에 따라 달라집니다-
  • 데이터는 어떻게 모델링을 하는가.
  • 어떤 선별 키를 사용했습니까?
  • 데이터 소재지.
  • 반환된 데이터 제한은 1MB 제한을 초과하면 응답을 페이지로 나누어야 합니다.
  • 단계 함수 기반 Lambda 함수 트리거의 실현


    Step Function workflows 프로세스의 구조인 상태기를 정의한다.이 실행 중, 우리는 수동으로 state machine 실행을 시작할 것입니다. 여기서 설정을 초기화하고 Lambda 함수를 호출합니다.Step 함수에 대한 Lambda 응답에서 상태 확인을 수행하여 상태기의 실행이 완료되었는지 확인합니다.조건이 실패하면 상태기가 Wait 상태로 전환되고 이 상태에서 1초를 기다린 후 Lambda를 다시 호출합니다.이것은 조건이 충족될 때까지 계속 진행될 것이다.

    {
      "Comment": "Invoke Lambda every 1 second",
      "StartAt": "ConfigureCount",
      "States": {
        "ConfigureCount": {
          "Type": "Pass",
          "Result": {
            "index": 0,
            "count": 5000
          },
          "ResultPath": "$.iterator",
          "Next": "Iterator"
        },
        "Iterator": {
          "Type": "Task",
          "Resource": "arn:aws:lambda:ap-south-1:228628157461:function:dynamodb-monitoring-Iterator-S9CK3cTj2qii",
          "ResultPath": "$.iterator",
          "Next": "IsCountReached"
        },
        "IsCountReached": {
          "Type": "Choice",
          "Choices": [
            {
              "Variable": "$.iterator.continue",
              "BooleanEquals": true,
              "Next": "Wait"
            }
          ],
          "Default": "Done"
        },
        "Wait": {
          "Type": "Wait",
          "Seconds": 1,
          "Next": "Iterator"
        },
        "Done": {
          "Type": "Pass",
          "End": true
        }
      }
    }
    
    이 상태기는 Lambda 함수 아분 주파수 호출의 아키텍처를 설명하는 AWS 블로그click here에서 얻을 수 있다.
    이 구조는 클라우드 워치 이벤트 규칙을 사용해서 Lambda 함수를 호출해서 상태기 실행을 시작하지 않고 AWS 웹 컨트롤러에서 수동으로 실행합니다.
    상태기를 실행하려면 Step Functions 콘솔에서 만든 상태기를 탐색한 다음 start execution 단추를 클릭합니다.를 클릭하면 상태기의 JSON(선택 사항)을 입력하라는 메시지가 표시되어 실행을 시작할 수 있습니다.

    상태기가 실행 중입니다. 상태 유형 task, wait, choice 의 전환을 표시하고, 각 상태가 실행하는 입력과 출력을 볼 수 있습니다.

    CloudWatch 맞춤형 지표의 실현


    CloudWatch Custom Metrics 사용자가 정의한 사용자 정의 메트릭을 CloudWatch에 게시하여 데이터의 그래픽 표현을 생성하는 데 사용합니다.
    이 CloudWatch 맞춤형 지표 세부 구현 내용은 AWS 블로그click here에서 확인할 수 있습니다.
    이 실현에서 우리는 도량 조작-SCAN 또는QUERY, 그리고 실행에 필요한 응답 시간을 발표할 것이다.
    await cloudwatch.putMetricData({
            'MetricData': [{
                'MetricName': 'DynamoDBOperations',
                'Dimensions': [{
                    'Name': 'OPERATION',
                    'Value': metric
                }],
                'Unit': 'Milliseconds',
                'Value': value
            }, ],
            'Namespace': 'DynamoDB Queries and Scans'
        }).promise()
    
    게시된 데이터는 CloudWatch 콘솔의 Metrics 하위 메뉴에서 제공됩니다.
    US-EAST-1에서 DynamoDB 작업을 수행하는 사용자 정의 지표(데이터가 DynamoDB의 같은 구역에 주재함)

    AP-SOUTH-1에서 실행된 DynamoDB 작업의 사용자 정의 지표 사용하기 (데이터가 DynamoDB에 있는 구역과 다르다)

    US-EAST-1 v/s AP-SOUTH-1에서 DynamoDB 작업을 수행하는 사용자 정의 지표

    CloudWatch 사용자 지정 지표로 추정됩니다.

  • 는 검색보다 조회가 훨씬 빠르다는 것이 뚜렷하다.
  • ap-south-1 구역의 Lambda 함수가 DynamoDB에서 항목을 조회/스캔할 때 이 구역도 중요한 역할을 하는데 데이터는 us-east-1에 저장된다.
  • 이것은 NodeJS가 있는 AWS SAM 응용 프로그램에서 이루어졌으며, 예시 코드는 GitHub에서 얻을 수 있습니다.

    자크존스노르 / aws dynamodb 작업 및cloudwatch 사용자 정의 지표


    DynamoDB 작업 실행 - step 함수를 검색하고 스캔하는 초마다 호출된 작업을 수행합니다. DynamoDB 작업의 응답에 따라 사용자 정의 도량으로 클라우드 워치를 업데이트합니다.

    좋은 웹페이지 즐겨찾기