

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

# 4단계: 배포 후 구성
<a name="step-4-post-deployment-configuration"></a>

이 섹션에서는 배포 후 솔루션을 구성하기 위한 권장 사항을 제공합니다.

## Amazon S3 버킷 버전 관리, 수명 주기 정책 및 리전 간 복제
<a name="amazon-s3-bucket-versioning-lifecycle-policies-and-cross-region-replication"></a>

이 솔루션은 생성하는 버킷에 수명 주기 구성을 적용하지 않습니다. 다음과 같이 하는 것이 좋습니다:
+ 프로덕션 배포를 위한 수명 주기 구성 설정. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [버킷에 대한 수명 주기 구성 설정을](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html) 참조하세요.
+ 솔루션이 배포된 사용 사례에 따라 Amazon S3 버킷에 대한 [버전 관리](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) 및 [리전 간 복제](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html)를 활성화합니다.

## Amazon DynamoDB 백업
<a name="amazon-dynamodb-backups"></a>

이 솔루션은 DynamoDB를 여러 용도로 사용합니다([이 솔루션의 AWS 서비스](architecture-details.md#aws-services-in-this-solution) 참조). 솔루션은 생성하는 테이블에 대한 백업을 활성화하지 않습니다. 프로덕션 배포를 위해이 기능의 백업을 생성하는 것이 좋습니다. 자세한 내용은 [ DynamoDB 테이블 백업](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Backup.Tutorial.html) 및 [ DynamoDB용 AWS Backup 사용을](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/backuprestore_HowItWorksAWS.html) 참조하세요.

## Amazon CloudWatch 대시보드 및 경보
<a name="amazon-cloudwatch-dashboard-and-alarms"></a>

이 솔루션은 CloudWatch에 사용자 지정 대시보드를 배포하여 사용자 지정 게시 지표 및 AWS 서비스 지표에서 차트를 렌더링합니다. CloudWatch [경보](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)를 생성하고 솔루션이 배포된 사용 사례에 따라 알림을 추가하는 것이 좋습니다.

## Amazon CloudWatch Logs
<a name="amazon-cloudwatch-logs"></a>

Lambda 로그는 만료되지 않도록 구성되며 API Gateway 로그는 10년 만료로 구성됩니다. 엔터프라이즈의 레코드 보존 정책에 맞게 각 로그 그룹의 만료를 업데이트할 수 있습니다.

## TLS v1.2 이상의 인증서가 있는 사용자 지정 웹 도메인
<a name="custom-web-domains-with-tls-v1.2-or-higher-certificates"></a>

솔루션은 CloudFront를 사용하여 웹 UI 및 Edge Optimized API Gateway를 배포합니다. CloudFront의 도메인은 TLS v1.2 이상의 인증서를 적용하지 않습니다. [Amazon Route 53](https://aws.amazon.com/route53/)을 사용하여 사용자 지정 도메인을 생성하거나, [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)를 사용하여 인증서를 생성하거나, 조직에 기존 인증서가 있는 경우 기존 인증서를 사용하는 것이 좋습니다.

자세한 내용은 [Amazon Route 53 개발자 안내서](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) 및 [API Gateway의 사용자 지정 도메인에 대한 최소 TLS 버전 선택을 참조하세요](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html).

## Amazon Kendra를 사용한 확장
<a name="scaling-with-amazon-kendra"></a>

이 솔루션은 Amazon Kendra를 사용하여 수집된 문서에서 NLP 기반 지능형 검색을 수행하는 기능을 제공합니다. 대규모 워크로드에 대해 다음 CloudFormation 파라미터를 사용하여 Amazon Kendra의 용량을 늘릴 수 있습니다.


| 파라미터 | 기본값 | 설명 | 
| --- | --- | --- | 
|   [Amazon Kendra 추가 쿼리 용량](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-capacityunitsconfiguration.html#cfn-kendra-index-capacityunitsconfiguration-querycapacityunits)   |   `0`   |  인덱스 및 [GetQuerySuggestions](https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html) 용량에 대한 추가 쿼리 용량입니다. 인덱스에 대한 추가 용량 단위는 하루에 약 8,000개의 쿼리를 제공합니다.  | 
|   [Amazon Kendra 추가 스토리지 용량](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-capacityunitsconfiguration.html#cfn-kendra-index-capacityunitsconfiguration-storagecapacityunits)   |   `0`   |  인덱스에 대한 추가 스토리지 용량입니다. 단일 용량 단위는 30GB의 스토리지 공간 또는 100,000개의 문서 중 먼저 도달하는 쪽을 제공합니다.  | 
|   [Amazon Kendra 에디션](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html)   |   `Developer`   |  Amazon Kendra는 인덱스를 생성할 수 있는 개발자 및 엔터프라이즈 에디션을 제공합니다. Amazon Kendra Edition의 차이점에 대한 자세한 내용은 [Amazon Kendra 요금을](https://aws.amazon.com/kendra/pricing/) 참조하세요.  | 

이러한 CloudFormation 파라미터의 값을 수정하려면 스택 배포 시 적절한 값을 선택합니다. 쿼리 및 스토리지 용량 단위에 대한 자세한 내용은 [용량 조정을 참조하세요](https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html).

**참고**  
텍스트 사용 사례가 RAG가 활성화된 상태로 배포되지 않은 경우 Amazon Kendra 인덱스가 사용되거나 생성되지 않습니다.

## Idp 페더레이션을 사용하여 SSO 설정
<a name="setting-up-sso-using-idp-federation"></a>

이 솔루션을 사용하면 SAML 또는 OIDC 기반 자격 증명 페더레이션을 지원하는 외부 자격 증명 공급자와 통합할 수 있습니다. 솔루션이 배포되면 배포 대시보드 및 개별 사용 사례에 대한 Amazon Cognito 사용자 풀과 개별 앱 클라이언트 통합이 생성됩니다. 외부 Idp를 기반으로 *Amazon Cognito 개발자 안내서*의 [사용자 풀에 대한 자격 증명 공급자 구성](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-provider.html) 섹션에 제공된 단계에 따라 SSO를 설정하려는 배포 대시보드 또는 사용 사례에 대한 앱 클라이언트 통합을 선택합니다.

사용자 그룹 정보를 RAG 기반 아키텍처의 지식 기반 또는 벡터 스토어에 전달하려면 외부 Idp의 사용자 그룹을 Amazon Cognito 사용자 그룹으로 매핑해야 합니다. 솔루션은 [사전 토큰 생성](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html) 단계와 매핑할 초기 스캐폴딩 [Lambda 함수](https://github.com/aws-solutions/generative-ai-application-builder-on-aws/tree/main/source/lambda/ext-idp-group-mapper) 트리거를 제공합니다. Lambda 함수에는 [그룹 매핑을 제공하도록 업데이트해야 하는 group\$1mapping.json](https://github.com/aws-solutions/generative-ai-application-builder-on-aws/tree/main/source/lambda/ext-idp-group-mapper/config/group_mapping.json) 파일이 있습니다. Amazon Cognito에서 지원하는 [Lambda 트리거에 대한 Lambda 트리거를 사용하여 사용자 풀 워크플로 사용자 지정](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html)을 참조하세요.

## 수동 사용자 풀 구성
<a name="manual-user-pool-configuration"></a>

배포 중에 관리자 또는 기본 사용자 이메일을 전달하지 않도록 선택한 경우 올바른 권한을 보장하려면 Amazon Cognito에서 적절한 사용자 그룹을 수동으로 생성해야 합니다.

1. 배포 대시보드의 경우 Cognito 사용자 풀`Admin`에 라는 그룹을 생성합니다.

1. 각 사용 사례에 대해 Cognito 사용자 풀`${UseCaseName}-Users`에 라는 그룹을 생성합니다. 여기서 `${UseCaseName}`는 배포된 사용 사례의 이름입니다.

이러한 그룹은 권한 부여 메커니즘이 올바르게 작동하는 데 필요합니다. 액세스 권한을 부여하려는 모든 사용자를 적절한 그룹에 추가해야 합니다.

`placeholder@example.com`이 전달되면 Cognito 그룹이 생성되지만 연결된 사용자를 생성하고 그룹에 할당해야 합니다.

## 로그인 화면 사용자 지정
<a name="customizing-login-screen"></a>

이 솔루션은 [Amazon Cognito 호스팅 UI](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-integration.html)를 사용하여 로그인 페이지를 렌더링합니다. 기본 제공 로그인 페이지를 사용자 지정하려면 *Amazon Cognito 개발자 안내서*[의 기본 제공 로그인 및 가입 웹 페이지 사용자 지정](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-ui-customization.html)을 참조하세요.

## 추가 보안 고려 사항
<a name="additional-security-considerations"></a>

솔루션을 배포하는 사용 사례에 따라 다음 보안 권장 사항을 검토합니다.
+  **고객 관리형 AWS KMS 암호화 키** - 솔루션은 AWS 관리형 AWS KMS 키를 추가 비용 없이 사용할 수 있으므로 기본적으로 이를 사용합니다. 사용 사례를 검토하여 [고객 관리형 AWS KMS 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) 사용하도록 솔루션을 업데이트해야 하는지 확인합니다.
+  **API Gateway 제한 규칙** - 솔루션은 API Gateway에 기본 제한 규칙을 사용하여 배포됩니다. 사용 사례와 예상 트랜잭션 볼륨에 따라 APIs에 대한 제한을 구성하는 것이 좋습니다. 자세한 내용은 *Amazon API Gateway * [API Gateway 개발자 안내서의 처리량 향상을 위한 API 요청 제한을](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) 참조하세요.
+  **AWS CloudTrail 활성화** - AWS 계정에서 API 호출을 로깅하기 위해 솔루션이 배포된 AWS 계정에서 AWS [ CloudTrail](https://aws.amazon.com/cloudtrail/)을 활성화하는 것이 좋습니다. 자세한 내용은 [AWS CloudTrail 사용 설명서를](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 참조하세요.
+  **드리프트 감지** - 배포된 솔루션 스택에 대한 의도하지 않거나 악의적인 변경 사항을 식별하고 알림을 받도록 CloudFormation 스택에서 드리프트 감지를 구성하는 것이 좋습니다. 자세한 내용은 [ AWS CloudFormation 스택에서 드리프트를 자동으로 감지하는 경보 구현을 참조하세요](https://aws.amazon.com/blogs/mt/implementing-an-alarm-to-automatically-detect-drift-in-aws-cloudformation-stacks/).
+  **Cognito JSON 웹 토큰(JWTs)** -이 솔루션은 Amazon Cognito에서 발급한 JWTs 사용하여 REST API 엔드포인트로 인증합니다. [ID 토큰](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html) 및 [액세스 토큰의 만료 시간이 5분으로 솔루션을 구성했습니다](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html). 사용자가 로그아웃하면 새 토큰을 생성하는 기능이 취소됩니다([새 토큰](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html)이 취소됨). 그러나 현재 토큰이 만료될 때까지 API 엔드포인트에 대한 모든 요청은 유효한 토큰이 있으므로 성공적으로 인증됩니다. 사용 사례에 대한 보안 고려 사항을 검토하고 토큰 유효 기간을 조정합니다.

 **수명 주기 정책 사용자 지정:** 

프로덕션 배포의 경우 보존 요구 사항에 따라 수명 주기 정책을 검토하고 조정합니다. *Amazon Simple Storage Service 사용 설명서*의 [버킷에 대한 수명 주기 구성 설정을](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html) 참조하세요.

## 멀티모달 파일 스토리지 및 수명 주기
<a name="multimodal-file-storage-and-lifecycle"></a>

사용 사례에 대해 멀티모달 입력 기능(**MultimodalEnabled**를 로 설정`Yes`)을 활성화한 경우 솔루션은 업로드된 파일을 저장할 Amazon S3 버킷과 파일 메타데이터를 추적할 DynamoDB 테이블을 생성합니다.

 **기본 수명 주기 정책:** 
+  **S3 파일:** 48시간 후 자동으로 삭제됨
+  **DynamoDB 메타데이터:** 레코드는 24시간 후에 만료됩니다(대화 기록 TTL).

 **보안 고려 사항:** 
+ 파일은 사용 사례 ID, 사용자 ID, 대화 ID 및 메시지 ID로 분할되며 대신 UUID 이름으로 저장됩니다. UUID와 파일 이름의 매핑은 DynamoDB 메타데이터 테이블에서 사용할 수 있습니다.
+ 사용자는 자신의 대화 내에서 업로드한 파일에만 액세스할 수 있습니다.
+ 매직 번호 감지를 사용하여 파일 유형 검증 수행
+ 업로드된 파일에 악성 콘텐츠가 있는지 스캔하려면 [Amazon GuardDuty Malware Protection for S3](https://docs.aws.amazon.com/guardduty/latest/ug/gdu-malware-protection-s3.html)를 활성화하는 것이 좋습니다.