

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

# CloudWatch Logs 및 Amazon S3를 사용하여 모델 간접 호출 모니터링
<a name="model-invocation-logging"></a>

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

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

모델 간접 호출 로깅은 기본적으로 비활성화되어 있습니다. 모델 간접 호출 로깅이 활성화되면 로깅 구성이 삭제될 때까지 로그가 저장됩니다.

다음 작업은 모델 간접 호출을 로깅할 수 있습니다.
+ [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html)
+ [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html)
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)
+ [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)

[Converse API를 사용](conversation-inference-call.md)할 때, 전달한 이미지 또는 문서 데이터는 Amazon S3에 기록됩니다(Amazon S3에서 전송 및 이미지 로깅을 [활성화](#model-invocation-logging-console)한 경우).

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

**Topics**
+ [Amazon S3 대상 설정](#setup-s3-destination)
+ [CloudWatch Logs 대상 설정](#setup-cloudwatch-logs-destination)
+ [콘솔을 사용한 모델 간접 호출 로깅](#model-invocation-logging-console)
+ [API를 사용한 모델 간접 호출 로깅](#using-apis-logging)

## Amazon S3 대상 설정
<a name="setup-s3-destination"></a>

**참고**  
Amazon S3를 로깅 대상으로 사용하는 경우 모델 호출 로깅 구성을 생성하는 AWS 리전 것과 동일한에서 버킷을 생성해야 합니다.

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

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

1. 아래와 같이 버킷 정책을 추가합니다(*accountId*, *region*, *bucketName*, *prefix*(선택 사항)의 값을 바꿉니다).
**참고**  
`S3:GetBucketPolicy` 및 `S3:PutBucketPolicy` 권한으로 로깅을 구성하면 사용자를 대신하여 버킷 정책이 버킷에 자동으로 연결됩니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AmazonBedrockLogsWrite",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketName/prefix/AWSLogs/123456789012/BedrockModelInvocationLogs/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------

1. (선택 사항) 버킷에 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 암호화 지정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)을 참조하세요.

**참고**  
버킷 정책을 적용하려면 버킷 ACL을 비활성화해야 합니다. 자세한 내용은 [모든 새 버킷에 대해 ACL 사용 중지 및 객체 소유권 시행](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html)을 참조하세요.

## CloudWatch Logs 대상 설정
<a name="setup-cloudwatch-logs-destination"></a>

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

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

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

   **신뢰할 수 있는 엔터티**:

------
#### [ JSON ]

****  

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

------

   **역할 정책**:

------
#### [ JSON ]

****  

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

------

CloudWatch Logs에서 CloudWatch Logs용 SSE를 설정하는 방법에 대한 자세한 내용은 [CloudWatch Logs의 로그 데이터를 AWS Key Management Service으로 암호화하기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)를 참조하세요.

## 콘솔을 사용한 모델 간접 호출 로깅
<a name="model-invocation-logging-console"></a>

**모델 호출 로깅을 활성화하려면**

Amazon Bedrock 콘솔을 사용할 권한이 있는 IAM 자격 증명 AWS Management Console 으로에 로그인합니다. 그 다음 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)에서 Amazon Bedrock 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **설정을** 선택합니다.

1. **모델 호출 로깅** 페이지에서 **모델 호출 로깅을** 선택합니다. 로깅에 대한 추가 구성 설정이 표시됩니다.

1. 로그에 게시하려는 데이터 요청 및 응답의 형식을 선택합니다. 다음 출력 옵션의 조합을 선택할 수 있습니다.
   + 텍스트
   + 이미지
   + 임베딩
   + 비디오
**참고**  
선택한 양식(입력 또는 출력)을 지원하는 *모든* 모델에 대해 데이터가 기록됩니다. 예를 들어 **이미지를** 선택하면 이미지 입력, 이미지 출력 또는 둘 다를 지원하는 모든 모델에 대해 모델 호출이 로깅됩니다.

1. 로그를 게시할 위치를 선택합니다.
   + 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를 사용한 모델 간접 호출 로깅
<a name="using-apis-logging"></a>

다음과 같은 API를 사용하여 모델 간접 호출 로깅을 구성할 수 있습니다.
+ [PutModelInvocationLoggingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_PutModelInvocationLoggingConfiguration.html)
+ [GetModelInvocationLoggingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelInvocationLoggingConfiguration.html)
+ [DeleteModelInvocationLoggingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteModelInvocationLoggingConfiguration.html)