Kiness Data Firehose로 간편한 데이터 전송

로그의 요약 주소를 Datadog으로 설정하기 위해 AWS에 나타난 로그를 Datadog에 보낼 때 조사한 내용을 정리했다.

결론


Kinessis Data Firehos에서 특정 외부 서비스로 데이터를 전송할 수 있으며, 이런 방법으로 데이터로 데이터를 전송할 수 있다.
Analyze logs with Datadog using Amazon Kinesis Data Firehose HTTP endpoint delivery

구체적 방법


기본적으로 참고HTTP Endpoint (e.g. New Relic) Destination하면 대응할 수 있습니다.
* Datadog 측에서 API Key를 제작해야 합니다.
resource "aws_cloudwatch_log_group" "log_group" {
  name = "sample-app"
}

resource "aws_cloudwatch_log_subscription_filter" "test_lambdafunction_logfilter" {
  name            = "test_lambdafunction_logfilter"
  role_arn        = aws_iam_role.iam_for_lambda.arn
  log_group_name  = aws_cloudwatch_log_group.log_group.name
  filter_pattern  = "" // 全データを対象とする
  destination_arn = aws_kinesis_firehose_delivery_stream.send_to_datadog.arn
  distribution    = "Random"
}

// パラメータストアにDatadog APIを格納している前提
data "aws_kms_key" "datadog_api" {
  key_id = "alias/datadog/api_key"
}

resource "aws_kinesis_firehose_delivery_stream" "send_to_datadog" {
  name        = "terraform-kinesis-firehose-test-stream"
  destination = "http_endpoint"

  // firehoseからDatadogへ投げたデータのバックアップのために必須
  s3_configuration {
    role_arn           = aws_iam_role.firehose.arn
    bucket_arn         = aws_s3_bucket.bucket.arn
    buffer_size        = 10
    buffer_interval    = 400
    compression_format = "GZIP"
  }

  http_endpoint_configuration {
    // ref: https://docs.aws.amazon.com/firehose/latest/dev/http_troubleshooting.html
    url                = "https://aws-kinesis-http-intake.logs.datadoghq.com/v1/input"
    name               = "Datadog Log"
    access_key         = data.aws_kms_key.datadog_api.value
    buffering_size     = 15
    buffering_interval = 600
    role_arn           = aws_iam_role.firehose.arn
    s3_backup_mode     = "FailedDataOnly"

    request_configuration {
      content_encoding = "GZIP"

      // Datadogでのタグとして設定できる
      common_attributes {
        name  = "env"
        value = "test"
      }
      common_attributes {
        name  = "app-name"
        value = "my-app"
      }
    }
  }
}

잡담


Fargate 유형의 리소스를 처리하는 경우 side car로 dd-agent를 이동하는 것이 가장 쉽습니다.
*기밀 정보는 참조Systems Manager 매개 변수는 사용되는 기밀 데이터의 지정을 저장합니다.하여 패라메트릭 스토어를 통해 확인할 수 있습니다.

잡감


지금까지는 기본적으로 람바다를 써야 하기 때문에 매우 가볍다

좋은 웹페이지 즐겨찾기