CloudWatch Logs를 사용하여 모델 간접 호출 모니터링 - Amazon Bedrock

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

CloudWatch Logs를 사용하여 모델 간접 호출 모니터링

모델 호출 로깅을 사용하여 리전의 Amazon Bedrock에서 AWS 계정 사용되는의 모든 호출에 대한 호출 로그, 모델 입력 데이터 및 모델 출력 데이터를 수집할 수 있습니다.

호출 로깅을 사용하면 리전의 계정에서 수행된 모든 호출과 관련된 전체 요청 데이터, 응답 데이터 및 메타데이터를 수집할 수 있습니다. 로그 데이터가 게시될 대상 리소스를 제공하도록 로깅을 구성할 수 있습니다. 지원되는 대상에는 Amazon CloudWatch Logs 및 Amazon Simple Storage Service(S3)가 포함됩니다. 동일한 계정 및 리전의 대상만 지원됩니다.

모델 간접 호출 로깅은 기본적으로 비활성화되어 있습니다.

다음 작업은 모델 간접 호출을 로깅할 수 있습니다.

Converse API를 사용할 때 전달하는 모든 이미지 또는 문서 데이터는 Amazon S3에 로깅됩니다(Amazon S3에서 전송 및 이미지 로깅을 활성화한 경우).

간접 호출 로깅을 활성화하려면 우선 Amazon S3 또는 CloudWatch Logs 대상을 설정해야 합니다. 콘솔 또는 API를 통해 간접 호출 로깅을 활성화할 수 있습니다.

Amazon S3 대상 설정

다음 단계에 따라 Amazon Bedrock에서 로깅하려는 S3 대상을 설정할 수 있습니다.

  1. 로그가 전송될 S3 버킷을 생성합니다.

  2. 아래와 같이 버킷 정책을 추가합니다(accountId, region, bucketName, prefix(선택 사항)의 값을 바꿉니다).

    참고

    S3:GetBucketPolicyS3:PutBucketPolicy 권한으로 로깅을 구성하면 사용자를 대신하여 버킷 정책이 버킷에 자동으로 연결됩니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonBedrockLogsWrite", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucketName/prefix/AWSLogs/accountId/BedrockModelInvocationLogs/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } } ] }
  3. (선택 사항) 버킷에 SSE-KMS를 구성할 경우, KMS 키에서 아래의 정책을 추가합니다.

    { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } }

S3 SSE-KMS 구성에 대한 자세한 내용은 KMS 암호화 지정을 참조하세요.

참고

버킷 정책을 적용하려면 버킷 ACL을 비활성화해야 합니다. 자세한 내용은 모든 새 버킷에 대해 ACL 사용 중지 및 객체 소유권 시행을 참조하세요.

CloudWatch Logs 대상 설정

다음 단계에 따라 Amazon Bedrock에서 로깅하려는 Amazon CloudWatch Logs 대상을 설정할 수 있습니다.

  1. 로그가 게시될 CloudWatch 로그 그룹을 생성합니다.

  2. CloudWatch Logs에 대해 다음과 같은 권한을 가진 IAM 역할을 생성합니다.

    신뢰할 수 있는 엔터티:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } } ] }

    역할 정책:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:accountId:log-group:logGroupName:log-stream:aws/bedrock/modelinvocations" } ] }

CloudWatch Logs에서 CloudWatch Logs용 SSE를 설정하는 방법에 대한 자세한 내용은 Encrypt log data in CloudWatch Logs using AWS Key Management Service를 참조하세요.

콘솔을 사용한 모델 간접 호출 로깅

모델 간접 호출 로깅을 활성화하려면 설정 페이지의 로깅 토글 스위치 옆에 있는 슬라이더 버튼을 드래그합니다. 로깅을 위한 추가 구성 설정이 패널에 표시됩니다.

로그에 게시할 데이터 요청 및 응답을 선택합니다. 다음과 같은 출력 옵션을 조합하여 선택할 수도 있습니다.

  • 텍스트

  • 이미지

  • 임베딩

로그를 게시할 위치를 선택합니다.

  • Amazon S3에만 게시

  • CloudWatch Logs에만 게시

  • CloudWatch Logs 및 Amazon S3 양쪽 모두에 게시

Amazon S3 및 CloudWatch Logs 대상은 간접 호출 로그와 소규모 입력 및 출력 데이터에 대해 지원됩니다. 대규모 입력 및 출력 데이터 또는 바이너리 이미지 출력의 경우, Amazon S3만 지원됩니다. 아래의 세부 정보에는 데이터가 대상 위치에 어떻게 표시되는지 요약되어 있습니다.

  • S3 대상 - 각각 간접 호출 로그 레코드 배치를 포함하는 Gzip으로 압축된 JSON 파일이 지정된 S3 버킷으로 전송됩니다. CloudWatch Logs 이벤트와 마찬가지로, 각 레코드에는 간접 호출 메타데이터와 최대 100KB 크기의 입력 및 출력 JSON 본문이 포함됩니다. 100KB보다 큰 바이너리 데이터 또는 JSON 본문은 데이터 접두사 아래에 지정된 Amazon S3 버킷에 개별 객체로 업로드됩니다. Amazon S3 Select 및 Amazon Athena를 사용하여 데이터를 쿼리할 수 있으며, AWS Glue를 사용하여 ETL에 대해 카탈로그화할 수 있습니다. 데이터는 OpenSearch Service에 로드하거나, 모든 Amazon EventBridge 대상에서 처리할 수 있습니다.

  • CloudWatch 로그 대상 - JSON 간접 호출 로그 이벤트는 CloudWatch Logs의 지정된 로그 그룹으로 전송됩니다. 로그 이벤트에는 간접 호출 메타데이터와 최대 100KB 크기의 입력 및 출력 JSON 본문이 포함됩니다. 대용량 데이터 전송을 위한 Amazon S3 위치가 제공된 경우, 100KB보다 큰 바이너리 데이터 또는 JSON 본문이 데이터 접두사 아래의 Amazon S3 버킷에 업로드됩니다. CloudWatch Logs Insights를 사용하여 데이터를 쿼리할 수 있으며, CloudWatch Logs를 사용하여 실시간으로 다양한 서비스로 데이터를 스트리밍할 수 있습니다.

API를 사용한 모델 간접 호출 로깅

다음과 같은 API를 사용하여 모델 간접 호출 로깅을 구성할 수 있습니다.