AWS CloudFormation recurso personalizado - AWS ParallelCluster

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS CloudFormation recurso personalizado

A partir da AWS ParallelCluster versão 3.6.0, você pode usar um recurso AWS ParallelCluster CloudFormation personalizado em uma AWS CloudFormation pilha. O recurso personalizado é uma pilha AWS ParallelCluster hospedada. Dessa forma, você pode usar CloudFormation para configurar e gerenciar seus clusters. Por exemplo, você pode configurar recursos externos do cluster, como rede, armazenamento compartilhado e infraestrutura de grupo de segurança em uma CloudFormation pilha. Além disso, você pode gerenciar seu cluster com uma CloudFormation infraestrutura como pipeline de código.

Adicione um recurso AWS ParallelCluster personalizado ao seu CloudFormation modelo fazendo o seguinte:

  1. Adicione uma pilha personalizada de provedores de recursos que seja de propriedade e hospedada por AWS ParallelCluster.

  2. Faça referência à pilha de provedores em seu CloudFormation modelo como um recurso personalizado.

A pilha de provedores de recursos personalizados trata e responde às CloudFormation solicitações. Por exemplo, ao implantar sua CloudFormation pilha, você também configura e cria um cluster. Para atualizar um cluster, você atualiza sua CloudFormation pilha. Você exclui um cluster ao excluir sua pilha. Para obter mais informações sobre recursos CloudFormation personalizados, consulte Recursos personalizados no Guia do AWS CloudFormation usuário.

Atenção

CloudFormation não detecta desvios de recursos personalizados. Use somente CloudFormation para atualizar a configuração do cluster e excluir um cluster.

Você pode usar a CLI pcluster ou Interface do usuário AWS ParallelCluster para monitorar o estado do cluster ou para atualizar a frota de computação, mas não deve usá-las para atualizar a configuração do cluster ou excluir o cluster.

nota

Recomendamos que você adicione proteção contra encerramento à sua pilha para evitar a remoção acidental.

Pilha de provedores hospedada por AWS ParallelCluster

A pilha de provedores de recursos personalizados é formatada conforme mostrado no seguinte trecho de CloudFormation modelo:

PclusterClusterProvider: Type: AWS::CloudFormation::Stack Properties: Parameters: CustomLambdaRole: # (Optional) RoleARN to override default AdditionalIamPolicies: # (Optional) comma-separated list of IAM policies to add TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/custom_resource/cluster.yaml - { Version: 3.7.0 }
Propriedades:
Parâmetros:
CustomLambdaRole (opcional):

Um perfil personalizado com permissões para executar o AWS Lambda que cria e gerencia o cluster. Por padrão, o perfil usa as mesmas políticas definidas por padrão na documentação do AWS ParallelCluster.

AdditionalIamPolicies (opcional):

Uma lista separada por vírgulas de nomes de recursos da Amazon (ARNs) adicionais da política do IAM para adicionar ao perfil usado pelo Lambda. Isso só é usado se não for especificado um CustomLambdaRole e se puder ser mantido em branco.

Se você precisar de políticas adicionais para o nó principal, nós de computação ou para acessar um bucket do Amazon S3, adicione-as às propriedades CustomLambdaRole ou AdditionalIamPolicy.

Para obter mais informações sobre políticas gerenciadas, consulte AWS Identity and Access Management permissões em AWS ParallelCluster.

TemplateURL (obrigatório):

O URL do arquivo de recurso AWS ParallelCluster personalizado.

Saídas:
ServiceToken:

Um valor que pode ser usado como uma propriedade de recurso personalizada ServiceToken. Um recurso personalizado ServiceToken especifica para onde AWS CloudFormation envia as solicitações. Essa é uma entrada obrigatória para um recurso de cluster que você inclui em seu AWS CloudFormation modelo.

LogGroupArn:

O ARN do CloudWatch LogGroup qual o recurso subjacente se registra.

LambdaLayerArn:

O ARN da camada Lambda usada para executar operações. AWS ParallelCluster

Recurso do cluster

O recurso de CloudFormation cluster é formatado conforme mostrado no seguinte trecho CloudFormation de modelo:

PclusterCluster: Type: Custom::PclusterCluster Properties: ServiceToken: !GetAtt [ PclusterClusterProvider , Outputs.ServiceToken ] ClusterName: !Sub 'c-${AWS::StackName}' # Must be different from StackName ClusterConfiguration: # Your Cluster Configuration
Propriedades:
ServiceToken:

A ServiceToken saída da pilha do AWS ParallelCluster provedor.

ClusterName:

O nome do cluster a ser criado e gerenciado. O nome não deve corresponder ao nome da CloudFormation pilha. O nome não pode ser alterado após a criação do cluster.

ClusterConfiguration:

O arquivo YAML de configuração do cluster, conforme descrito emArquivo de configuração do cluster. No entanto, você pode usar as CloudFormation construções usuais, como funções intrínsecas.

DeletionPolicy:

Define se o cluster deve ser excluído quando a pilha raiz for excluída. O padrão é Delete.

Retain:

Mantém o cluster se o recurso personalizado for excluído.

nota

Para manter o cluster retido funcionando, os recursos dependentes do cluster, como armazenamento e rede, devem ter uma política de exclusão definida para reter.

Delete:

Exclui o cluster se o recurso personalizado for excluído.

Valores de retorno Fn::GetAtt:

A função intrínseca Fn::GetAtt retorna um valor para um atributo especificado de um tipo. Para obter mais informações sobre o uso da Fn::GetAtt intrinsic função, consulte Fn:: GetAtt.

ClusterProperties:

Os valores da operação pcluster describe-cluster.

validationMessages:

Uma string contendo todas as mensagens de validação que ocorreram durante a última operação de criação ou atualização.

logGroupName:

O nome do grupo de logs usado para registrar as operações do cluster Lambda. Os eventos de log são retidos por 90 dias e o grupo de log é retido após a exclusão do cluster.

Exemplo: Fn::GetAtt:

# Provide the public IP address of the head node as an output of a stack Outputs: HeadNodeIp: Description: The public IP address of the head node Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ]

Exemplo: CloudFormation modelo simples e completo com um recurso AWS ParallelCluster personalizado:

AWSTemplateFormatVersion: '2010-09-09' Description: > AWS ParallelCluster CloudFormation Template Parameters: HeadNodeSubnet: Description: Subnet where the HeadNode will run Type: AWS::EC2::Subnet::Id ComputeSubnet: Description: Subnet where the Compute Nodes will run Type: AWS::EC2::Subnet::Id KeyName: Description: KeyPair to login to the head node Type: AWS::EC2::KeyPair::KeyName Resources: PclusterClusterProvider: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/custom_resource/cluster.yaml - { Version: 3.7.0 } PclusterCluster: Type: Custom::PclusterCluster Properties: ServiceToken: !GetAtt [ PclusterClusterProvider , Outputs.ServiceToken ] ClusterName: !Sub 'c-${AWS::StackName}' ClusterConfiguration: Image: Os: alinux2 HeadNode: InstanceType: t2.medium Networking: SubnetId: !Ref HeadNodeSubnet Ssh: KeyName: !Ref KeyName Scheduling: Scheduler: slurm SlurmQueues: - Name: queue0 ComputeResources: - Name: queue0-cr0 InstanceType: t2.micro Networking: SubnetIds: - !Ref ComputeSubnet Outputs: HeadNodeIp: Description: The Public IP address of the HeadNode Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ] ValidationMessages: Description: Any warnings from cluster create or update operations. Value: !GetAtt PclusterCluster.validationMessages

Para saber mais sobre como usar o recurso CloudFormation AWS ParallelCluster personalizado, consulteCriação de um cluster com AWS CloudFormation.

Operações de cluster

Quando um recurso personalizado de cluster é adicionado a uma CloudFormation pilha, CloudFormation pode realizar as seguintes operações de cluster:

  • CloudFormation cria um cluster em uma nova pilha separada ao implantar uma pilha que inclui o AWS ParallelCluster recurso personalizado.

  • Se você atualizar a configuração do cluster definida na pilha, de acordo com as políticas de atualização de configuração, CloudFormation atualizará o cluster. O provedor de recursos AWS ParallelCluster personalizados não interrompe a frota de computação antes de atualizar o cluster. Recomendamos usar a configuração QueueUpdateStrategy para atualizações do cluster. Dessa forma, você pode evitar fazer pcluster update-compute-fleet chamadas explícitas antes e depois das atualizações ao usar o recurso AWS ParallelCluster personalizado.

  • Se você excluir a pilha, o cluster será excluído.

Pilhas de solução de problemas que incluem o recurso AWS ParallelCluster personalizado

Com um recurso AWS ParallelCluster personalizado, CloudFormation implanta um cluster a partir de uma pilha nova e separada. Você pode monitorar a criação do cluster seguindo estas etapas:

  1. Navegue até CloudFormation AWS Management Console e escolha Pilhas no painel de navegação.

  2. Escolha a pilha com o nome que você definiu para o nome do cluster.

  3. Se o estado da pilha for ROLLBACK_COMPLETE, ocorreu um erro durante a criação do cluster.

  4. Escolha Detalhes da pilha e escolha a guia Eventos.

  5. Pesquise Eventos na ID lógica pelo nome que você definiu para o nome do cluster. Ela contém um Status reason que especifica uma razão para um problema.

  6. Você também pode escolher o menu suspenso Pilhas e, em seguida, Excluídas, para ver a lista de pilhas excluídas. Selecione a pilha com o nome do cluster e visualize Eventos para obter mais detalhes.

  7. Para visualizar a saída do provedor de recursos personalizados que gerencia o cluster, selecione a pilha com a descrição “Recurso personalizado do AWS ParallelCluster cluster”. Escolha a guia Recursos, encontre o recurso com ID lógica PclusterCfnFunctionLogGroup e acesse o link fornecido. Veja os fluxos de log que mostram a saída de depuração do Lambda.

  8. Para solucionar problemas do cluster, consulteAWS ParallelCluster solução de problemas.