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.
Concevez 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, par exempleGPU, vous devez définir des paramètres supplémentaires. Pour de plus amples informations, veuillez consulter Cas d'utilisation de la définition des ECS tâches Amazon.
-
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 EC2 instance, il existe plusieurs options, mais nous vous recommandons d'utiliser le mode
awsvpc
réseau. Le modeawsvpc
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 votre entrepriseVPCs.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 ECS tâches Amazon.
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 un site Web API nécessitent une mise à l'échelle au même rythme. À mesure que le trafic augmente, le nombre de conteneurs Web requis sera différent de celui de API conteneurs. 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 API conteneurs.
-
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 un commit git qui est transformé en une image de conteneur étiquetée avec le git commitSHA. Cette balise d'image de conteneur reçoit ensuite sa propre révision de définition de ECS tâche Amazon. Enfin, le ECS service Amazon est mis à jour pour lui indiquer de déployer la nouvelle révision de définition de tâche.
-
Utilisez IAM des rôles différents pour chaque famille de définitions de tâches.
Définissez chaque définition de tâche avec son propre IAM rôle. 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.