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 l'architecture de 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 EC2 lancement, 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 de plus amples informations, veuillez consulter 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.

  • 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 EC2 des instances, 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 en vous permettant de mieux contrôler la manière dont vos applications communiquent entre elles et avec les autres services au sein de votre entreprise VPCs.

    Pour les tâches exécutées sur Fargate, vous devez utiliser awsvpc 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 pour le type de lancement Fargate.

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 redimensionner ces conteneurs indépendamment. Par exemple, un site Web et une API nécessitent généralement des modèles de mise à l'échelle différents. À mesure que le trafic augmente, il se peut que vous ayez besoin d'un nombre de conteneurs Web 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, chaque révision de définition de tâche représente un point-in-time instantané des paramètres d'une image de conteneur particulière. Cela est similaire à la façon dont le conteneur est un instantané de tous les composants nécessaires pour exécuter une version particulière du code de votre application.

    Créez 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 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. Mettez en œuvre cette pratique tout en fournissant à chaque composant 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 vous assurer que seul votre service de commande a accès aux informations de paiement par carte de crédit.