Zephyrnet-logo

Gebruik Amazon OpenSearch Ingestion om te migreren naar Amazon OpenSearch Serverless | Amazon-webservices

Datum:

Amazon OpenSearch Serverloos is een on-demand automatische schalingsconfiguratie voor Amazon OpenSearch-service. Sinds de release was de belangstelling voor OpenSearch Serverless gestaag gegroeid. Klanten geven er de voorkeur aan om de service de capaciteit automatisch te laten beheren in plaats van handmatig capaciteit te moeten leveren. Tot nu toe moesten klanten vertrouwen op het gebruik van aangepaste code of oplossingen van derden om de gegevens te verplaatsen tussen ingerichte OpenSearch Service-domeinen en OpenSearch Serverless.

We hebben onlangs een functie geïntroduceerd met Amazon OpenSearch-opname (OSI) om deze migratie nog eenvoudiger te maken. OSI is een volledig beheerde, serverloze gegevensverzamelaar die realtime log-, metrische en traceergegevens levert aan OpenSearch Service-domeinen en OpenSearch Serverloze collecties.

In dit bericht schetsen we de stappen om de gegevens te migreren tussen ingerichte OpenSearch Service-domeinen en OpenSearch Serverless. De migratie van metagegevens zoals beveiligingsrollen en dashboardobjecten wordt in een ander volgend bericht behandeld.

Overzicht oplossingen

Het volgende diagram toont de benodigde componenten voor het verplaatsen van gegevens tussen door de OpenSearch Service ingerichte domeinen en OpenSearch Serverless met behulp van OSI. U gebruikt OSI met OpenSearch Service als bron en een OpenSearch Serverless-collectie als sink.

Voorwaarden

Voordat u aan de slag gaat, voert u de volgende stappen uit om de benodigde bronnen te creëren:

  1. Maak een AWS Identiteits- en toegangsbeheer (IAM) rol die de OpenSearch Ingestion-pijplijn zal aannemen om naar de OpenSearch Serverless-verzameling te schrijven. Deze rol moet worden gespecificeerd in de sts_role_arn parameter van de pijplijnconfiguratie.
  2. Voeg een machtigingsbeleid toe aan de rol zodat deze gegevens uit het OpenSearch Service-domein kan lezen. Het volgende is een voorbeeldbeleid met de minste rechten:
    {
       "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. Voeg een machtigingsbeleid toe aan de rol zodat deze gegevens naar de verzameling kan verzenden. Het volgende is een voorbeeldbeleid met de minste rechten:
    {
      "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. Configureer de rol om de vertrouwensrelatie, als volgt:
    {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "osis-pipelines.amazonaws.com"
                    },
                    "Action": "sts:AssumeRole"
                }
            ]
        }

  5. Het wordt aanbevolen om de aws:SourceAccount en aws:SourceArn voorwaardesleutels voor het beleid voor bescherming tegen de verward plaatsvervangend probleem:
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "{your-account-id}"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:osis:{region}:{your-account-id}:pipeline/*"
        }
    }

  6. Wijs de OpenSearch Ingestion-domeinrol ARN toe als backend-gebruiker (als een all_access gebruiker) naar de domeingebruiker. We laten een vereenvoudigd voorbeeld zien om de all_access rol. Zorg er voor productiescenario's voor dat u een rol gebruikt met net voldoende machtigingen om te lezen en te schrijven.
  7. Maak een OpenSearch serverloze verzameling, waar gegevens worden opgenomen.
  8. Koppel een gegevensbeleid, zoals weergegeven in de volgende code, om de OpenSearch Ingestion-rolmachtigingen voor de collectie te verlenen:
    [
      {
        "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. Als de collectie is gedefinieerd als een VPC-collectie, moet u een netwerk beleid en configureer het in de opnamepijplijn.

Nu bent u klaar om gegevens van uw ingerichte domein naar OpenSearch Serverless te verplaatsen.

Verplaats gegevens van ingerichte domeinen naar serverloos

Amazon OpenSearch-opname instellen
Om aan de slag te gaan, moet u een actief OpenSearch Service-domein (source) en een OpenSearch Serverless-verzameling (sink) hebben. Voer de volgende stappen uit om een ​​OpenSearch Ingestion-pijplijn voor migratie in te stellen:

  1. Kies in de OpenSearch Service-console Pijpleiding voor Inslikken in het navigatievenster.
  2. Kies Maak een pijplijn.
  3. Voor Pijplijn naam, voer een naam in (bijvoorbeeld octank-migration).
  4. Voor Capaciteit van de pijpleiding, kunt u de minimale en maximale capaciteit definiëren om de resources op te schalen. Voorlopig kunt u het standaardminimum op 1 en het maximum op 4 laten staan.
  5. Voor Configuratieblauwdrukselecteer AWS-OpenSearchDataMigrationPipeline.
  6. Update de volgende informatie voor de bron:
    1. Commentaar opheffen hosts en specificeer het eindpunt van het bestaande OpenSearch Service-eindpunt.
    2. Commentaar opheffen distribution_version als uw broncluster een OpenSearch Service-cluster is waarvoor de compatibiliteitsmodus is ingeschakeld; laat anders een reactie achter.
    3. Commentaar opheffen indices, include, index_name_regexen voeg een indexnaam of patroon toe dat u wilt migreren (bijvoorbeeld octank-iot-logs-2023.11.0*).
    4. bijwerken region voor aws waar uw brondomein zich bevindt (bijvoorbeeld us-west-2).
    5. bijwerken sts_role_arn voor aws aan de rol die toestemming heeft om gegevens uit het OpenSearch Service-domein te lezen (bijvoorbeeld arn:aws:iam::111122223333:role/osis-pipeline). Deze rol moet worden toegevoegd als een backend-rol binnen de beveiligingsrollen van de OpenSearch Service.
  7. Update de volgende informatie voor de gootsteen:
    1. Commentaar opheffen hosts en specificeer het eindpunt van het bestaande OpenSearch Serverless-eindpunt.
    2. bijwerken sts_role_arn voor aws aan de rol die toestemming heeft om gegevens naar de OpenSearch Serverless-collectie te schrijven (bijvoorbeeld arn:aws:iam::111122223333:role/osis-pipeline). Deze rol moet worden toegevoegd als onderdeel van het gegevenstoegangsbeleid in de OpenSearch Serverless-collectie.
    3. Werk het serverless vlag te zijn true.
    4. Voor index, kunt u het als standaard laten staan, waardoor de metagegevens uit de bronindex worden opgehaald en naar dezelfde naam in de bestemming worden geschreven als in de bronnen. Als u een andere indexnaam op de bestemming wilt hebben, kunt u deze waarde ook wijzigen met de gewenste naam.
    5. Voor document_id, kunt u de ID uit de documentmetagegevens in de bron halen en dezelfde in het doel gebruiken. Houd er rekening mee dat aangepaste document-ID's alleen worden ondersteund voor het ZOEK-type collectie; als u uw verzameling als TIMESERIES of VECTORSEARCH heeft, moet u op deze regel reageren.
  8. Vervolgens kunt u uw pijplijn valideren om de connectiviteit van bron en sink te controleren om er zeker van te zijn dat het eindpunt bestaat en toegankelijk is.
  9. Voor Netwerkinstellingen, kies je gewenste instelling:
    1. Kies VPC-toegang en selecteer uw VPC, subnet en beveiligingsgroep om de toegang privé in te stellen.
    2. Kies Publieke openbare toegang te gebruiken. AWS raadt u aan een VPC-eindpunt te gebruiken voor alle productieworkloads, maar selecteer deze walkthrough Publieke.
  10. Voor Logboekpublicatieoptie, kunt u een nieuwe maken Amazon Cloud Watch groep of gebruik een bestaande CloudWatch-groep om de opnamelogboeken te schrijven. Dit biedt toegang tot informatie over fouten en waarschuwingen die tijdens de bewerking worden gegenereerd, wat kan helpen bij het oplossen van problemen. Voor deze walkthrough kiest u Maak een nieuwe groep.
  11. Kies Volgendeen verifieer de details die u hebt opgegeven voor uw pijplijninstellingen.
  12. Kies Pijplijn maken.

Het duurt een paar minuten om de opnamepijplijn te maken.
De volgende afbeelding geeft een snelle demonstratie van het maken van de OpenSearch Ingestion-pijplijn via de voorgaande stappen.

Controleer de opgenomen gegevens in de doelverzameling van OpenSearch Serverless

Nadat de pijplijn is gemaakt en actief is, meldt u zich aan bij OpenSearch Dashboards voor uw OpenSearch Serverless-verzameling en voert u de volgende opdracht uit om de indexen weer te geven:

GET _cat/indices?v

De volgende afbeelding geeft een snelle demonstratie van het weergeven van de indexen vóór en nadat de pijplijn actief wordt.

Conclusie

In dit bericht hebben we gezien hoe OpenSearch Ingestion gegevens kan opnemen in een OpenSearch Serverless-verzameling zonder de noodzaak om oplossingen van derden te gebruiken. Met een minimale configuratie van de gegevensproducent werden gegevens automatisch opgenomen in de verzameling. Met OSI kunt u de gegevens van de ES7.x-versie ook transformeren of opnieuw indexeren voordat ze worden opgenomen in een OpenSearch Service-domein of een OpenSearch Serverless-collectie. OSI elimineert de noodzaak om servers in te richten, te schalen of te beheren. AWS biedt verschillende resources zodat u snel kunt beginnen met het bouwen van pijplijnen met behulp van OpenSearch Ingestion. U kunt verschillende inbouwapparatuur gebruiken pijplijnintegraties om snel gegevens op te nemen Amazon DynamoDB, Amazon Managed Streaming voor Apache Kafka (Amazone MSK), Amazon Beveiligingsmeer, Fluent Bit en nog veel meer. De volgende OpenSearch-opname blauwdrukken stelt u in staat datapijplijnen te bouwen met minimale configuratiewijzigingen.


Over de auteurs

Muthu Pitchaimani is een zoekspecialist met Amazon OpenSearch Service. Hij bouwt grootschalige zoekapplicaties en -oplossingen. Muthu is geïnteresseerd in de onderwerpen netwerken en beveiliging en is gevestigd in Austin, Texas.

Prashant Agrawal is een Sr. Search Specialist Solutions Architect met Amazon OpenSearch Service. Hij werkt nauw samen met klanten om hen te helpen hun workloads naar de cloud te migreren en helpt bestaande klanten hun clusters te verfijnen om betere prestaties te bereiken en kosten te besparen. Voordat hij bij AWS kwam, hielp hij verschillende klanten bij het gebruik van OpenSearch en Elasticsearch voor hun gebruiksscenario's voor zoek- en loganalyse. Als hij niet aan het werk is, kun je hem zien reizen en nieuwe plaatsen ontdekken. Kortom, hij doet graag Eten → Reizen → Herhalen.

Rahul Sharma is technisch accountmanager bij Amazon Web Services. Hij is gepassioneerd door de datatechnologieën die helpen data als strategisch bezit te benutten en is gevestigd in de stad New York, New York.

spot_img

Laatste intelligentie

spot_img