내용으로 건너뛰기

AWS Organizations에서 API 호출을 많이 하는 AWS 계정을 확인하려면 어떻게 해야 합니까?

3분 분량
0

AWS Organizations에서 API 호출을 많이 하는 계정을 확인하려고 합니다.

해결 방법

API 호출을 많이 하는 계정을 확인하려면 Amazon CloudWatch Logs와 CloudWatch 지표를 모두 사용하는 것이 좋습니다.

다음 해결 방법은 Amazon Virtual Private Cloud(Amazon VPC) DescribeVpcEndpoints API를 사용합니다.

참고: Amazon Elastic Compute Cloud(Amazon EC2)는 계정 수준에서 API 요청을 조절합니다. 또한 Amazon EC2는 성능을 개선하기 위해 조직 수준에서도 API 요청을 조절합니다.

CloudWatch 로그를 사용하여 가장 많이 호출하는 계정 확인

특정 기간 동안 API를 가장 많이 호출한 계정을 확인하고 모든 계정의 전체 API 호출을 집계하려면 CloudWatch 로그를 사용합니다. CloudWatch 로그 대시보드를 생성하려면 다음 단계를 완료하십시오.

  1. 조직을 위한 새 AWS CloudTrail 트레일을 생성하거나 기존 트레일을 수정하여 CloudWatch 로그에 트레일을 게시합니다.
    참고: CloudWatch 로그활성화됨으로 설정해야 합니다.
  2. CloudWatch 콘솔을 엽니다.
    참고: CloudWatch 로그를 생성할 때 사용한 계정을 사용하십시오.
  3. 탐색 창에서 로그를 선택한 다음 Contributor Insights를 선택합니다.
  4. Contributor Insights 규칙을 생성한 다음 구문을 선택합니다.
  5. 각 계정에서 수행한 API 호출 수를 가져오려면 구문 편집기에 다음 코드를 입력합니다.
    {
      "AggregateOn": "Count",
      "Contribution": {
        "Filters": [
          {
            "Match": "$.eventName",
            "In": [
              "DescribeVpcEndpoints"
            ]
          }
        ],
        "Keys": [
          "$.userIdentity.accountId",
          "$.eventName"
        ]
      },
      "LogFormat": "JSON",
      "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
      },
      "LogGroupARNs": [
        "arn:aws:logs:us-west-2:account:log-group:aws-cloudtrail-logs-73008ace"
      ]
    }
    모든 계정의 모든 API 호출의 집계를 가져오려면 다음 코드를 입력합니다.
    {
      "AggregateOn": "Count",
      "Contribution": {
        "Filters": [
          {
            "Match": "$.eventName",
            "In": [
              "DescribeVpcEndpoints"
            ]
          }
        ],
        "Keys": [
          "$.eventName"
        ]
      },
      "LogFormat": "JSON",
      "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
      },
      "LogGroupARNs": [
        "arn:aws:logs:us-west-2:account:log-group:aws-cloudtrail-logs-73008ace"
      ]
    }
    참고: DescribeVpcEndpoints를 API 호출로, arn:aws:logs:us-west-2:account:log-group:aws-cloudtrail-logs-73008ace를 로그 그룹 ARN으로 바꾸십시오.
  6. 작업을 선택한 다음 대시보드에 추가를 선택합니다.
  7. 기존 대시보드를 선택하거나 새 대시보드를 생성합니다.
  8. 저장을 선택합니다.

다음과 같은 CloudWatch Logs Insights 쿼리를 실행하여 특정 기간 동안 가장 많이 호출한 계정을 찾을 수도 있습니다.

fields @timestamp, @message, @logStream, @log
| filter eventName = 'DescribeVpcEndpoints'
| sort @timestamp desc
| stats count() by bin(1m)

참고: DescribeVpcEndpoints를 API 호출로 바꾸십시오.

CloudWatch 지표를 사용하여 가장 많이 호출하는 계정 확인

참고: 구성이 지표 인사이트 할당량을 준수하는지 확인하십시오.

API 호출이 최대 할당량의 60%에 도달하면 알림을 보내는 CloudWatch 경보를 생성하는 것이 좋습니다.

CloudWatch 지표 대시보드를 설정하려면 다음 단계를 완료하십시오.

  1. 교차 계정 관찰성을 설정합니다.
  2. CloudWatch 콘솔을 엽니다.
  3. 지표 사용을 선택한 다음 모든 지표 탭을 선택합니다.
  4. 소스를 선택하고 다음 코드를 입력합니다.
    {
      "metrics": [
        [
          {
            "expression": "SELECT SUM(CallCount) FROM SCHEMA(\"AWS/Usage\", Class,Resource,Service,Type) WHERE Resource = 'DescribeVpcEndpoints'",
            "label": "Query1",
            "id": "q1",
            "period": 60
          }
        ]
      ],
      "view": "timeSeries",
      "stacked": false,
      "region": "us-east-1",
      "stat": "Average",
      "period": 60,
      "annotations": {
        "horizontal": [
          {
            "label": "Org throttle",
            "value": 225
          }
        ]
      }
    }
    참고: DescribeVpcEndpoints를 API 호출로, us-east-1을 AWS 리전으로, 225를 경보 할당량으로 바꾸십시오.
  5. 업데이트를 선택합니다.
  6. 작업을 선택한 다음 대시보드에 추가를 선택합니다.
  7. 기존 대시보드를 선택하거나 새 대시보드를 생성합니다. CloudWatch 로그 데이터가 있는 동일한 대시보드를 사용하는 것이 좋습니다.
  8. 저장을 선택합니다.

관련 정보

Amazon CloudWatch에서 AWS CloudTrail 분석

AWS PrivateLink 할당량

AWS 공식업데이트됨 2년 전