본문으로 건너뛰기

KnowledgeForge로 ITSM 지식을 순환시키는 AWS 설계

KnowledgeForge가 ITSM 티켓을 문서로 만들고 벡터 검색과 품질 게이트로 knowledge base를 순환 개선하는 AWS pipeline을 구축합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

KnowledgeForge는 해결된 ITSM incident ticket을 Amazon Bedrock으로 knowledge base article과 root cause analysis document로 만들고, 기존 문서까지 분류·중복 제거·품질 개선하는 AWS 기반 폐루프 pipeline입니다. 생성 단계는 Amazon ECS on AWS Fargate에서 실행하며 고객별 Amazon S3 Vectors 인덱스의 유사 문서 5개를 RAG 문맥으로 재사용하고, curation 단계는 AWS Step Functions Distributed Map으로 문서 분류와 품질 처리를 병렬화합니다. 1,024차원 embedding과 cosine distance 0.05 기준으로 중복을 찾고, 개선 전후 점수 비교와 media placeholder 복원으로 자동 개선의 부작용을 줄입니다. Amazon S3 pointer, SQS FIFO, dead-letter queue, circuit breaker, Bedrock retry를 조합해 상태 크기·순서·실패·quota 문제를 처리하며, 최종 공개 여부는 ServiceNow의 knowledge manager가 승인합니다.

섹션별 상세

01
KnowledgeForge는 해결된 ITSM incident ticket에 남은 증상·근본 원인·해결 조치를 지식 문서로 전환하면서, 이미 쌓인 knowledge base의 중복·노후화·품질 편차도 함께 관리하는 폐루프 구조입니다. 관련 티켓을 주제별 cluster로 묶으면 생성 단계가 knowledge base article과 root cause analysis document를 만들고, curation 단계가 새 문서와 기존 문서를 같은 흐름에 넣습니다. 최종 결과는 ServiceNow에서 knowledge manager가 승인하며, 사람의 검토를 거친 문서만 운영 지식으로 반영됩니다.
ITSM incident ticket과 기존 article이 Amazon S3와 data catalog를 거쳐 생성·curation·human review 단계로 이동하는 AWS KnowledgeForge 구조도입니다.
Diagram첫 번째 이미지는 ingestion, generation, curation, human review와 cross-cutting 보안·관측성 계층을 한 흐름으로 배치합니다. 특히 curation 단계의 Amazon S3 Vectors가 모든 article의 벡터를 저장하고, 주황색 폐루프 화살표가 이 벡터를 다음 generation의 grounding search에 재사용하는 연결을 나타냅니다. 본문의 생성 문서화, 중복 제거, 품질 개선, ServiceNow 승인 과정을 한눈에 확인하게 해주는 핵심 아키텍처 이미지입니다.
02
생성 파이프라인은 고객별 incident cluster JSON을 Amazon S3에 저장하고, 새 파일 이벤트를 Amazon SQS로 전달한 뒤 AWS ECS on AWS Fargate 컨테이너가 고객당 최대 5개 theme을 처리하는 방식입니다. 각 theme마다 고객의 Amazon S3 Vectors 인덱스에서 가장 유사한 기존 문서 5개를 검색해 Amazon Bedrock의 Anthropic Claude Sonnet 4.5에 참고 문맥으로 넣으므로, 기존 용어를 유지하면서 티켓 데이터만으로 생길 수 있는 절차 왜곡을 줄입니다. 결과는 고정된 항목을 갖춘 두 JSON 문서로 Amazon S3에 저장되며, 수 분이 걸리는 긴 작업과 burst 입력에 맞춰 queue depth 기반으로 컨테이너 수를 조절합니다.
03
중복 판별은 keyword가 아니라 의미 기반 벡터 검색으로 처리합니다. Amazon Titan Text Embeddings V2가 각 문서를 1,024차원 embedding으로 변환하고, 고객별 Amazon S3 Vectors 인덱스에서 top-K 5개와 cosine distance 0.05 이하인 항목을 조회해 유사도 0.95 이상을 중복 후보로 잡습니다. 고객 ID와 active status를 필터에 넣어 다른 고객과 retired article을 제외하며, 중복 쌍에서는 새롭고 정확한 문서를 남기고 오래된 문서를 retire해 재실행 때 저장된 벡터를 재사용합니다.
python
response = s3vectors.query_vectors(
    vectorBucketName=VECTOR_BUCKET,
    indexName=VECTOR_INDEX,
    queryVector={"float32": embedding},
    topK=TOP_K + 1,  # +1 because the article can match itself
    returnMetadata=True,
    returnDistance=True,
    filter={"$and": [
        {"tenant_id": {"$eq": TENANT_ID}},  # per-customer isolation
        {"status": {"$in": ["UNIQUE", "PENDING"]}},  # ignore retired articles
    ]},
)
matches = [v for v in response.get("vectors", []) if v["key"] != article_id]

고객별 Amazon S3 Vectors 인덱스에서 의미가 가까운 활성 문서를 조회해 중복 후보를 찾습니다.

04
Curation은 AWS EventBridge의 일일 schedule, AWS Lambda의 변경 문서 탐색과 batch 구성, 고객별 순서를 보장하는 Amazon SQS FIFO, AWS Step Functions의 두 단계 Distributed Map으로 이어집니다. 첫 단계는 문서 분류와 embedding을 수행하고, 둘째 단계는 중복 제거를 batch 내부에서 순차 처리하면서 품질 점수 산출과 콘텐츠 개선을 병렬 실행하며 최대 40개 batch를 동시에 처리합니다. Step Functions의 256 KB 상태 한계를 피하려고 전체 HTML 대신 Amazon S3 manifest와 batch 위치만 전달하고, 항목 처리 유형은 5분 제한을 넘는 Bedrock 호출과 디버깅용 실행 이력 때문에 EXPRESS가 아닌 STANDARD로 설정합니다.
Amazon SQS FIFO가 고객별 batch 순서를 보장하고, AWS Step Functions의 두 Distributed Map 단계가 Amazon S3 pointer를 사용해 문서를 처리하는 curation workflow입니다.
Diagram두 번째 이미지는 Phase 1의 classify·embed와 Phase 2의 deduplicate·quality scoring·enrich 흐름을 분리해 보여줍니다. 전체 article payload 대신 Amazon S3 pointer를 전달하고, 아래쪽의 circuit breaker와 dead-letter queue가 반복 실패 batch를 격리하는 구조도 함께 표시합니다. 본문에서 다룬 256 KB Step Functions 상태 한계, 고객별 FIFO ordering, 부분 실패 허용과 복구 설계를 구체적인 실행 순서로 연결합니다.
05
품질 개선은 모든 문서를 무조건 다시 쓰지 않고, Completeness·Actionability·Structure·Coherence·Readability·Self-service value·Freshness·Automation readiness·Grammar·Security의 10개 가중 항목으로 먼저 점수화하는 방식입니다. 임계값 미만인 문서만 Amazon Bedrock으로 개선하며, 모델이 HTML 이미지 태그와 hyperlink를 훼손하지 않도록 원본 media를 [IMG_N]·[LINK_N] 토큰으로 바꾼 뒤 prose만 처리하고 원래 태그를 복원합니다. 개선 후 재평가 점수가 원본보다 높을 때만 새 버전을 채택하므로 자동화가 문서 품질을 낮추는 경로를 차단합니다.
json
"Phase1_ClassifyEmbed": {
  "Type": "Map",
  "ItemProcessor": {
    "ProcessorConfig": {
      "Mode": "DISTRIBUTED",
      "ExecutionType": "STANDARD"
    }
  },
  "ItemReader": {
    "Resource": "arn:aws:states:::s3:getObject",
    "ReaderConfig": {
      "InputType": "JSON"
    },
    "Parameters": {
      "Bucket.$": "$.bucket",
      "Key.$": "$.manifest_key"
    }
  },
  "MaxConcurrency": 40,
  "ToleratedFailurePercentage": 10
}

Amazon S3 manifest를 읽는 STANDARD Distributed Map으로 최대 40개 항목을 병렬 처리하고 일부 실패를 허용합니다.

06
대규모 Bedrock 호출의 불확실성은 실행별 wall-clock timeout, adaptive retry와 exponential backoff, guardrail throttling fallback, token-limit 재시도로 흡수합니다. Guardrail API가 throttling되면 경고를 남기고 guardrail 없이 재호출하며, 콘텐츠 개선 응답이 token limit에서 끊기면 예산을 두 배로 늘려 모델 한도까지 다시 시도합니다. 반복 실패 batch는 dead-letter queue로 격리되고, dispatcher의 세 번 연속 실패 감지 시 circuit breaker가 새 batch 시작을 멈추지만 warm Lambda 메모리 기반이라 multi-tenant 동시 부하에서는 작동하지 않을 수 있습니다.
python
# Before improvement: swap media/links for [IMG_N] / [LINK_N] tokens
html_with_placeholders, placeholder_map = extract_placeholders(article_html)
enriched = improve_with_bedrock(html_with_placeholders)
# model never sees raw markup

# After improvement: restore the exact original tags in place
restored_html, missing = restore_placeholders(enriched, placeholder_map)

문서 개선 전에 이미지와 링크를 토큰으로 치환하고, 모델 처리 후 원래 태그를 그대로 복원합니다.

07
멀티테넌트 격리는 고객별 configuration profile, Amazon S3 Vectors index, model prompts, Amazon Bedrock guardrail, AWS KMS encryption key를 각각 두는 방식으로 구현합니다. 중복 검색은 해당 고객 인덱스에서만 수행하고 콘텐츠 개선도 고객별 prompt를 사용하므로 한 고객의 문서가 다른 고객 결과에 나타나지 않습니다. 내부 테스트의 대표 실행에서는 대부분 문서가 첫 시도에 처리됐고 일부만 개선 보류나 중복 제거 대상으로 분류됐으며, dead-letter-queue 메시지와 timeout 없이 완료됐지만 실제 처리량은 문서 크기·모델 지연·Bedrock quota에 좌우됩니다.
python
try:
    return converse_with_timeout(kwargs, BEDROCK_CALL_TIMEOUT)
except ClientError as e:
    if "ThrottlingException" in str(e) and guardrail_config:
        log.warn("Guardrail throttled, retrying without guardrail")
        del kwargs["guardrailConfig"]
        return converse_with_timeout(kwargs, BEDROCK_CALL_TIMEOUT)
    raise

Amazon Bedrock guardrail 호출이 throttling되면 경고를 기록하고 guardrail 없이 모델 호출을 재시도합니다.

용어 해설

IT 서비스 관리(ITSM)
ITSM은 장애 티켓, 변경 요청, 문제 해결 기록처럼 IT 서비스 운영 과정에서 생성되는 업무를 관리하는 체계입니다. 이 글에서는 해결된 incident ticket에서 증상·원인·조치 정보를 추출해 지식 문서로 전환하고 기존 문서를 정비하는 데이터 원천으로 활용합니다.
검색 증강 생성(RAG)
RAG는 생성 전에 관련 문서를 검색해 모델 입력에 참고 문맥으로 넣는 방식입니다. KnowledgeForge는 고객별 Amazon S3 Vectors 인덱스에서 유사 문서 5개를 조회해 용어와 절차의 일관성을 높이고 근거 없는 절차 생성을 줄입니다.
벡터 임베딩(Vector Embedding)
벡터 임베딩은 문서의 의미를 숫자 배열로 변환해 의미가 비슷한 문서끼리 가까운 위치에 놓이도록 만드는 표현입니다. KnowledgeForge는 Amazon Titan Text Embeddings V2로 각 문서를 1,024차원 벡터로 바꿔 중복 검색과 다음 생성 단계의 검색 문맥에 함께 사용합니다.
코사인 거리(Cosine Distance)
코사인 거리는 두 벡터의 방향 차이로 의미적 유사도를 판단하는 지표입니다. 이 파이프라인은 거리 0.05 이하, 즉 유사도 0.95 이상인 기존 문서를 중복으로 간주하고 고객과 활성 상태 조건을 함께 적용합니다.
분산 Map(Distributed Map)
Distributed Map은 AWS Step Functions에서 대량 항목을 여러 실행 단위로 나누어 병렬 처리하는 상태 머신 패턴입니다. KnowledgeForge는 두 단계의 Distributed Map으로 문서 분류·임베딩과 중복 제거·품질 개선을 분리하고, 항목 처리에는 STANDARD 실행 유형을 사용합니다.
서킷 브레이커(Circuit Breaker)
Circuit Breaker는 연속 실패가 누적되면 새로운 작업 시작을 잠시 중단해 장애가 전체 처리 흐름으로 번지는 것을 막는 복원력 패턴입니다. KnowledgeForge의 dispatcher는 세 번 연속 실패한 뒤 새 batch 실행을 멈추고 영향받은 문서를 초기 상태로 되돌리지만, warm Lambda 메모리에 실패 횟수를 저장하므로 보장 기능이 아닌 최선 노력 방식으로 운용됩니다.

기술

  • Amazon Bedrock
  • Anthropic Claude Sonnet 4.5
  • Amazon Titan Text Embeddings V2
  • Amazon S3
  • Amazon S3 Vectors
  • Amazon ECS
  • AWS Fargate
  • Amazon SQS
  • AWS Step Functions
  • AWS Lambda
  • Amazon EventBridge
  • ServiceNow
  • Amazon DynamoDB
  • AWS KMS
  • AWS CDK

활용 사례

  • 해결된 ITSM incident ticket에서 knowledge base article과 root cause analysis document 생성
  • 기존 knowledge base의 의미 기반 중복 문서 탐지와 오래된 문서 정리
  • 품질 점수가 낮은 운영 문서의 자동 개선과 knowledge manager 승인
  • 여러 고객의 문서를 분리 처리하는 대규모 생성형 AI document-processing pipeline
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 20.수집 2026. 08. 20.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.