Amazon Managed Service for Apache Flink(Amazon MSF)는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려져 있었습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
실시간 벡터 임베딩 블루프린트 - FAQ
실시간 벡터 임베딩 블루프린트에 관한 FAQ를 검토하세요. 실시간 벡터 임베딩 블루프린트에 관한 자세한 내용은 실시간 벡터 임베딩 블루프린트를 참조하세요.
FAQ
이 블루프린트는 어떤 AWS 리소스를 생성하나요?
계정에 배포된 리소스를 찾으려면 AWS CloudFormation 콘솔로 이동하여 Managed Service for Apache Flink 애플리케이션에 제공한 이름으로 시작하는 스택 이름을 식별합니다. 리소스 탭을 선택하여 스택의 일부로 생성된 리소스를 확인합니다. 스택이 생성하는 주요 리소스는 다음과 같습니다.
-
실시간 벡터 임베딩 Managed Service for Apache Flink 애플리케이션
-
실시간 벡터 임베딩 애플리케이션의 소스 코드를 저장하는 Amazon S3 버킷
-
로그를 저장하는 CloudWatch 로그 그룹 및 로그 스트림
-
리소스를 조회하고 생성하는 Lambda 함수
-
Lambda, Managed Service for Apache Flink 애플리케이션, Amazon Bedrock, Amazon OpenSearch Service에 액세스하기 위한 IAM 역할 및 정책
-
Amazon OpenSearch Service 데이터 액세스 정책
-
Amazon Bedrock 및 Amazon OpenSearch Service에 액세스하기 위한 VPC 엔드포인트
AWS CloudFormation 스택 배포가 완료된 후 내 작업은 무엇입니까?
AWS CloudFormation 스택 배포가 완료되면 Managed Service for Apache Flink 콘솔에 액세스하여 블루프린트 Managed Service for Apache Flink 애플리케이션을 찾습니다. 구성 탭에서 모든 런타임 속성이 올바르게 설정되어 있는지 확인합니다. 속성이 많으면 다음 페이지로 이어질 수 있습니다. 설정이 정확하다는 확신이 들면 실행을 선택합니다. 애플리케이션은 주제에서 메시지를 수집하기 시작합니다.
새 릴리스를 확인하려면 https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases
소스 Amazon MSK 주제의 데이터는 어떤 구조로 구성되어 있어야 하나요?
현재 정형 및 비정형 소스 데이터를 모두 지원합니다.
-
비정형 데이터는
STRING에서source.msk.data.type으로 표시됩니다. 데이터는 들어오는 메시지 값을 그대로 읽습니다. -
조화된 JSON 데이터도 지원하며, 이는
source.msk.data.type에서JSON으로 지정됩니다. 데이터는 반드시 JSON 형식이어야 합니다. 애플리케이션은 잘못된 형식의 JSON을 수신하면 실패합니다. -
JSON을 소스 데이터 유형으로 사용할 경우 모든 소스 주제의 메시지가 유효한 JSON인지 반드시 확인해야 합니다. 이 설정에서 JSON 객체가 아닌 데이터를 포함한 주제를 구독하면 애플리케이션은 실패합니다. 한 이상의 주제에 정형 데이터와 비정형 데이터가 혼합된 경우 Managed Service for Apache Flink 애플리케이션에서 소스 데이터를 비정형 데이터로 구성하는 것이 좋습니다.
메시지의 일부만 임베딩하도록 지정할 수 있나요?
-
source.msk.data.type이STRING인 비정형 입력 데이터의 경우 애플리케이션은 메시지 전체를 임베딩하며 구성된 OpenSearch 인덱스에 전체 메시지를 저장합니다. -
source.msk.data.type이JSON인 정형 입력 데이터의 경우,embed.input.config.json.fieldsToEmbed값을 설정해 JSON 객체에서 임베딩할 필드를 지정할 수 있습니다. 이 설정은 최상위 JSON 필드만 지원하며 중첩 JSON이나 JSON 배열이 포함된 메시지에는 사용할 수 없습니다. 전체 JSON을 임베딩하려면 .*를 사용하세요.
여러 Amazon MSK 주제에서 데이터를 읽을 수 있나요?
네, 이 애플리케이션은 여러 Amazon MSK 주제에서 데이터를 읽을 수 있습니다. 모든 주제의 데이터는 동일한 유형(STRING 또는 JSON)이어야 하며, 그렇지 않으면 애플리케이션이 실패할 수 있습니다. 모든 주제에서 읽은 데이터는 항상 하나의 OpenSearch 인덱스에 저장됩니다.
Amazon MSK 주제 이름을 정규식으로 구성할 수 있나요?
source.msk.topic.names는 정규식 목록을 지원하지 않습니다. 쉼표로 구분된 주제 이름 목록 또는 모든 주제를 포함하기 위한 .* 정규식을 지원합니다.
Amazon MSK 주제에서 읽을 수 있는 메시지의 최대 크기는 얼마인가요?
처리할 수 있는 메시지의 최대 크기는 현재 25,000,000으로 설정된 Amazon Bedrock InvokeModel 본문 제한에 의해 결정됩니다. 자세한 내용은 InvokeModel을 참조하세요.
어떤 유형의 OpenSearch가 지원되나요?
OpenSearch 도메인과 컬렉션을 모두 지원합니다. OpenSearch 컬렉션을 사용하는 경우 이 애플리케이션에서 사용하기 위해 벡터 컬렉션을 사용하고 벡터 인덱스를 생성해야 합니다. 이렇게 하면 데이터를 쿼리하기 위해 OpenSearch 벡터 데이터베이스 기능을 사용할 수 있습니다. 자세한 내용은 Amazon OpenSearch Service의 벡터 데이터 베이스 기능 설명
OpenSearch Serverless 컬렉션에서 벡터 검색 컬렉션, 벡터 인덱스, 벡터 필드를 사용해야 하는 이유는 무엇인가요?
OpenSearch Serverless의 벡터 검색 컬렉션 유형은 확장 가능하고 성능이 우수한 유사성 검색 기능을 제공합니다. 이는 최신 기계 학습(ML) 기반 증강 검색 환경과 생성형 인공 지능(AI) 애플리케이션을 구축하는 과정을 간소화합니다. 자세한 내용은 벡터 검색 컬렉션 작업을 참조하세요.
벡터 필드의 차원으로 무엇을 설정해야 하나요?
벡터 필드의 차원은 사용할 임베딩 모델에 따라 설정합니다. 다음 표를 참조하고 해당 설명서에서 이러한 값을 확인합니다.
| Amazon Bedrock 벡터 임베딩 모델 이름 | 모델이 제공하는 출력 차원 지원 |
|---|---|
|
Amazon Titan Text Embeddings V1 |
1,536 |
|
Amazon Titan Text Embeddings V2 |
1,024(기본값), 384, 256 |
|
Amazon Titan Multimodal Embeddings G1 |
1,024(기본값), 384, 256 |
|
Cohere Embed English |
1,024 |
|
Cohere Embed Multilingual |
1,024 |
구성된 OpenSearch 인덱스에서 출력은 어떻게 보이나요?
OpenSearch 인덱스의 모든 문서에는 다음 필드가 포함됩니다.
-
original_data: 임베딩을 생성하는 데 사용된 데이터입니다. STRING 유형의 경우 전체 메시지입니다. JSON 객체의 경우 임베딩에 사용된 JSON 객체입니다. 이는 메시지의 전체 JSON이 될 수도 있고 JSON 내 지정된 필드가 될 수도 있습니다. 예를 들어, 들어오는 메시지에서 이름 필드가 임베딩 대상으로 선택된 경우 출력은 다음과 같습니다.
"original_data": "{\"name\":\"John Doe\"}" -
embedded_data: Amazon Bedrock에서 생성한 임베딩의 벡터 부동 배열입니다.
-
날짜: 문서가 OpenSearch에 저장된 시점의 UTC 타임스탬프입니다.
OpenSearch 인덱스에 저장되는 문서에 추가할 메타데이터 필드를 지정할 수 있나요?
아니요. 현재 OpenSearch 인덱스에 저장되는 최종 문서에 추가 필드를 포함하는 기능은 지원하지 않습니다.
OpenSearch 인덱스에서 중복 항목이 발생할 수 있나요?
애플리케이션 구성 방식에 따라 인덱스에 중복 메시지가 나타날 수 있습니다. 일반적인 원인은 애플리케이션 재시작입니다. 애플리케이션은 기본적으로 소스 주제의 가장 이른 메시지부터 읽도록 구성되어 있습니다. 구성을 변경하면 애플리케이션이 재시작되며 주제의 모든 메시지를 다시 처리합니다. 재처리를 방지하려면 source.msk.starting.offset 사용 방법에 대한 설명서를 참조하고 애플리케이션의 시작 오프셋을 올바르게 설정합니다.
여러 OpenSearch 인덱스로 데이터를 전송할 수 있나요?
아니요. 애플리케이션은 하나의 OpenSearch 인덱스에만 데이터를 저장하는 것을 지원합니다. 여러 인덱스에 벡터화 출력을 구성하려면 별도의 Managed Service for Apache Flink 애플리케이션을 배포해야 합니다.
하나의 AWS 계정계정에 여러 실시간 벡터 임베딩 애플리케이션을 배포할 수 있나요?
예. 각 애플리케이션에 고유한 이름이 있는 경우 하나의 AWS 계정 에 여러 실시간 벡터 임베딩 Managed Service for Apache Flink 애플리케이션을 배포할 수 있습니다.
여러 실시간 벡터 임베딩 애플리케이션이 동일한 데이터 소스 또는 싱크를 사용할 수 있나요?
예. 동일한 주제에서 데이터를 읽거나 동일한 인덱스에 데이터를 저장하는 여러 실시간 벡터 임베딩 Managed Service for Apache Flink 애플리케이션을 생성할 수 있습니다.
애플리케이션이 교차 계정 연결을 지원하나요?
아니요. 애플리케이션이 성공적으로 실행되려면 Amazon MSK 클러스터와 OpenSearch 컬렉션이 Managed Service for Apache Flink 애플리케이션을 설정하려는 AWS 계정 동일한에 있어야 합니다.
애플리케이션이 교차 리전 연결을 지원하나요?
아니요. 애플리케이션은 Amazon MSK 클러스터와 OpenSearch 컬렉션이 Managed Service for Apache Flink 애플리케이션과 동일한 리전에 있는 경우에만 Managed Service for Apache Flink 애플리케이션을 배포할 수 있습니다.
Amazon MSK 클러스터와 OpenSearch 컬렉션이 서로 다른 VPC 또는 서브넷에 있을 수 있나요?
예. 동일한 AWS 계정에 있는 경우 Amazon MSK 클러스터와 OpenSearch 컬렉션이 서로 다른 VPC 및 서브넷에 있어도 지원합니다. 설정이 올바른지 확인하려면 (일반적인 MSF 문제 해결)을 참조하세요.
애플리케이션에서 지원하는 임베딩 모델은 무엇인가요?
현재 해당 애플리케이션은 Bedrock에서 지원하는 모든 모델을 지원합니다. 다음이 포함됩니다.
-
Amazon Titan Embeddings G1 - Text
-
Amazon Titan Text Embeddings V2
-
Amazon Titan Multimodal Embeddings G1
-
Cohere Embed English
-
Cohere Embed Multilingual
워크로드에 따라 애플리케이션의 성능을 미세 조정할 수 있나요?
예. 애플리케이션의 처리량은 여러 요소에 따라 달라지며, 이 모든 요소는 고객이 제어할 수 있습니다.
-
AWS MSF KPUs 애플리케이션은 기본 병렬 처리 인자 2와 KPU 1당 병렬 처리로 배포되며 자동 조정이 켜져 있습니다. 그러나 워크로드에 따라 Managed Service for Apache Flink 애플리케이션의 조정을 구성할 것을 권장합니다. 자세한 내용은 Managed Service for Apache Flink 애플리케이션 리소스 검토를 참조하세요.
-
Amazon Bedrock: 선택한 Amazon Bedrock 온디맨드 모델에 따라 적용되는 할당량이 다를 수 있습니다. 서비스가 처리할 수 있는 워크로드를 확인하려면 Bedrock 서비스 할당량을 검토합니다. 자세한 내용은 Amazon Bedrock 할당량을 참조하세요.
-
Amazon OpenSearch Service: 경우에 따라 OpenSearch가 파이프라인의 병목 지점이 될 수 있습니다. 크기 조정 정보는 OpenSearch 크기 조정 Amazon OpenSearch Service 도메인 크기 조절을 참조하세요.
어떤 Amazon MSK 인증 유형이 지원되나요?
IAM MSK 인증 유형만 지원합니다.
sink.os.bulkFlushIntervalMillis란 무엇이며 어떻게 설정하나요?
Amazon OpenSearch Service로 데이터를 전송할 때 벌크 플러시 간격은 요청 내 작업 수나 요청 크기와 관계없이 벌크 요청이 실행되는 간격입니다. 기본값은 1밀리초입니다.
플러시 간격을 설정하면 데이터가 적시에 인덱싱되도록 하는 데 도움이 되지만, 간격이 너무 짧게 설정된 경우 오버헤드가 증가할 수 있습니다. 플러시 간격을 선택할 때 사용 사례와 적시 인덱싱의 중요성을 고려하여 적절한 값을 선택합니다.
Managed Service for Apache Flink 애플리케이션을 배포할 때 Amazon MSK 주제의 어느 지점부터 메시지 읽기를 시작하나요?
애플리케이션은 애플리케이션의 런타임 구성에서 설정된 source.msk.starting.offset 구성에 지정된 오프셋부터 Amazon MSK 주제의 메시지를 읽기 시작합니다. source.msk.starting.offset이 명시적으로 설정되지 않은 경우 애플리케이션은 주제에서 사용 가능한 가장 이른 메시지부터 읽기 시작합니다.
source.msk.starting.offset을 어떻게 사용하나요?
원하는 동작에 따라 ource.msk.starting.offset을 다음 값 중 하나로 명시적으로 설정합니다.
-
EARLIEST: 기본 설정으로, 파티션의 가장 오래된 오프셋부터 읽습니다. 다음과 같은 경우에 적합합니다.
-
Amazon MSK 주제 및 소비자 애플리케이션을 새로 생성한 경우
-
상태를 빌드하거나 재구성하기 위해 데이터를 재생해야 하는 경우 이는 이벤트 소싱 패턴을 구현하거나 데이터 기록의 전체 보기를 필요로 하는 신규 서비스를 초기화할 때 관련이 있습니다.
-
-
LATEST: Managed Service for Apache Flink 애플리케이션이 파티션 끝에서 메시지를 읽습니다. 새로 생성되는 메시지만 필요하고 기존 데이터를 처리할 필요가 없는 경우 권장됩니다. 이 설정에서는 소비자가 기존 메시지를 무시하고 업스트림 프로듀서가 새로 게시하는 메시지만 읽습니다.
-
COMMITTED: Managed Service for Apache Flink 애플리케이션이 소비 그룹의 커밋된 오프셋부터 메시지 소비를 시작합니다. 커밋된 오프셋이 없는 경우 EARLIEST 재설정 전략이 사용됩니다.
지원되는 청킹 전략은 무엇인가요?
입력을 청킹하기 위해 langchainmaxSegmentSizeInChars보다 큰 경우에만 청킹이 적용됩니다. 다음 다섯 가지 청킹 유형을 지원합니다.
-
SPLIT_BY_CHARACTER: 각 청크의 길이가 maxSegmentSizeInChars를 초과하지 않는 범위에서 가능한 많은 문자를 청크에 포함합니다. 공백을 고려하지 않으므로 단어가 잘릴 수 있습니다. -
SPLIT_BY_WORD: 공백 문자를 기준으로 청킹합니다. 단어가 잘리지 않습니다. -
SPLIT_BY_SENTENCE: Apache OpenNLP 라이브러리의 영어 문장 모델을 사용하여 문장 경계를 감지합니다. -
SPLIT_BY_LINE: 줄바꿈 문자를 기준으로 청킹합니다. -
SPLIT_BY_PARAGRAPH: 연속된 줄바꿈 문자를 기준으로 청킹합니다.
분할 전략은 앞서 제시된 순서에 따라 폴백되며, SPLIT_BY_PARAGRAPH와 같은 더 큰 청킹 전략은 SPLIT_BY_CHARACTER로 폴백됩니다. 예를 들어 SPLIT_BY_LINE을 사용하는 경우 줄이 너무 길면 문장 단위로 다시 청킹되며 각 청크는 가능한 많은 문장을 포함합니다. 문장이 너무 긴 경우 단어 단위로 청킹됩니다. 단어가 너무 긴 경우 문자 단위로 분할됩니다.
벡터 데이터 저장소에서 레코드를 어떻게 읽나요?
-
source.msk.data.type이STRING인 경우-
original_data: Amazon MSK 메시지의 전체 원본 문자열입니다.
-
embedded_data:
chunk_data가 비어 있지 않은 경우(청킹 적용됨) 여기에서 생성된 임베딩 벡터이며 청킹이 적용되지 않은 경우original_data에서 생성된 임베딩 벡터입니다. -
chunk_data: 원본 데이터가 청킹된 경우에만 나타납니다.
embedded_data의 임베딩을 생성하는 데 사용된 원본 메시지의 청크를 포함합니다.
-
-
source.msk.data.type이JSON인 경우-
original_data: JSON 키 필터링 적용 후 Amazon MSK 메시지의 전체 원본 JSON입니다.
-
embedded_data:
chunk_data가 비어 있지 않은 경우(청킹 적용됨) 여기에서 생성된 임베딩 벡터이며 청킹이 적용되지 않은 경우original_data에서 생성된 임베딩 벡터입니다. -
chunk_key: 원본 데이터가 청킹된 경우에만 나타납니다.
original_data내에 해당 청크가 속한 JSON 키를 포함합니다. 예를 들어, 중첩된 키의 경우jsonKey1.nestedJsonKeyA와 같은 형태가 될 수 있으며,original_data의 예시에서는 metadata와 같은 키가 될 수 있습니다. -
chunk_data: 원본 데이터가 청킹된 경우에만 나타납니다.
embedded_data의 임베딩을 생성하는 데 사용된 원본 메시지의 청크를 포함합니다.
-
네, 이 애플리케이션은 여러 Amazon MSK 주제에서 데이터를 읽을 수 있습니다. 모든 주제의 데이터는 동일한 유형(STRING 또는 JSON)이어야 하며, 그렇지 않으면 애플리케이션이 실패할 수 있습니다. 모든 주제에서 읽은 데이터는 항상 하나의 OpenSearch 인덱스에 저장됩니다.
소스 코드에 대한 새로운 업데이트는 어디에서 찾을 수 있나요?
새 릴리스를 확인하려면 https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases
AWS CloudFormation 템플릿을 변경하고 Managed Service for Apache Flink 애플리케이션을 업데이트할 수 있나요?
아니요. AWS CloudFormation 템플릿을 변경해도 Managed Service for Apache Flink 애플리케이션은 업데이트되지 않습니다. 의 새로운 변경 사항은 새 스택을 배포해야 AWS CloudFormation 함을 의미합니다.
에서 사용자를 대신하여 애플리케이션을 AWS 모니터링하고 유지 관리하나요?
아니요, AWS 는 사용자를 대신하여이 애플리케이션을 모니터링, 확장, 업데이트 또는 패치하지 않습니다.
이 애플리케이션이 데이터를 AWS 계정외부로 이동하나요?
Managed Service for Apache Flink 애플리케이션에서 읽고 저장한 모든 데이터는 내에서 유지 AWS 계정 되며 계정에서 나가지 않습니다.