제퍼넷 로고

Amazon OpenSearch 수집을 사용하여 Amazon OpenSearch Serverless로 마이그레이션 | 아마존 웹 서비스

시간

Amazon OpenSearch 서버리스 다음에 대한 주문형 Auto Scaling 구성입니다. 아마존 오픈서치 서비스. OpenSearch Serverless는 출시 이후 꾸준히 증가해 왔습니다. 고객은 용량을 수동으로 프로비저닝하는 것보다 서비스에서 용량을 자동으로 관리하는 것을 선호합니다. 지금까지 고객은 프로비저닝된 OpenSearch Service 도메인과 OpenSearch Serverless 간에 데이터를 이동하기 위해 사용자 지정 코드나 타사 솔루션을 사용해야 했습니다.

우리는 최근에 다음과 같은 기능을 도입했습니다. Amazon OpenSearch 수집 (OSI)을 통해 이러한 마이그레이션을 더욱 쉽게 만들 수 있습니다. OSI는 OpenSearch Service 도메인 및 OpenSearch Serverless 컬렉션에 실시간 로그, 지표 및 추적 데이터를 제공하는 완전 관리형 서버리스 데이터 수집기입니다.

이 게시물에서는 프로비저닝된 OpenSearch Service 도메인과 OpenSearch Serverless 간에 데이터를 마이그레이션하는 단계를 간략하게 설명합니다. 보안 역할 및 대시보드 개체와 같은 메타데이터 마이그레이션은 다른 후속 게시물에서 다루겠습니다.

솔루션 개요

다음 다이어그램은 OSI를 사용하여 OpenSearch Service 프로비저닝 도메인과 OpenSearch Serverless 간에 데이터를 이동하는 데 필요한 구성 요소를 보여줍니다. OpenSearch Service를 소스로 사용하고 OpenSearch Serverless 컬렉션을 싱크로 사용하여 OSI를 사용합니다.

사전 조건

시작하기 전에 다음 단계를 완료하여 필요한 리소스를 생성하세요.

  1. 를 생성 AWS 자격 증명 및 액세스 관리 (IAM) OpenSearch 수집 파이프라인이 OpenSearch Serverless 컬렉션에 쓰기 위해 가정하는 역할입니다. 이 역할은 sts_role_arn 파이프라인 구성의 매개변수입니다.
  2. 권한 정책 연결 OpenSearch Service 도메인에서 데이터를 읽을 수 있도록 역할을 부여합니다. 다음은 최소 권한이 있는 샘플 정책입니다.
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Effect":"Allow",
             "Action":"es:ESHttpGet",
             "Resource":[
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/",
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_cat/indices",
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search",
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll",
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search"
             ]
          },
          {
             "Effect":"Allow",
             "Action":"es:ESHttpPost",
             "Resource":[
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/point_in_time",
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/scroll"
             ]
          },
          {
             "Effect":"Allow",
             "Action":"es:ESHttpDelete",
             "Resource":[
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/point_in_time",
                "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll"
             ]
          }
       ]
    }

  3. 권한 정책 연결 컬렉션에 데이터를 보낼 수 있도록 역할에 추가합니다. 다음은 최소 권한이 있는 샘플 정책입니다.
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "aoss:BatchGetCollection",
            "aoss:APIAccessAll"
          ],
          "Effect": "Allow",
          "Resource": "arn:aws:aoss:{region}:{your-account-id}:collection/{collection-id}"
        },
        {
          "Action": [
            "aoss:CreateSecurityPolicy",
            "aoss:GetSecurityPolicy",
            "aoss:UpdateSecurityPolicy"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aoss:collection": "{collection-name}"
            }
          }
        }
      ]
    }

  4. 다음을 맡도록 역할을 구성합니다. 신뢰 관계, 다음과 같이 :
    {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "osis-pipelines.amazonaws.com"
                    },
                    "Action": "sts:AssumeRole"
                }
            ]
        }

  5. 다음을 추가하는 것이 좋습니다. aws:SourceAccountaws:SourceArn 다음으로부터 보호하기 위한 정책의 조건 키 혼란스러운 대리인 문제:
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "{your-account-id}"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:osis:{region}:{your-account-id}:pipeline/*"
        }
    }

  6. OpenSearch 수집 도메인 역할 ARN을 백엔드 사용자로 매핑합니다( all_access 사용자)를 도메인 사용자에게 전달합니다. 우리는 all_access 역할. 프로덕션 시나리오의 경우 읽기 및 쓰기에 충분한 권한이 있는 역할을 사용해야 합니다.
  7. OpenSearch 서버리스 컬렉션 만들기, 데이터가 수집되는 곳입니다.
  8. 다음 코드에 표시된 대로 데이터 정책을 연결하여 컬렉션에 대한 OpenSearch 수집 역할 권한을 부여합니다.
    [
      {
        "Rules": [
          {
            "Resource": [
              "index/collection-name/*"
            ],
            "Permission": [
              "aoss:CreateIndex",
              "aoss:UpdateIndex",
              "aoss:DescribeIndex",
              "aoss:WriteDocument",
            ],
            "ResourceType": "index"
          }
        ],
        "Principal": [
          "arn:aws:iam::{account-id}:role/pipeline-role"
        ],
        "Description": "Pipeline role access"
      }
    ]

  9. 컬렉션이 VPC 컬렉션으로 정의된 경우 네트워크 정책 수집 파이프라인에서 이를 구성합니다.

이제 프로비저닝된 도메인의 데이터를 OpenSearch Serverless로 이동할 준비가 되었습니다.

프로비저닝된 도메인에서 서버리스로 데이터 이동

Amazon OpenSearch 수집 설정
시작하려면 활성 OpenSearch Service 도메인(소스) 및 OpenSearch Serverless 컬렉션(싱크)이 있어야 합니다. 마이그레이션을 위해 OpenSearch 수집 파이프라인을 설정하려면 다음 단계를 완료하세요.

  1. OpenSearch Service 콘솔에서 다음을 선택합니다. 관로 아래에 음식물 섭취 탐색 창에서
  2. 왼쪽 메뉴에서 파이프라인 만들기.
  3. 럭셔리 파이프라인 이름, 이름을 입력하십시오 (예 : octank-migration).
  4. 럭셔리 파이프라인 용량에서는 리소스를 확장하기 위한 최소 및 최대 용량을 정의할 수 있습니다. 지금은 기본 최소값을 1로, 최대값을 4로 그대로 둘 수 있습니다.
  5. 럭셔리 구성 청사진, 고르다 AWS-OpenSearchDataMigrationPipeline.
  6. 소스에 대해 다음 정보를 업데이트합니다.
    1. 주석 해제 hosts 기존 OpenSearch 서비스 엔드포인트의 엔드포인트를 지정합니다.
    2. 주석 해제 distribution_version 소스 클러스터가 호환 모드가 활성화된 OpenSearch Service 클러스터인 경우 그렇지 않으면 댓글을 남겨주세요.
    3. 주석 해제 indices, include, index_name_regex을 클릭하고 마이그레이션하려는 인덱스 이름이나 패턴을 추가합니다(예: octank-iot-logs-2023.11.0*).
    4. 업데이트 region 아래에 aws 소스 도메인이 어디에 있는지(예: us-west-2).
    5. 업데이트 sts_role_arn 아래에 aws OpenSearch Service 도메인에서 데이터를 읽을 수 있는 권한이 있는 역할(예: arn:aws:iam::111122223333:role/osis-pipeline). 이 역할은 OpenSearch 서비스 보안 역할 내에 백엔드 역할로 추가되어야 합니다.
  7. 싱크에 대해 다음 정보를 업데이트합니다.
    1. 주석 해제 hosts 기존 OpenSearch Serverless 엔드포인트의 엔드포인트를 지정합니다.
    2. 업데이트 sts_role_arn 아래에 aws OpenSearch Serverless 컬렉션에 데이터를 쓸 수 있는 권한이 있는 역할(예: arn:aws:iam::111122223333:role/osis-pipeline). 이 역할은 OpenSearch Serverless 컬렉션의 데이터 액세스 정책의 일부로 추가되어야 합니다.
    3. 업데이트 serverless 플래그가 될 true.
    4. 럭셔리 index, 기본값으로 남겨두면 소스 인덱스에서 메타데이터를 가져오고 소스와 동일한 이름을 대상에 쓸 수 있습니다. 또는 대상에서 다른 인덱스 이름을 사용하려면 이 값을 원하는 이름으로 수정하세요.
    5. 럭셔리 document_id, 소스의 문서 메타데이터에서 ID를 가져와 대상에서 동일하게 사용할 수 있습니다. 사용자 정의 문서 ID는 검색 유형의 컬렉션에만 지원됩니다. 컬렉션이 TIMESERIES 또는 VECTORSEARCH인 경우 이 줄에 주석을 달아야 합니다.
  8. 다음으로, 파이프라인의 유효성을 검사하여 소스와 싱크의 연결을 확인하여 엔드포인트가 존재하고 액세스 가능한지 확인할 수 있습니다.
  9. 럭셔리 네트워크 설정, 원하는 설정을 선택합니다.
    1. 왼쪽 메뉴에서 VPC 액세스 VPC, 서브넷, 보안 그룹을 선택하여 액세스를 비공개로 설정하세요.
    2. 왼쪽 메뉴에서 공공 영역 공개 액세스를 사용합니다. AWS에서는 모든 프로덕션 워크로드에 VPC 엔드포인트를 사용할 것을 권장하지만, 이 연습에서는 공공 영역.
  10. 럭셔리 로그 게시 옵션, 새 항목을 만들거나 아마존 클라우드 워치 그룹화하거나 기존 CloudWatch 그룹을 사용하여 수집 로그를 작성합니다. 이를 통해 작업 중에 발생한 오류 및 경고에 대한 정보에 액세스할 수 있으며 이는 문제 해결에 도움이 될 수 있습니다. 이 연습에서는 다음을 선택합니다. 새 그룹 만들기.
  11. 왼쪽 메뉴에서 다음 보기을 클릭하고 파이프라인 설정에 지정한 세부 정보를 확인하세요.
  12. 왼쪽 메뉴에서 파이프 라인 생성.

수집 파이프라인을 생성하는 데 몇 분 정도 걸립니다.
다음 그래픽은 이전 단계를 통해 OpenSearch 수집 파이프라인을 생성하는 방법을 빠르게 보여줍니다.

대상 OpenSearch Serverless 컬렉션에서 수집된 데이터 확인

파이프라인이 생성되고 활성화된 후 OpenSearch Serverless 컬렉션에 대한 OpenSearch 대시보드에 로그인하고 다음 명령을 실행하여 인덱스를 나열합니다.

GET _cat/indexs?v

다음 그래픽은 파이프라인이 활성화되기 전과 후에 인덱스를 나열하는 방법을 빠르게 보여줍니다.

결론

이 게시물에서는 타사 솔루션을 사용할 필요 없이 OpenSearch Ingestion이 어떻게 OpenSearch Serverless 컬렉션으로 데이터를 수집할 수 있는지 살펴보았습니다. 최소한의 데이터 생산자 구성을 통해 자동으로 데이터를 컬렉션에 수집했습니다. 또한 OSI를 사용하면 OpenSearch Service 도메인 또는 OpenSearch Serverless 컬렉션에 수집하기 전에 ES7.x 버전의 데이터를 변환하거나 다시 색인화할 수 있습니다. OSI를 사용하면 서버를 프로비저닝, 확장 또는 관리할 필요가 없습니다. AWS는 다양한 자원 OpenSearch 수집을 사용하여 파이프라인 구축을 빠르게 시작할 수 있습니다. 다양한 내장 기능을 사용할 수 있습니다. 파이프라인 통합 데이터를 빠르게 수집하기 위해 아마존 DynamoDB, Apache Kafka 용 Amazon Managed Streaming (아마존 MSK), 아마존 보안 호수, Fluent Bit 등이 있습니다. 다음 OpenSearch 수집 청사진 최소한의 구성 변경으로 데이터 파이프라인을 구축할 수 있습니다.


저자에 관하여

무투 피차이마니 Amazon OpenSearch Service의 검색 전문가입니다. 그는 대규모 검색 애플리케이션 및 솔루션을 구축합니다. Muthu는 네트워킹 및 보안 주제에 관심이 있으며 텍사스 오스틴에 기반을 두고 있습니다.

프라 샨트 아그라 왈 Amazon OpenSearch Service의 수석 검색 전문가 솔루션 아키텍트입니다. 그는 고객과 긴밀히 협력하여 워크로드를 클라우드로 마이그레이션하도록 돕고 기존 고객이 클러스터를 미세 조정하여 더 나은 성능을 달성하고 비용을 절감하도록 돕습니다. AWS에 합류하기 전에는 다양한 고객이 검색 및 로그 분석 사용 사례에 OpenSearch 및 Elasticsearch를 사용하도록 도왔습니다. 일하지 않을 때는 그가 여행하고 새로운 장소를 탐험하는 것을 볼 수 있습니다. 요컨대 먹기→여행→반복하는 것을 좋아한다.

라훌 샤르마 Amazon Web Services의 기술 계정 관리자입니다. 그는 데이터를 전략적 자산으로 활용하는 데 도움이 되는 데이터 기술에 열정을 갖고 있으며 뉴욕주 뉴욕에 거주하고 있습니다.

spot_img

최신 인텔리전스

spot_img