2017-09-22 6 views
0

Je tente de provisionner un cluster ECS à l'aide de CloudFormation. Le contexte de base est:Provisionnement de l'instance ECS avec CloudFormation et installation du package personnalisé

  • J'utilise l'AMI optimisée par Amazon ECS (par exemple ami-8fcc32f6).
  • J'utilise un groupe de mise à l'échelle automatique et une configuration de lancement
  • Je configure UserData pour la configuration de lancement pour installer certains packages avec yum.

Cela fonctionne, mais pour une raison quelconque, il est assez lent. Il semble que l'AMI optimisée par Amazon ECS possède ses propres scripts qui installent le logiciel avec yum et que le yum de mon script UserData est bloqué par cela et doit attendre jusqu'à ce qu'il puisse installer des paquets supplémentaires.

Existe-t-il une méthode recommandée pour installer des packages supplémentaires lors de l'utilisation de l'AMI Enhanced ECS?

J'utilise actuellement un script simple:

#!/bin/bash 
yum update -y 
yum install -y nfs-utils 

Répondre

1

J'ai presque la même configuration, mais j'utilise CloudInit au lieu d'un simple script comme UserData. Je vous suggère de faire la même chose, car je n'ai pas connu de lenteur particulière lors du lancement d'une instance.

#cloud-config 

repo_upgrade: all 


write_files: 
- path: /root/init.sh 
    owner: root:root 
    permissions: '0755' 
    content: | 
    #!/bin/bash 

    set -e 

    # ECS optimized instances are bare bones and we need to install a few packages 
    yum install -y aws-cli wget gettext python-pip 

    ... 


cloud_final_modules: 
- runcmd 
- scripts-user 


runcmd: 
- /root/init.sh 
+0

Cela fonctionne comme prévu. Cependant, pour installer des paquets supplémentaires, vous pouvez également utiliser le mot-clé 'packages' de' cloud-init' plutôt que l'exécution de 'yum' depuis votre propre script. – lanoxx

+0

Pour intégrer ceci dans un modèle de formation au cloud, le lien suivant m'a été utile [Intégration de YAML dans YAML] (https://medium.com/@george.shuklin/embedding-yaml-into-yaml-3511246d7ea7) – lanoxx