View a markdown version of this page

Usa i modelli di lancio di Amazon EC2 con AWS Batch - AWS Batch

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à.

Usa i modelli di lancio di Amazon EC2 con AWS Batch

AWS Batch supporta l'utilizzo dei modelli di lancio di Amazon EC2 con i tuoi ambienti di calcolo EC2. Con i modelli di avvio, puoi modificare la configurazione predefinita dei tuoi AWS Batch risorse di calcolo senza la necessità di creare AMI personalizzate.

I modelli di avvio possono specificare le AMI che hanno la precedenza nell'ordine di selezione delle AMI. Per ulteriori informazioni, consulta Ordine di selezione AMI.

Nota

Quando si specifica un modello di avvio personalizzato per un AWS Batch ambiente di calcolo, AWS Batch non collega direttamente il modello di avvio al gruppo Auto Scaling sottostante. Invece, AWS Batch crea un separato, Batch-managed modello di avvio per il gruppo Auto Scaling e vi incorpora le impostazioni pertinenti del modello di avvio personalizzato. Di conseguenza, il modello di avvio che vedi associato al gruppo Auto Scaling è diverso da quello specificato originariamente. Questo è il comportamento previsto.

Nota

I modelli di avvio non sono supportati su AWS Risorse Fargate.

È necessario creare un modello di avvio prima di associarlo a un ambiente di calcolo. Puoi creare un modello di avvio nella console Amazon EC2. In alternativa, puoi usare AWS CLI o un AWS SDK. Ad esempio, il seguente file JSON rappresenta un modello di avvio che ridimensiona il volume di dati Docker per impostazione predefinita AWS Batch calcola l'AMI della risorsa e la imposta anche per essere crittografata.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

È possibile creare il modello di avvio precedente salvando il JSON in un file chiamato lt-data.json ed eseguendo quanto segue AWS CLI comando.

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Per ulteriori informazioni sui modelli di avvio, consulta Avvio di un'istanza da un modello di avvio nel Guida per l'utente di Amazon EC2.

Se si utilizza un modello di avvio per creare il tuo ambiente di calcolo, è possibile spostare i seguenti parametri di ambiente di calcolo esistenti sul modello di avvio:

Nota

Supponiamo che uno qualsiasi di questi parametri (ad eccezione dei tag Amazon EC2) sia specificato sia nel modello di avvio che nella configurazione dell'ambiente di calcolo. Quindi, i parametri dell'ambiente di calcolo hanno la precedenza. I tag Amazon EC2 vengono uniti tra il modello di avvio e la configurazione dell'ambiente di calcolo. In caso di collisione sulla chiave del tag, il valore nella configurazione dell'ambiente di calcolo ha la precedenza.

  • Coppia di chiavi Amazon EC2

  • ID AMI Amazon EC2

  • ID dei gruppi di sicurezza

  • Tag Amazon EC2 (computeResources.tags)

I seguenti parametri del modello di avvio sono ignorato da AWS Batch:

  • Tipo di istanza (specificare i tipi di istanza desiderati al momento della creazione dell'ambiente di calcolo)

  • Ruolo istanza (specificare il ruolo di istanza desiderato al momento della creazione dell'ambiente di calcolo)

  • Sottoreti dell'interfaccia di rete (specificare i tipi di sottoreti desiderati al momento della creazione dell'ambiente di calcolo)

  • Opzioni di mercato ad esempio (AWS Batch deve controllare la configurazione dell'istanza Spot)

  • Disabilita la terminazione dell'API (AWS Batch deve controllare il ciclo di vita dell'istanza)

Nota

Per autorizzare i tag Amazon EC2 applicati alle tue risorse di calcolo con le policy IAM, imposta tali tag nell'ambiente di calcolo computeResources.tags anziché solo nel modello di avvio. Quando AWS Batch elabora a CreateComputeEnvironment o UpdateComputeEnvironment richiesta, utilizza il batch:ComputeResourcesTag/tag-key chiave di condizione per autorizzare i tag in computeResources.tags. Questa chiave di condizione non valuta i tag impostati solo nel modello di avvio. Per ulteriori informazioni, consulta Controlla l'accesso ai tag delle risorse di calcolo con chiavi di condizione.

AWS Batch aggiorna il modello di lancio con una nuova versione del modello di lancio solo durante gli aggiornamenti dell'infrastruttura. Per ulteriori informazioni, consulta Aggiornare un ambiente di calcolo in AWS Batch.

Modelli di avvio predefiniti e sostituiti

È possibile definire un modello di avvio predefinito per l'ambiente di calcolo e un modello di avvio sostitutivo per tipi e famiglie di istanze specifici. Questo può esserti utile in modo che il modello predefinito venga utilizzato per la maggior parte dei tipi di istanze negli ambienti di calcolo.

Le variabili di sostituzione $Default e $Latest può essere utilizzato al posto di denominare una versione specifica. Se non si fornisce un modello di avvio sostitutivo, il modello di avvio predefinito viene applicato automaticamente.

Se si utilizza uno dei $Default o $Latest variabile, AWS Batch applicherà le informazioni correnti al momento della creazione dell'ambiente di calcolo. Se la versione predefinita o più recente cambia in futuro, è necessario aggiornare le informazioni tramite UpdateComputeEnvironment o tramite Console di gestione AWS - AWS Batch.

Per fornire ulteriore flessibilità, è possibile definire i modelli di avvio di override applicati a tipi o famiglie di istanze di calcolo specifici.

Nota

È possibile specificare fino a dieci (10) modelli di avvio sostitutivi per ambiente di calcolo.

Usa il targetInstanceTypes parametro per selezionare il tipo o la famiglia di istanze che deve utilizzare questo modello di avvio sostitutivo. Il tipo o la famiglia di istanza deve essere innanzitutto identificato da instanceTypes parametro.

Se definisci le sostituzioni dei modelli di avvio e decidi di rimuoverle in un secondo momento, puoi passare un array vuoto per annullare l'impostazione del overrides parametro in UpdateComputeEnvironment operazione API. Puoi anche scegliere di non includere overrides parametro quando si invia il UpdateComputeEnvironment operazione API. Per ulteriori informazioni, vedere, LaunchTemplateSpecification.overrides

Per ulteriori informazioni, vedere LaunchTemplateSpecificationOverride.targetInstanceTypes nel AWS Batch Guida di riferimento alle API.

Dati degli utenti di Amazon EC2 nei modelli di avvio

Puoi fornire i dati utente di Amazon EC2 nel tuo modello di lancio gestito da cloud-init all'avvio delle istanze. I dati utente possono eseguire scenari di configurazione comuni, inclusi, a titolo esemplificativo ma non esaustivo, i seguenti:

I dati utente di Amazon EC2 nei modelli di avvio devono essere contenuti in Archivio multiparte MIME formato. Questo perché i tuoi dati utente vengono uniti ad altri AWS Batch dati utente necessari per configurare le risorse di elaborazione. È possibile unire più blocchi di dati utente in un unico blocco, detto file MIME in più parti. Ad esempio, potresti voler combinare un boothook sul cloud che configura il demone Docker con uno script di shell dei dati utente che scrive le informazioni di configurazione per l'agente contenitore Amazon ECS.

Se stai usando AWS CloudFormation, il AWS::CloudFormation:: In esso il tipo può essere usato con cfn-init script di supporto per eseguire scenari di configurazione comuni.

Un file MIME in più parti è composto dai seguenti elementi:

  • Il tipo di contenuto e la dichiarazione di delimitazione della parte: Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • La dichiarazione della versione MIME: MIME-Version: 1.0

  • Uno o più blocchi di dati utente che contengono i seguenti componenti:

    • Il limite di apertura che indica l'inizio di un blocco di dati utente: --==BOUNDARY==. È necessario mantenere vuota la riga prima di questo limite.

    • La dichiarazione del tipo di contenuto per il blocco: Content-Type: text/cloud-config; charset="us-ascii". Per ulteriori informazioni sui tipi di contenuto, consulta Cloud-Init documentazione. È necessario mantenere vuota la riga dopo la dichiarazione del tipo di contenuto.

    • Il contenuto dei dati utente, ad esempio un elenco di comandi di shell o cloud-init direttive.

  • Il limite di chiusura che indica la fine del file composto da più parti MIME: --==BOUNDARY==--. È necessario mantenere vuota la riga prima del limite di chiusura.

Nota

Se aggiungi dati utente a un modello di avvio nella console Amazon EC2, puoi incollarli come testo normale. Oppure puoi caricarlo da un file. Se usi il AWS CLI o un AWS SDK, devi prima base64 codifica i dati dell'utente e invia quella stringa come valore di UserData parametro quando si chiama CreateLaunchTemplate, come mostrato in questo file JSON.

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }

Valori di configurazione riservati degli agenti Amazon ECS

AWS Batch scrive valori di configurazione specifici degli agenti Amazon ECS in /etc/ecs/ecs.config quando le istanze vengono avviate in EC2-based ambienti di elaborazione gestiti che utilizzano Amazon ECS. AWS Batch possono anche sovrascrivere questi valori durante gli aggiornamenti dell'ambiente di calcolo, quindi le modifiche potrebbero non persistere.

Importante

Conflitti tra i dati utente e AWS Batch-i valori gestiti possono impedire la pianificazione dei lavori, causare comportamenti di scalabilità imprevisti e comportare costi imprevisti.

Importante

Non copiare i dati utente da un AWS Batch-modello di avvio gestito nel tuo modello di avvio. AWS Batch-i dati utente gestiti contengono valori che differiscono tra gli ambienti di elaborazione e cambiano quando l'ambiente di elaborazione viene aggiornato. Se il modello di avvio contiene valori copiati, potrebbero entrare in conflitto con i valori previsti per l'ambiente di calcolo corrente.

Non impostate i seguenti valori nei dati utente del modello di avvio. Questi valori sono gestiti da AWS Batch e i conflitti possono causare problemi di pianificazione e scalabilità:

  • ECS_CLUSTER

  • ECS_INSTANCE_ATTRIBUTES

Per ulteriori informazioni sui parametri sopra elencati, vedere Configurazione dell'agente contenitore Amazon ECS nel Guida per sviluppatori di Amazon Elastic Container Service.