Architectez votre application pour Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Architectez votre application pour Amazon ECS

Vous concevez votre application en créant une définition de tâche pour votre application. La définition de tâche contient les paramètres qui définissent les informations relatives à l'application, notamment :

  • Type de lancement à utiliser, qui détermine l'infrastructure sur laquelle vos tâches sont hébergées.

    Lorsque vous utilisez le type de lancement EC2, vous choisissez également le type d'instance. Pour certains types d'instances, tels que le GPU, vous devez définir des paramètres supplémentaires. Pour plus d’informations, consultez Cas d'utilisation de la définition des tâches Amazon ECS.

  • L'image du conteneur, qui contient le code de votre application et toutes les dépendances dont le code d'application a besoin pour s'exécuter.

  • Le mode réseau à utiliser pour les conteneurs de votre tâche

    Le mode réseau détermine la manière dont votre tâche communique sur le réseau.

    Pour les tâches exécutées sur une instance EC2, il existe plusieurs options, mais nous vous recommandons d'utiliser le mode awsvpc réseau. Le mode awsvpc réseau simplifie la mise en réseau des conteneurs, car vous avez un meilleur contrôle sur la façon dont vos applications communiquent entre elles et avec les autres services au sein de vos VPC.

    Pour les tâches exécutées sur Fargate, vous ne pouvez utiliser awsvpc que le mode réseau.

  • La configuration de journalisation à utiliser pour vos tâches.

  • Tous les volumes de données utilisés avec les conteneurs de la tâche.

Pour obtenir la liste complète des paramètres de définition de tâche, veuillez consulter Paramètres de définition des tâches Amazon ECS.

Suivez ces recommandations lors de la création de vos définitions de tâche :

  • Utilisez chaque famille de définitions de tâches pour un seul objectif métier.

    Si vous regroupez plusieurs types de conteneurs d'applications dans la même définition de tâche, vous ne pouvez pas mettre à l'échelle ces conteneurs indépendamment. Par exemple, il est peu probable qu'un site Web et une API nécessitent une montée en puissance au même rythme. À mesure que le trafic augmente, le nombre de conteneurs Web requis sera différent de celui des conteneurs d'API. Si ces deux conteneurs sont déployés dans la même définition de tâche, chaque tâche exécute le même nombre de conteneurs Web et de conteneurs d'API.

  • Associez chaque version d'application à une révision de définition de tâche au sein d'une famille de définitions de tâches.

    Au sein d'une famille de définitions de tâches, considérez chaque révision de définition de tâche comme un instantané ponctuel des paramètres d'une image de conteneur particulière. De la même manière, le conteneur est un instantané de tout ce qui est nécessaire pour exécuter une version particulière du code de votre application.

    Assurez-vous qu'il existe un one-to-one mappage entre une version du code de l'application, une balise d'image de conteneur et une révision de définition de tâche. Un processus de publication typique implique une validation git qui est transformée en une image de conteneur balisée avec le SHA de validation git. Cette balise d'image de conteneur reçoit ensuite sa propre révision de définition de tâche Amazon ECS. Enfin, le service Amazon ECS est mis à jour pour lui demander de déployer la nouvelle révision de définition de tâche.

  • Utilisez différents rôles IAM pour chaque famille de définitions de tâches.

    Définissez chaque définition de tâche avec son propre rôle IAM. Cette recommandation doit être faite en parallèle avec notre recommandation visant à fournir à chaque composante métier sa propre famille de définitions de tâches. En mettant en œuvre ces deux meilleures pratiques, vous pouvez limiter l'accès de chaque service aux ressources de votre AWS compte. Par exemple, vous pouvez autoriser votre service d'authentification à accéder à votre base de données de mots de passe. Dans le même temps, vous pouvez également vous assurer que seul votre service de commande a accès aux informations de paiement par carte de crédit.