Creazione di istantanee dell'indice in Amazon Service OpenSearch - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di istantanee dell'indice in Amazon Service OpenSearch

Le istantanee in Amazon OpenSearch Service sono backup degli indici e dello stato di un cluster. Lo stato include le impostazioni del cluster, le informazioni sul nodo, le impostazioni degli indici e l'allocazione delle partizioni.

OpenSearch Le istantanee dei servizi sono disponibili nelle seguenti forme:

  • Gli snapshot automatici sono solo per il ripristino del cluster. È possibile utilizzarli per ripristinare il dominio in caso di stato rosso del cluster o di perdita di dati. Per ulteriori informazioni, vedere Ripristino delle istantanee di seguito. OpenSearch Il servizio archivia le istantanee automatizzate in un bucket Amazon S3 preconfigurato senza costi aggiuntivi.

  • Gli snapshot manuali servono per il ripristino del cluster o lo spostamento di dati da un cluster a un altro. È necessario avviare gli snapshot manuali. Questi snapshot vengono archiviati nel bucket Amazon S3 e vengono applicati i costi standard di S3. Se disponi di un'istantanea da un OpenSearch cluster autogestito, puoi utilizzarla per migrare a un dominio di servizio. OpenSearch Per ulteriori informazioni, consulta Migrazione ad Amazon OpenSearch Service.

Tutti i domini OpenSearch di servizio scattano istantanee automatiche, ma la frequenza varia nei seguenti modi:

  • Per i domini che eseguono OpenSearch Elasticsearch 5.3 e versioni successive, OpenSearch Service acquisisce istantanee automatiche ogni ora e ne conserva fino a 336 per 14 giorni. Gli snapshot orari sono meno dirompenti a causa della loro natura incrementale. Forniscono inoltre un punto di ripristino più recente in caso di problemi di dominio.

  • Per i domini che eseguono Elasticsearch 5.1 e versioni precedenti, OpenSearch Service acquisisce istantanee automatiche giornaliere nell'ora specificata, ne conserva fino a 14 e non conserva alcun dato sulle istantanee per più di 30 giorni.

Se il cluster entra nello stato rosso, tutti gli snapshot automatici hanno esito negativo mentre lo stato del cluster persiste. Se il problema non viene risolto entro due settimane, è possibile che i dati del cluster vengano persi definitivamente. Per la risoluzione dei problemi, consulta Cluster in stato rosso.

Prerequisiti

Per creare manualmente gli snapshot, è necessario utilizzare IAM e Amazon S3. Verificare che siano soddisfatti i seguenti prerequisiti prima di provare ad acquisire uno snapshot.

Prerequisito Descrizione
Bucket S3

Crea un bucket S3 per archiviare istantanee manuali per il tuo dominio di servizio. OpenSearch Per le istruzioni, consulta Crea un bucket nella Guida per l'utente di Amazon Simple Storage Service.

Ricordare il nome del bucket per utilizzarlo nei seguenti punti:

  • L'istruzione Resource della policy IAM collegata al ruolo IAM

  • Il client Python utilizzato per registrare un repository di snapshot (se si utilizza questo metodo)

Importante

Non applicare la regola del ciclo di vita S3 Glacier a questo bucket. Gli snapshot manuali non supportano la classe di archiviazione S3 Glacier.

Ruolo IAM

Crea un ruolo IAM per delegare le autorizzazioni al servizio. OpenSearch Per le istruzioni, consultare Creazione di un ruolo IAM (console) nella Guida per l'utente di IAM. Nel resto di questo capitolo ci si riferisce a questo ruolo come TheSnapshotRole.

Collegamento di una policy IAM

Collegare la seguente policy a TheSnapshotRole per consentire l'accesso al bucket S3:

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name/*" ] } ] }

Per istruzioni su come collegare una policy a un ruolo, consultare Aggiunta di autorizzazioni per l'identità IAM nella Guida per l'utente di IAM.

Modifica della relazione di trust

Modifica la relazione di trust di TheSnapshotRole per specificare OpenSearch Service nell'Principalistruzione, come mostrato nell'esempio seguente:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

Per le istruzioni su come modificare la relazione di trust, consultare Modifica di una policy di attendibilità del ruolo nella Guida per l'utente di IAM.

Autorizzazioni

Per registrare il repository di snapshot, devi essere in grado di passare TheSnapshotRole a OpenSearch Service. Devi inoltre disporre dell'accesso all'operazione es:ESHttpPut. Per concedere entrambe queste autorizzazioni, collega la policy seguente al ruolo IAM le cui credenziali vengono utilizzate per firmare la richiesta:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/TheSnapshotRole" }, { "Effect": "Allow", "Action": "es:ESHttpPut", "Resource": "arn:aws:es:region:123456789012:domain/domain-name/*" } ] }

Se l'utente o il ruolo non dispone iam:PassRole delle autorizzazioni necessarie per il passaggioTheSnapshotRole, è possibile che si verifichi il seguente errore comune quando si tenta di registrare un repository nel passaggio successivo:

$ python register-repo.py {"Message":"User: arn:aws:iam::123456789012:user/MyUserAccount is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/TheSnapshotRole"}

Registrazione di un repository di snapshot manuali

È necessario registrare un archivio di istantanee con OpenSearch Service prima di poter scattare istantanee dell'indice manualmente. Questa operazione unica richiede la firma della AWS richiesta con credenziali a cui è consentito l'accessoTheSnapshotRole, come descritto in. Prerequisiti

Passaggio 1: mappare il ruolo dell'istantanea nelle OpenSearch dashboard (se si utilizza un controllo di accesso granulare)

Il controllo granulare degli accessi introduce un passaggio aggiuntivo durante la registrazione di un repository. Anche se si utilizza l'autenticazione di base HTTP per tutti gli altri scopi, è necessario mappare il ruolo manage_snapshots al ruolo IAM che dispone delle autorizzazioni iam:PassRole per inviare TheSnapshotRole.

  1. Vai al plug-in OpenSearch Dashboards per il tuo dominio di servizio. OpenSearch Puoi trovare l'endpoint Dashboards nella dashboard del tuo dominio nella OpenSearch console di servizio.

  2. Dal menu principale scegliere Sicurezza, Ruoli e selezionare il ruolo manage_snapshots.

  3. Scegliere Utenti mappati, Gestisci mappatura.

  4. Aggiungi l'ARN del ruolo che dispone delle autorizzazioni per inviare TheSnapshotRole. Inserisci gli ARN dei ruoli in Backend roles (Ruoli di back-end).

    arn:aws:iam::123456789123:role/role-name
  5. Selezionare Mappa e confermare che l'utente o il ruolo venga visualizzato in Utenti mappati.

Fase 2: Registrazione di un repository

La seguente scheda Istantanee mostra come registrare una directory di istantanee. Per le opzioni specifiche relative alla crittografia di un'istantanea manuale e alla registrazione di un'istantanea dopo la migrazione a un nuovo dominio, consulta le schede pertinenti.

Snapshots

Per registrare un archivio di snapshot, invia una richiesta PUT all'endpoint del dominio del servizio. OpenSearch Puoi usare curl, il client Python di esempio, Postman o qualche altro metodo per inviare una richiesta firmata per registrare il repository di snapshot. Tieni presente che non puoi utilizzare una richiesta PUT nella console OpenSearch Dashboards per registrare il repository.

La richiesta ha il seguente formato:

PUT domain-endpoint/_snapshot/my-snapshot-repo-name { "type": "s3", "settings": { "bucket": "s3-bucket-name", "base_path": "my/snapshot/directory", "region": "region", "role_arn": "arn:aws:iam::123456789012:role/TheSnapshotRole" } }
Nota

I nomi dei repository non possono iniziare con "cs-". Inoltre, non dovresti scrivere nello stesso repository da più domini. Solo un dominio deve avere accesso in scrittura al repository.

Se il dominio si trova all'interno di un Virtual Private Cloud (VPC), perché la richiesta registri correttamente il repository di snapshot il computer deve essere connesso al VPC. L'accesso a un VPC varia in base alla configurazione della rete, ma prevede con ogni probabilità la connessione a una VPN o a una rete aziendale. Per verificare di poter raggiungere il dominio del OpenSearch servizio, accedi a https://your-vpc-domain.region.es.amazonaws.com In un browser Web e verifica di ricevere la risposta JSON predefinita.

Quando il bucket Amazon S3 si trova in un OpenSearch dominio Regione AWS diverso dal tuo, aggiungi il parametro "endpoint": "s3.amazonaws.com" alla richiesta.

Encrypted snapshots

Al momento non puoi utilizzare le chiavi AWS Key Management Service (KMS) per crittografare le istantanee manuali, ma puoi proteggerle utilizzando la crittografia lato server (SSE).

Per attivare SSE con chiavi gestite da S3 per il bucket che usi come repository di istantanee, aggiungile al blocco della richiesta PUT. "server_side_encryption": true "settings" Per maggiori informazioni, consultare Protezione dei dati mediante la crittografia lato server con chiavi di crittografia gestite da Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service.

In alternativa, puoi utilizzare AWS KMS le chiavi per la crittografia lato server sul bucket S3 che usi come repository di istantanee. Se utilizzi questo approccio, assicurati di fornire l'TheSnapshotRoleautorizzazione alla AWS KMS chiave utilizzata per crittografare il bucket S3. Per ulteriori informazioni, consulta Policy delle chiavi in AWS KMS.

Domain migration

La registrazione di un repository di snapshot è un'operazione che viene eseguita una tantum. Tuttavia, per eseguire la migrazione da un dominio a un altro, è necessario registrare lo stesso repository di snapshot sia sul vecchio dominio che sul nuovo. Il nome del repository è arbitrario.

Considerare le seguenti linee guida quando si esegue la migrazione a un nuovo dominio o si registra lo stesso repository con più domini:

  • Quando si registra il repository nel nuovo dominio, aggiungere "readonly": true al blocco "settings" della richiesta PUT. Questa impostazione impedisce di sovrascrivere accidentalmente i dati dal vecchio dominio. Solo un dominio deve avere accesso in scrittura al repository.

  • Se stai migrando i dati verso un dominio in un altro (ad esempio Regione AWS, da un vecchio dominio e bucket situato in us-east-2 a un nuovo dominio in us-west-2), sostituiscili "region": "region" con "endpoint": "s3.amazonaws.com" nell'istruzione PUT e riprova la richiesta.

Utilizzo del client Python di esempio

Il client Python è più facile da automatizzare rispetto a una semplice richiesta HTTP e ha una migliore riusabilità. Se si sceglie di utilizzare questo metodo per registrare un repository di snapshot, salvare il seguente codice Python di esempio come file Python, ad esempio register-repo.py. Il client richiede i pacchetti AWS SDK for Python (Boto3), richieste e requests-aws4auth. Il client contiene esempi commentati per altre operazioni con snapshot.

Aggiornare le seguenti variabili nel codice di esempio:host, region, path e payload.

import boto3 import requests from requests_aws4auth import AWS4Auth host = '' # domain endpoint region = '' # e.g. us-west-1 service = 'es' credentials = boto3.Session().get_credentials() awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token) # Register repository path = '/_snapshot/my-snapshot-repo-name' # the OpenSearch API endpoint url = host + path payload = { "type": "s3", "settings": { "bucket": "s3-bucket-name", "base_path": "my/snapshot/directory", "region": "us-west-1", "role_arn": "arn:aws:iam::123456789012:role/snapshot-role" } } headers = {"Content-Type": "application/json"} r = requests.put(url, auth=awsauth, json=payload, headers=headers) print(r.status_code) print(r.text) # # Take snapshot # # path = '_snapshot/my-snapshot-repo-name/my-snapshot' # url = host + path # # r = requests.put(url, auth=awsauth) # # print(r.text) # # # Delete index # # path = 'my-index' # url = host + path # # r = requests.delete(url, auth=awsauth) # # print(r.text) # # # Restore snapshot (all indexes except Dashboards and fine-grained access control) # # path = '_snapshot/my-snapshot-repo-name/my-snapshot/_restore' # url = host + path # # payload = { # "indices": "-.kibana*,-.opendistro_security,-.opendistro-*", # "include_global_state": False # } # # headers = {"Content-Type": "application/json"} # # r = requests.post(url, auth=awsauth, json=payload, headers=headers) # # print(r.text) # # # Restore snapshot (one index) # # path = '_snapshot/my-snapshot-repo-name/my-snapshot/_restore' # url = host + path # # payload = {"indices": "my-index"} # # headers = {"Content-Type": "application/json"} # # r = requests.post(url, auth=awsauth, json=payload, headers=headers) # # print(r.text)

Acquisizione di snapshot manuali

Gli snapshot non sono istantanei. Richiedono tempo per essere completati e non rappresentano viste perfette del cluster. point-in-time Mentre è in corso uno snapshot, è comunque possibile indicizzare i documenti ed effettuare altre richieste al cluster, ma i nuovi documenti (e gli aggiornamenti ai documenti esistenti) non saranno generalmente inclusi nello snapshot. L'istantanea include gli shard primari così come esistevano al momento dell' OpenSearch avvio dell'istantanea. A seconda della dimensione del pool di thread dello snapshot, potrebbero essere incluse diverse partizioni nello snapshot in momenti leggermente diversi. Per le best practice relative alle istantanee, consulta. Migliora le prestazioni delle istantanee

Archiviazione e prestazioni degli snapshot

OpenSearch le istantanee sono incrementali, il che significa che memorizzano solo i dati modificati dall'ultima istantanea riuscita. Questa natura incrementale significa che la differenza di utilizzo del disco tra snapshot frequenti e infrequenti spesso è minima. In altre parole, effettuando snapshot orarie per una settimana (per un totale di 168 snapshot) potrebbe non essere necessario molto più spazio su disco rispetto a una snapshot singola alla fine della settimana. Inoltre, se la frequenza con cui si prendono le snapshot è alta, minore è il tempo necessario per il completamento del processo. Ad esempio, gli snapshot giornalieri possono richiedere 20-30 minuti per essere completati, mentre gli snapshot orari potrebbero essere completati in pochi minuti. Alcuni OpenSearch utenti scattano istantanee ogni mezz'ora.

Acquisisci uno snapshot

Quando si crea uno snapshot, specificare quanto segue:

  • Il nome del repository di snapshot

  • Un nome per lo snapshot

Per brevità e comodità, gli esempi illustrati in questo capitolo utilizzano curl, un comune client HTTP. Per passare un nome utente e una password alla tua richiesta curl, consulta il tutorial Getting started.

Se le tue politiche di accesso specificano utenti o ruoli, devi firmare le tue richieste di snapshot. Per curl, puoi usare l'--aws-sigv4opzione con la versione 7.75.0 o successiva. Puoi anche usare gli esempi commentati nel client Python di esempio per effettuare richieste HTTP firmate agli stessi endpoint utilizzati dai comandi curl.

Per acquisire uno snapshot manuale, procedere nel seguente modo:

  1. Non puoi acquisire uno snapshot se ne è attualmente in esecuzione un altro. Per verificare, esegui il comando seguente:

    curl -XGET 'domain-endpoint/_snapshot/_status'
  2. Emettere il comando seguente per acquisire manualmente uno snapshot:

    curl -XPUT 'domain-endpoint/_snapshot/repository-name/snapshot-name'

    Per includere o escludere determinati indici e specificare altre impostazioni, aggiungere un corpo della richiesta. Per la struttura della richiesta, consulta Take snapshots nella documentazione. OpenSearch

Nota

Il tempo necessario per scattare un'istantanea aumenta con la dimensione del dominio del OpenSearch servizio. In caso di operazioni di snapshot di lunga durata, talvolta si verifica l'errore 504 GATEWAY_TIMEOUT. In genere, è possibile ignorare questi errori e attendere il completamento dell'operazione. Utilizzare il comando seguente per verificare lo stato di tutti gli snapshot del dominio:

curl -XGET 'domain-endpoint/_snapshot/repository-name/_all?pretty'

Ripristino di snapshot

Prima di ripristinare un'istantanea, assicurati che il dominio di destinazione non utilizzi Multi-AZ with Standby. Se lo standby è abilitato, l'operazione di ripristino non riesce.

avvertimento

Se si utilizzano alias di indice, è necessario interrompere le richieste di scrittura su un alias o passare l'alias a un altro indice prima di eliminarne l'indice. Interrompere le richieste di scrittura consente di evitare il seguente scenario:

  1. L'eliminazione di un indice comporta l'eliminazione anche del relativo alias.

  2. Una richiesta di scrittura all'alias ormai eliminato crea un nuovo indice con lo stesso nome dell'alias.

  3. Non puoi più utilizzare l'alias a causa di un conflitto di denominazione con il nuovo indice. Se hai passato l'alias a un altro indice, specifica "include_aliases": false durante il ripristino da una snapshot.

Per ripristinare una snapshot

  1. Identificare lo snapshot che si desidera ripristinare. Assicurati che tutte le impostazioni di questo indice, come i pacchetti di analisi personalizzati o le impostazioni dei requisiti di allocazione, siano compatibili con il dominio. Per vedere tutti i repository di snapshot, esegui il comando seguente:

    curl -XGET 'domain-endpoint/_snapshot?pretty'

    Dopo aver identificato il repository, esegui il comando seguente per visualizzare tutte le snapshot:

    curl -XGET 'domain-endpoint/_snapshot/repository-name/_all?pretty'
    Nota

    La maggior parte delle snapshot automatiche viene archiviata nel repository cs-automated. Se il dominio prevede la crittografia dei dati a riposo, gli snapshot saranno archiviati nel repository cs-automated-enc. Se il repository di snapshot manuali che si sta cercando non viene trovato, verificare di averlo registrato nel dominio.

  2. (Facoltativo) Eliminare o rinominare uno o più indici nel dominio del OpenSearch servizio in caso di conflitti di denominazione tra gli indici del cluster e gli indici nell'istantanea. Non è possibile ripristinare un'istantanea degli indici in un cluster che contiene già indici con gli stessi nomi. OpenSearch

    Se sono presenti conflitti di nomi degli indici, sono disponibili le opzioni seguenti:

    Il comando seguente elimina tutti gli indici esistenti in un dominio:

    curl -XDELETE 'domain-endpoint/_all'

    Tuttavia, se non si prevede di ripristinare tutti gli indici, è possibile eliminarne uno:

    curl -XDELETE 'domain-endpoint/index-name'
  3. Esegui il comando seguente per ripristinare una snapshot:

    curl -XPOST 'domain-endpoint/_snapshot/repository-name/snapshot-name/_restore'

    A causa delle autorizzazioni speciali sui OpenSearch dashboard e degli indici di controllo degli accessi dettagliati, i tentativi di ripristinare tutti gli indici potrebbero fallire, soprattutto se si tenta di eseguire il ripristino da un'istantanea automatica. Nell'esempio seguente viene ripristinato solo un indice, my-index, da 2020-snapshot nel repository di snapshot cs-automated:

    curl -XPOST 'domain-endpoint/_snapshot/cs-automated/2020-snapshot/_restore' \ -d '{"indices": "my-index"}' \ -H 'Content-Type: application/json'

    In alternativa, è possibile ripristinare tutti gli indici tranne gli indici Dashboards e quelli con controllo granulare degli accessi:

    curl -XPOST 'domain-endpoint/_snapshot/cs-automated/2020-snapshot/_restore' \ -d '{"indices": "-.kibana*,-.opendistro*"}' \ -H 'Content-Type: application/json'

    È possibile ripristinare un'istantanea senza eliminarne i dati utilizzando i parametri and. rename_pattern rename_replacement Per ulteriori informazioni su questi parametri, consulta i campi di richiesta dell'API Restore Snapshot e la richiesta di esempio nella documentazione. OpenSearch

Nota

Se non tutte le partizioni principali sono disponibili per le istanze in questione, uno snapshot può avere state come PARTIAL. Tale valore indica che i dati provenienti da almeno una partizione non sono stati memorizzati. È comunque possibile eseguire il ripristino da una snapshot parziale, ma potrebbe essere necessario utilizzare le snapshot meno recenti per ripristinare gli indici mancanti.

Eliminazione degli snapshot manuali

Per eliminare uno snapshot manuale, emettere il seguente comando:

DELETE _snapshot/repository-name/snapshot-name

Automatizzazione delle istantanee con Snapshot Management

È possibile impostare una politica di gestione delle istantanee (SM) nelle OpenSearch dashboard per automatizzare la creazione e l'eliminazione periodiche delle istantanee. SM può creare un'istantanea di un gruppo di indici, mentre Index State Management può scattare una sola istantanea per indice. Per utilizzare SM in OpenSearch Service, devi registrare il tuo repository Amazon S3. Per istruzioni sulla registrazione del repository, consulta Registrazione di un repository di snapshot manuale.

Prima di SM, OpenSearch Service offriva una funzionalità di snapshot automatica e gratuita che è ancora attiva per impostazione predefinita. Questa funzionalità invia istantanee nel repository gestito dal serviziocs-*. Per disattivare la funzionalità, contatta. AWS Support

Per ulteriori informazioni sulla funzionalità SM, consulta la sezione Gestione delle istantanee nella OpenSearch documentazione.

Attualmente SM non supporta la creazione di istantanee su più tipi di indici. Ad esempio, se provi a creare un'istantanea su più indici con * e alcuni indici si trovano nel livello «warm», la creazione dell'istantanea avrà esito negativo. Se è necessario che l'istantanea contenga più tipi di indice, utilizzate l'azione di istantanea ISM finché SM non supporta questa opzione.

Configurazione delle autorizzazioni

Se si esegue l'aggiornamento alla versione 2.5 da una versione precedente del dominio di OpenSearch servizio, è possibile che le autorizzazioni di sicurezza per la gestione delle istantanee non siano definite nel dominio. Gli utenti non amministratori devono essere mappati a questo ruolo per poter utilizzare la gestione delle istantanee sui domini utilizzando un controllo granulare degli accessi. Per creare manualmente il ruolo di gestione delle istantanee, procedi nel seguente modo:

  1. In OpenSearch Dashboard, vai su Sicurezza e scegli Autorizzazioni.

  2. Scegliere Crea gruppo di operazioni e configurare i seguenti gruppi:

    Group name (Nome gruppo) Autorizzazioni
    snapshot_management_full_access
    • cluster:admin/opensearch/snapshot_management/*

    • cluster:admin/opensearch/notifications/feature/publish

    • cluster:admin/repository/*

    • cluster:admin/snapshot/*

    snapshot_management_read_access
    • cluster:admin/opensearch/snapshot_management/policy/get

    • cluster:admin/opensearch/snapshot_management/policy/search

    • cluster:admin/opensearch/snapshot_management/policy/explain

    • cluster:admin/repository/get

    • cluster:admin/snapshot/get

  3. Scegliere Ruoli, quindi selezionare Crea ruolo.

  4. Assegna un nome al ruolo snapshot_management_role.

  5. Per le autorizzazioni del cluster, seleziona o. snapshot_management_full_access snapshot_management_read_access

  6. Scegli Crea.

  7. Dopo aver creato il ruolo, associalo a qualsiasi ruolo utente o di backend che gestirà le istantanee.

Considerazioni

Quando configuri la gestione delle istantanee, considera quanto segue:

  • È consentita una sola policy per repository.

  • Sono consentite fino a 400 istantanee per una policy.

  • Questa funzionalità non verrà eseguita se il dominio ha uno stato rosso, è sottoposto a una pressione JVM elevata (85% o superiore) o ha una funzione di snapshot bloccata. Quando le prestazioni complessive di indicizzazione e ricerca del cluster ne risentono, anche SM potrebbe risentirne.

  • Un'operazione di istantanea inizia solo al termine dell'operazione precedente, in modo che nessuna operazione di snapshot simultanea venga attivata da una policy.

  • Più politiche con la stessa pianificazione possono causare un picco di risorse. Se gli indici istantanei delle policy si sovrappongono, le operazioni di snapshot a livello di shard possono essere eseguite solo in sequenza, il che può causare problemi di prestazioni a cascata. Se le policy condividono un repository, si verificherà un picco di operazioni di scrittura su quel repository.

  • Si consiglia di pianificare l'automazione delle operazioni di snapshot su non più di una volta all'ora, a meno che non si tratti di un caso d'uso particolare.

Automazione di snapshot con Index State Management

È possibile utilizzare l'operazione snapshot di Index State Management (ISM) per attivare automaticamente gli snapshot di indici in base alle modifiche relative all'età, alle dimensioni o al numero di documenti. ISM è la soluzione migliore quando è necessaria un'istantanea per indice. Se hai bisogno di un'istantanea di un gruppo di indici, vedi. Automatizzazione delle istantanee con Snapshot Management

Per utilizzare SM in OpenSearch Service, devi registrare il tuo repository Amazon S3. Per un esempio di policy ISM che utilizza l'operazione snapshot, consultare Policy di esempio.

Utilizzo di Curator per gli snapshot

Se ISM non funziona per la gestione di indici e snapshot, è possibile utilizzare Curator. Offre funzionalità di filtraggio avanzate utili che semplificano le attività di gestione in cluster complessi. Utilizza pip per installare Curator.

pip install elasticsearch-curator

È possibile utilizzare Curator come interfaccia a riga di comando (CLI) o API Python. Se utilizzi l'API Python, è necessario utilizzare la versione 7.13.4 o precedente del client elasticsearch-py legacy. Non supporta il client opensearch-py.

Se si utilizza l'interfaccia a riga di comando (CLI), esportare le credenziali dalla riga di comando e configurare curator.yml come segue:

client: hosts: search-my-domain.us-west-1.es.amazonaws.com port: 443 use_ssl: True aws_region: us-west-1 aws_sign_request: True ssl_no_validate: False timeout: 60 logging: loglevel: INFO