Général

Q : Qu'est-ce qu'Amazon SWF ?

Amazon Simple Workflow Service (Amazon SWF) est un service Web qui facilite la coordination de travaux à travers des composants d'application distribués. Amazon SWF permet de concevoir des applications sous forme de coordination de tâches pour un éventail d'exemples d'utilisation, comprenant le traitement multimédia, les systèmes back-end d'applications Web, les flux des processus d'entreprise et les pipelines analytiques. Les tâches représentent des appels de diverses étapes de traitement au sein d'une application pouvant être réalisées par du code exécutable, des appels de services Web, des actions humaines et des scripts.

La coordination des tâches implique la gestion des dépendances, de la programmation et de la simultanéité en matière d'exécution conformément au flux logique de l'application. Grâce à Amazon SWF, les développeurs acquièrent un contrôle complet sur la mise en oeuvre des étapes de traitement et la coordination des tâches qui les conduisent sans avoir à se soucier des complexités sous-jacentes consistant notamment à suivre leur évolution et à maintenir leur état. Amazon SWF propose également AWS Flow Framework pour permettre aux développeurs d'utiliser la programmation asynchrone dans le développement de leurs applications. Amazon SWF apporte aux développeurs la simplicité de programmation et la capacité d'améliorer l'utilisation des ressources, les latences et le débit de leurs applications.

Q : Quels atouts présentent la conception de mon application sous la forme de coordination de tâches ? Comment Amazon SWF peut m'aider pour y parvenir ?

Dans Amazon SWF, les tâches représentent des appels d'étapes logiques au sein d'applications. Les tâches sont traitées par des programmes exécutants chargés d'interagir avec Amazon SWF pour obtenir des tâches, les traiter et renvoyer leurs résultats. Un programme exécutant met en oeuvre une étape de traitement de l'application. Vous pouvez créer des programmes exécutants dans divers langages de programmation et même réutiliser les composants existants pour créer rapidement le programme exécutant. Vous pouvez, par exemple, utiliser des services de nuage, des applications d'entreprise, des systèmes existants et même de simples scripts pour mettre en oeuvre des programmes exécutants. Le fait de contrôler de manière indépendante le nombre de programmes exécutants pour le traitement de chaque type de tâche, vous permet de contrôler efficacement le débit de votre application.

Vous devez développer un programme décideur dans le langage de programmation de votre choix chargé de coordonner l'exécution de l'application à travers les programmes exécutants. La séparation des étapes de traitement et leur coordination permet de gérer votre application de manière contrôlée, de les déployer, de les exécuter, de les faire évoluer et de les mettre à jour de manière indépendante. Vous pouvez choisir de déployer les programmes exécutants ou décideurs dans le nuage (par ex., Amazon EC2) ou sur des machines situées derrière les pare-feu de l'entreprise. Le découplage des programmes exécutants et décideurs assure une logique applicative dynamique et une mise à jour rapide de votre application pour s'adapter aux nouvelles exigences. Par exemple, il vous suffit de modifier le programme décideur pour supprimer, ignorer ou réessayer des tâches et créer de nouveaux flux d'application.

Par la mise en oeuvre de programmes exécutants et décideurs, vous vous concentrez sur votre logique applicative différenciée puisqu'elle se rapporte à la réalisation des étapes de traitement réelles et à leur coordination. Amazon SWF traite les détails sous-jacents comme les tâches de stockage jusqu'à ce qu'elles puissent être affectées, la surveillance des tâches affectées et le fait de fournir des informations cohérentes concernant leur réalisation. Amazon SWF assure également une visibilité constante au niveau de chaque tâche via des API et une console.

Q : Que puis-je faire avec Amazon SWF ?

Amazon SWF peut permettre de relever de nombreux défis survenant lors de la création d'applications à l'aide de composants distribués. Vous pouvez par exemple utiliser Amazon SWF et AWS Flow Framework qui l'accompagne pour :

  • développer vos applications sous forme de programmes asynchrones à l'aide de structures de programmation simples faisant abstraction des détails, tels que le lancement des tâches à exécuter à distance et le suivi de l'état d'exécution du programme.
  • gérer l'état d'exécution de votre application (par ex., les étapes réalisées, celles en cours d'exécution, etc.). L'utilisation de bases de données, de systèmes personnalisés ou de solutions ad hoc permettant de maintenir l'exécution devient inutile.
  • communiquer et gérer le flux de travail entre vos composants d'application Grâce à Amazon SWF, vous n'avez plus à concevoir de protocole de messagerie ou à vous soucier des tâches perdues ou en double.
  • Centraliser les étapes de coordination de votre application. Votre logique de coordination n'a plus à être dispersée entre les divers composants, mais peut être encapsulée dans un seul et unique programme.
  • Intégrer un éventail de programmes et de composants, comprenant des systèmes existants et des services de nuage tiers à votre application. En apportant à votre application de la souplesse dans la manière dont les composants de l'application sont déployés, Amazon SWF vous permet de faire migrer progressivement des composants depuis des datacenters privés vers l'infrastructure de nuage public sans pour autant affecter la disponibilité ou les performances de l'application.
  • automatiser les processus comprenant des tâches humaines de longue durée (comme des approbations, des révisions, des investigations, etc.) Amazon SWF assure en toute fiabilité le suivi de l'état des étapes de traitement pouvant durer plusieurs jours ou mois.
  • créer une couche d'application au-dessus d'Amazon SWF pour la prise en charge des langages spécifiques de chaque domaine pour vos utilisateurs finaux. Amazon SWF vous laissant libre de choisir votre langage de programmation, vous pouvez créer aisément des interpréteurs de langages spécialisés (par ex., XPDL) et des interfaces utilisateur personnalisées comprenant des outils de modélisation.
  • obtenir des pistes d'audit détaillées et acquérir une visibilité de l'ensemble des instances en cours d'exécution de vos applications. Vous pouvez également intégrer les capacités de visibilité fournies par Amazon SWF à vos propres interfaces utilisateur à l'aide des API d'Amazon SWF.
Les clients utilisent Amazon SWF pour créer des applications d'encodage vidéo, de commerce social, d'approvisionnement d'infrastructures, de pipelines MapReduce, de gestion de processus d'entreprise et dans plusieurs autres cas. Pour plus de détails sur les exemples d'utilisation, veuillez consulter la rubrique Quels sont les exemples d'utilisation pouvant être résolus grâce à SWF ?. Pour savoir comment les clients utilisent Amazon SWF aujourd'hui, veuillez consulter nos études de cas.

Q : Quels sont les atouts d'Amazon SWF par rapport aux solutions développées en interne et aux produits de processus existants ?

Lors de la création de solutions destinées à coordonner des tâches dans un environnement distribué, les développeurs doivent prendre en compte plusieurs variables. Les tâches menant les étapes de traitement peuvent être longues et échouer, expirer ou nécessiter un redémarrage. Elles s'achèvent souvent par des débits et des latences variables. Le suivi et la visualisation des tâches dans tous ces cas représentent non seulement un défi, mais sont également indifférenciés. À mesure que les applications et les tâches évoluent, les développeurs sont confrontés à des problèmes propres aux systèmes distribués. Ils doivent, par exemple, s'assurer qu'une tâche n'est affectée qu'une seule fois et que son résultat fait l'objet d'un suivi fiable au fil des échecs et des interruptions inattendus. Grâce à Amazon SWF, les développeurs peuvent se concentrer sur leur logique applicative différenciée, comme la manière de traiter des tâches et de les coordonner.

Les produits de processus existants contraignent souvent les développeurs à apprendre des langages spécialisés, à héberger des bases de données coûteuses et à abandonner le contrôle sur l'exécution des tâches. Les langages spécialisés compliquent l'expression d'applications complexes et ne sont pas suffisamment souples pour réaliser des modifications rapides. Amazon SWF, au contraire, est un service en nuage permettant l'utilisation de langages de programmation courants et donnant la possibilité aux développeurs de contrôler le traitement des tâches. En adoptant un modèle découplé pour des applications distribuées Amazon SWF vous permet d'effectuer aisément des modifications.

Q : Qu'est ce qu'un programme exécutant et décideur ?

Dans Amazon SWF, la mise en oeuvre d'une application passe par la création de programmes exécutants et d'un programme décideur chargé de communiquer directement avec le service. Les programmes exécutants interagissent avec Amazon SWF pour obtenir des tâches, traiter les tâches reçues et renvoyer les résultats. Le programme décideur contrôle la coordination des tâches, comme leur classement, leur simultanéité et leur programmation selon la logique applicative. Les programmes exécutants et décideurs peuvent fonctionner sur l'infrastructure en nuage, comme Amazon EC2 ou sur des machines derrière des pare-feu. Amazon SWF agit comme intermédiaire entre les programmes exécutants et décideurs. Il permet au programme décideur de visualiser de manière cohérente la progression des tâches et d'en lancer de nouvelles en continu. Dans le même temps, Amazon SWF stocke les tâches, les affecte aux programmes exécutants une fois prêtes et surveille leur progression. Il s'assure qu'une tâche n'est affectée qu'une seule fois et qu'elle n'est jamais dupliquée. Amazon SWF se charge de gérer durablement l'état de l'application, ce qui évite aux programmes exécutants et décideurs d'avoir à effectuer le suivi de l'état d'exécution. Ils peuvent ainsi s'exécuter de manière indépendante et évoluer rapidement. Veuillez consulter la section Fonctionnalité de la page relative aux détails d'Amazon SWF pour en savoir plus sur les étapes de création d'applications à l'aide d'Amazon SWF.

Amazon SWF permet d'exécuter plusieurs fois de manière simultanée le même processus. Cette opération est appelée exécution de processus ou exécution. Les exécutions portent des noms uniques. Amazon SWF Management Console (ou les API de visibilité) permettent de visualiser vos exécutions dans leur intégralité et de zoomer sur une exécution donnée pour en afficher les détails par tâche.

Q : Quel confort de programmation apporte Amazon SWF au développement d'applications ?

Comme les autres services AWS, Amazon SWF propose un SDK intégré destiné aux API de service Web. De plus, Amazon SWF offre un SDK nommé AWS Flow Framework vous permettant de développer de manière simple et rapide des applications reposant sur Amazon SWF. AWS Flow Framework fait abstraction des détails relatifs à la coordination par tâche par l'utilisation de structures de programmation conviviales. Lorsque vous exécutez votre programme, le cadre effectue des appels vers Amazon SWF, assure le suivi de l'état d'exécution de votre programme à l'aide de l'historique des exécutions conservé par Amazon SWF et fait appel aux parties de votre code qui conviennent au moment opportun. En proposant un cadre de programmation intuitif pour accéder à Amazon SWF, AWS Flow Framework permet aux développeurs de développer dans leur intégralité des applications sous forme d'interactions asynchrones structurées dans un processus. Pour plus de détails, veuillez consulter la rubrique Qu'est-ce que AWS Flow Framework ?

Q : En quoi Amazon SWF diffère-t-il d'Amazon SQS ?

Amazon SWF offre une infrastructure conçue pour coordonner les tâches lors de la création d'applications évolutives et contrôlables. Amazon Simple Queue Service (SQS) offre au contraire, une file d'attente hébergée fiable et extrêmement évolutive pour stocker des messages. Alors que vous êtes susceptible d'utiliser Amazon SQS pour créer un support de messagerie nécessaire à la mise en oeuvre de votre application distribuée, Amazon SWF vous propose cette fonction clé en main ainsi que d'autres capacités au niveau de chaque application. Voici les principales différences existant entre Amazon SWF et Amazon SQS :

  • Amazon SWF offre une API orientée tâche, alors qu'Amazon SQS propose une API orientée message.
  • Amazon SWF s'assure qu'une tâche n'est affectée qu'une seule fois et qu'elle n'est jamais dupliquée. Amazon SQS nécessite de traiter les messages en double et de s'assurer qu'un message n'est traité qu'une seule fois.
  • Amazon SWF garde une trace de l'ensemble des tâches et des évènements d'une application. Amazon SQS requiert la mise en oeuvre de votre propre suivi par application, surtout si votre application utilise plusieurs files d'attente.
  • Amazon SWF Console et les API de visibilité offrent une vue orientée application qui vous permet notamment de rechercher des exécutions, de zoomer sur les détails d'une exécution et d'administrer des exécutions. Amazon SQS vous contraint au contraire à mettre en oeuvre ce type de fonctionnalité.
  • Amazon SWF utilise le long-polling qui consiste à maintenir l'interrogation pendant une minute maximum durant laquelle les nouvelles tâches programmées sont transmises au demandeur. Ce mécanisme permet de réduire considérablement le nombre d'interrogations renvoyées sans résultat. Avec Amazon SQS, les développeurs doivent déterminer la fréquence d'interrogation optimale car les demandes d'interrogations reviennent immédiatement et souvent sans réponse.
  • Amazon SWF propose plusieurs fonctionnalités permettant de faciliter le développement d'applications, comme le caractère unique des exécutions, la transmission de données entre les tâches, la signalisation, la souplesse en matière de distribution des tâches, etc. Avec Amazon SQS, vous devez mettre en oeuvre vous-même toutes les fonctionnalités de ce type au niveau de chaque application.
  • En plus d'un SDK intégré chargé de faire appel aux API de service, Amazon SWF propose le kit AWS Flow Framework, qui vous permet de développer rapidement des applications distribuées à l'aide de syntaxes de programmation visant à structurer des interactions asynchrones.

Q : Quels sont les exemples d'utilisation pouvant être résolus grâce à Amazon SWF ?

Amazon SWF a été appliqué à des exemples d'utilisation dans le domaine du traitement multimédia, de l'automatisation des processus d'entreprise, de l'analyse des données, de la migration vers le nuage et du traitement par lot. En voici quelques exemples :

Exemple d'utilisation n°1 : l'encodage vidéo à l'aide d'Amazon S3 et Amazon EC2. Dans ce cas, des fragments de vidéos volumineuses sont téléchargés vers Amazon S3. Le téléchargement des fragments doit faire l'objet d'une surveillance. Dès qu'un fragment est téléchargé, celui-ci est encodé par son téléchargement vers une instance Amazon EC2. Le fragment encodé est stocké à un autre emplacement d'Amazon S3. Une fois tous les fragments encodés de cette manière, ceux-ci sont assemblés dans un fichier entièrement encodé de nouveau stocké dans son intégralité sur Amazon S3. Ce processus peut échouer en raison de la survenue d'erreurs d'encodage d'un ou plusieurs fragments. De tels échecs doivent être détectés et traités.

Avec Amazon SWF, toute l'application est conçue comme un processus, où chaque fichier vidéo est exécuté comme tel. Les tâches traitées par les divers programmes exécutants comprennent le téléchargement d'un fragment vers Amazon S3, le téléchargement d'un fragment depuis Amazon S3 vers une instance Amazon EC2 et son encodage, le stockage d'un fragment sur Amazon S3, l'assemblage de plusieurs fragments en un seul et même fichier et le téléchargement d'un fichier complet vers Amazon S3. Le programme décideur lance des tâches simultanées afin d'exploiter le parallélisme de l'exemple d'utilisation. Il lance une tâche chargée d'encoder un fragment téléchargé sans attendre le téléchargement d'autres fragments. En cas d'échec d'une tâche en charge d'un fragment, le programme décideur l'exécute de nouveau pour ce fragment uniquement. L'état de l'application conservé par Amazon SWF permet au programme décideur de contrôler le processus. Le programme décideur l'utilise, par exemple, pour savoir quand tous les fragments ont été encodés afin de les extraire de leur emplacement sur Amazon S3 en vue de leur assemblage. La progression de l'exécution fait l'objet d'un suivi continu dans Amazon SWF Management Console. En cas d'échec, les tâches concernées sont identifiées et utilisées pour déterminer les fragments ayant échoué.

Exemple d'utilisation n°2 : traitement de catalogues de produits volumineux à l'aide d'Amazon Mechanical Turk. Lors de la validation de données contenues dans des catalogues volumineux, les produits du catalogue sont traités par lots. Les différents lots peuvent être traités simultanément. Pour chaque lot, les données du produit sont extraites des serveurs du datacenter et transformées en fichiers CSV (Comma Separated Values) requis par l'interface Request User Interface (RUI) d'Amazon Mechanical Turk. Le fichier CSV est téléchargé pour alimenter et exécuter les HIT (Human Intelligence Tasks). Une fois les HIT terminées, le fichier CSV en résultant est de nouveau transformé pour que les données retrouvent leur format d'origine. Les résultats sont alors évalués et les employés d'Amazon Mechanical Turk sont payés en fonction de leurs résultats. Les échecs sont extraits et traités de nouveau tandis que les résultats HIT acceptables sont utilisés pour mettre à jour le catalogue. Au fil des lots traités, le système a besoin d'assurer le suivi de la qualité des employés d'Amazon Mechanical Turk et d'adapter les paiements en fonction des résultats. Les HIT ayant échoué sont de nouveau regroupées par lot et renvoyées vers le pipeline.

Avec Amazon SWF, l'exemple d'utilisation ci-dessus est mis en oeuvre sous forme d'un ensemble de processus. Un processus BatchProcess prend en charge le traitement d'un seul lot. Il possède des programmes exécutants chargés d'extraire des données, de les transformer et de les envoyer via Amazon Mechanical Turk. Le processus BatchProcess détermine les HIT acceptables et celles ayant échoué. Ce qui sert de point de départ à trois autres processus appelés MTurkManager, UpdateCatalogWorkflow et RerunProducts. Le processus MTurkManager procède aux paiements des HIT acceptables, répond aux employés qui ont produit des HIT ayant échoué et met à jour sa propre base de données pour le suivi de la qualité des résultats. Le processus UpdateCatalogWorkflow met à jour le catalogue principal en fonction des HIT acceptables. Le processus RerunProducts attend qu'il y ait une quantité suffisante de lots de produits dont les HIT ont échoué. Il crée alors un lot et le renvoie au processus BatchProcess. Le traitement de bout en bout du catalogue est réalisé par un processus nommé CleanupCatalog chargé de lancer des exécutions enfant des processus ci-dessus. Le fait de disposer d'un système aux processus bien définis permet de structurer, de vérifier et d'exécuter systématiquement cet exemple d'utilisation pour les catalogues de plusieurs millions de produits.

Exemple d'utilisation n°3 : migration de composants depuis le datacenter vers le nuage. Les opérations critiques pour l'entreprise doivent être hébergées dans un datacenter privé et transférées dans leur intégralité vers le nuage sans provoquer d'interruptions.

Les applications reposant sur Amazon SWF peuvent combiner des programmes exécutants chargés d'incorporer des composants fonctionnant dans le datacenter à des programmes exécutants qui s'exécutent dans le nuage. Pour assurer une transition sans accroc d'un programme exécutant du datacenter, de nouveaux programmes de même type sont tout d'abord déployés dans le nuage. Les programmes exécutants du datacenter continuent de s'exécuter normalement parallèlement aux nouveaux programmes en nuage. L'acheminement d'une partie de la charge vers les programmes exécutants en nuage permet de les tester et de les valider. L'application ne subit aucune interruption, car les programmes exécutants du datacenter continuent de fonctionner pendant ce test. Une fois les tests réussis, les programmes exécutants du datacenter s'arrêtent progressivement au profit de ceux se trouvant dans le nuage, si bien qu'à terme ils peuvent être exécutés intégralement dans le nuage. Vous pouvez répéter ce processus pour tous les autres programmes exécutants du datacenter afin de transférer l'ensemble de l'application vers le nuage. Si pour des raisons propres à l'entreprise, certaines étapes de traitement doivent s'effectuer dans le datacenter privé, l'exécution de ces programmes exécutants peut se poursuivre dans le datacenter privé tout en faisant toujours partie de l'application.

Consultez nos études de cas afin de découvrir d'autres applications et systèmes plus intéressants déjà créés par des développeurs et des entreprises à l'aide d'Amazon SWF.

Q : Est-ce qu'Amazon utilise Amazon SWF pour ses propres applications ?

Oui. Les développeurs au sein d'Amazon utilisent Amazon SWF pour un large éventail de projets et exécutent des millions de processus chaque jour. Leurs exemples d'utilisation comprennent les processus d'entreprise essentiels se cachant derrière les sites Web Amazon.com et AWS, les mises en oeuvre de plusieurs services Web AWS et de leurs API, l'analyse MapReduce pour une prise de décision opérationnelle et la gestion de contenus destinés aux utilisateurs comme des pages Web, des vidéos et des livres électroniques pour tablette de lecture Kindle.

Démarrage

Q : Comment puis-je démarrer avec Amazon SWF ?

Pour s'inscrire à Amazon SWF, accédez à la page de détail d'Amazon SWF et cliquez sur le bouton « Inscrivez-vous maintenant ». Si vous n'avez pas de compte Amazon Web Services, vous serez invité à en créer un. Suite à l'inscription, vous avez la possibilité de lancer une visite virtuelle dans AWS Management Console, qui vous guide à travers les diverses étapes relatives à l'exécution d'une application de conversion d'image simple au moyen d'Amazon SWF. Vous pouvez également télécharger les exemples de AWS Flow Framework pour découvrir les diverses fonctions du service. Pour commencer à utiliser Amazon SWF dans vos applications, veuillez vous reporter à la documentation qui s'y rapporte.

Q : Existe-t-il des exemples de processus que je peux utiliser pour essayer Amazon SWF ?

Oui. Si vous utilisez Amazon SWF pour la première fois, vous pouvez lancer la présentation virtuelle des exemples dans AWS Management Console, qui vous guide à travers l'enregistrement d'un domaine et des types, le déploiement de programmes exécutants et décideurs et le lancement d'une exécution de processus. Vous pouvez télécharger le code des programmes exécutants et décideurs utilisés dans cette présentation, exécuter ces programmes sur votre infrastructure et même les modifier pour créer vos propres applications. Vous pouvez aussi télécharger les exemples de AWS Flow Framework, qui illustrent l'utilisation d'Amazon SWF pour différents exemples d'utilisation, comme le traitement de données distribuées, les travaux Cron et le déploiement d'une pile d'applications. La consultation de ce code source vous permet d'en savoir plus sur les fonctions d'Amazon SWF et sur la manière d'utiliser AWS Flow Framework pour créer vos applications distribuées.

Q : Quels sont les divers moyens d'accéder à SWF ?

Vous pouvez accéder à SWF depuis :

  • SDK AWS pour Java, Ruby, .NET et PHP
  • AWS Flow Framework pour Java (inclus dans le SDK AWS pour Java)
  • Amazon SWF API de services Web
  • AWS Management Console

Fonctionnalité

Q : Qu'est-ce que l'enregistrement ?

L'enregistrement consiste en une étape unique à effectuer pour chaque type de processus et d'activité différent. Vous pouvez procéder à un enregistrement à l'aide d'un programme ou via Amazon SWF Management Console. Lors de l'enregistrement, vous indiquez des ID de type uniques propres à chaque activité et type de processus. Vous spécifiez également les informations par défaut utilisées lors de l'exécution d'un processus, comme les valeurs relatives au délai d'expiration et les paramètres de distribution des tâches.

Q : Qu'est-ce qu'un domaine ?

Dans SWF, vous définissez des conteneurs logiques appelés domaines pour vos ressources applicatives. Les domaines ne peuvent être créés qu'au niveau de votre compte AWS et ne peuvent être imbriqués. Un domaine peut porter n'importe quel nom défini par l'utilisateur. Chaque ressource applicative, telle qu'un type de processus, un type d'activité ou une exécution appartient précisément à un domaine. Lors de l'enregistrement, vous définissez le domaine sous lequel un type de processus ou d'activité doit être enregistré. Lorsque vous lancez une exécution, celle-ci est automatiquement créée dans le même domaine que son type de processus. Le caractère unique des identifiants de ressource (par ex., les ID de type ou l'ID d'exécution) se limite à un domaine. Vous pouvez par exemple réutiliser les identifiants dans divers domaines.

Q : Comment puis-je gérer mes ressources applicatives à travers divers environnements et regroupements ?

Vous pouvez utiliser les domaines pour organiser vos ressources applicatives afin d'en faciliter leur gestion et éviter qu'elles ne s'affectent les unes et les autres par inadvertance. Vous pouvez, par exemple, créer des domaines différents pour vos environnements de développement, de test et de production et créer les ressources appropriées dans chacune d'entre elles. Bien que vous puissiez enregistrer le même type de processus dans chacun de ces domaines, celui-ci sera traité comme une ressource distincte dans chaque domaine. Vous pouvez modifier ses paramètres dans le domaine de développement ou gérer les exécutions dans le domaine de test sans affecter les ressources correspondantes du domaine de production.

Q : Comment un programme décideur coordonne-t-il un processus dans Amazon SWF ?

Le programme décideur peut être considéré comme un type de programme exécutant spécifique. Comme les programmes exécutants, il peut être écrit dans n'importe quel langage et demander des tâches à Amazon SWF. Toutefois, il prend en charge des tâches spéciales appelées tâches décisionnelles. Amazon SWF envoie des tâches décisionnelles chaque fois que l'exécution d'un processus connaît des transitions, telles que la fin ou l'expiration d'une tâche d'activité. Une tâche décisionnelle contient des informations sur les entrées, les sorties et l'état actuel des tâches d'activité lancées préalablement. Votre programme décideur utilise ces données pour décider des étapes suivantes, y compris des nouvelles tâches d'activité et les renvoie à Amazon SWF. À son tour, Amazon SWF met en application ces décisions en lançant si nécessaire de nouvelles tâches d'activité et en assurant leur surveillance. En répondant en continu aux tâches décisionnelles, le programme décideur contrôle l'ordre, la durée, la simultanéité des tâches d'activité et, par conséquent, l'exécution des étapes de traitement de l'application. SWF envoie la première tâche décisionnelle dès le démarrage d'une exécution. Dès cet instant, Amazon SWF met en application les décisions prises par votre programme décideur pour mener votre exécution. L'exécution se poursuit tant que votre programme décideur n'a pas décidé d'y mettre un terme.

Afin d'aider le programme décideur dans sa prise de décision, SWF enregistre en continu les informations relatives à toutes les tâches d'une exécution. Cet enregistrement est un historique propre à chaque exécution. Un nouvel historique démarre dès qu'une exécution commence. À ce moment, l'historique contient les informations d'origine comme les données d'entrée de l'exécution. Par la suite, à mesure que les programmes exécutants traitent les tâches d'activité, Amazon SWF met à jour l'historique avec leurs données d'entrée et de sortie et leur dernier état. Dès qu'un programme décideur obtient une tâche décisionnelle, il est en mesure d'inspecter l'historique de l'exécution. Amazon SWF s'assure que l'historique reflète précisément l'état de l'exécution au moment de l'envoi de la tâche décisionnelle. Ainsi, le programme décideur peut utiliser l'historique pour déterminer ce qui est survenu lors de l'exécution et entreprendre les étapes suivantes en conséquence.

Q : Comment puis-je m'assurer qu'un programme décideur ou exécutant n'obtient que les tâches qu'il comprend ?

Les listes de tâches permettent de déterminer la manière dont les tâches sont affectées. Les listes de tâches sont des ressources Amazon SWF auxquelles les tâches lancées sont ajoutées et depuis lesquelles les tâches sont demandées. Ces listes portent des noms définis par l'utilisateur. Une liste peut comporter des tâches dont les ID de type diffèrent, mais qui doivent toutes être des tâches d'activité ou décisionnelles. Lors de l'enregistrement, vous définissez une tâche par défaut pour chaque type d'activité et de processus. Amazon SWF vous permet également de créer des listes de tâches lors de l'exécution. Pour créer une liste de tâches, il vous suffit de la nommer et de commencer à l'utiliser. Ces listes s'utilisent comme suit :

  • Lors du lancement d'une tâche d'activité, un programme décideur peut l'ajouter à une liste de tâches spécifique ou demander à Amazon SWF de l'ajouter à la liste par défaut correspondant à son type d'activité.
  • Au démarrage d'une exécution, vous pouvez demander à Amazon SWF d'ajouter l'ensemble de ses tâches décisionnelles à une liste de tâches spécifique ou à la liste de tâches par défaut correspondant au type de processus.
  • Lors de la demande de tâches, les programmes décideurs et exécutants définissent la liste des tâches à partir de laquelle ils souhaitent recevoir des tâches. Si une tâche est disponible dans la liste, SWF l'envoie dans la réponse et y inclut également son ID de type.
En fonction des informations mentionnées ci-dessus, vous contrôlez la liste de tâches à laquelle une tâche est ajoutée et qui demande les tâches depuis chaque liste. Cela vous permet de vous assurer que les programmes décideurs et exécutants n'obtiennent que les tâches qu'ils comprennent.

Q : Qu'est-ce qu'AWS Flow Framework ? Comment m'aide-t-il à coordonner mon processus ?

AWS Flow Framework est un cadre de programmation vous permettant de développer rapidement et aisément des applications basées sur Amazon SWF. Il fait abstraction des détails relatifs à la coordination par tâche et à l'interaction asynchrone à l'aide de structures de programmation simples. La coordination des processus dans Amazon SWF implique le lancement d'actions à distance dont les durées peuvent varier (par ex., les tâches d'activité) et la mise en oeuvre correcte de leur interdépendance.

AWS Flow Framework facilite l'expression des deux aspects de coordination grâce à des concepts de programmation conviviaux. Par exemple, le lancement d'une tâche d'activité est aussi simple que de faire appel à une méthode. AWS Flow Framework transpose automatiquement l'appel en une décision de lancer la tâche d'activité et permet à Amazon SWF d'affecter la tâche à un programme exécutant, de la surveiller et d'en rendre compte une fois terminée. Le cadre rend les résultats de la tâche, y compris ses données de sortie, disponibles dans le code comme le sont les valeurs renvoyées depuis l'appel de méthode. Afin d'exprimer la dépendance d'une tâche, il vous suffit d'utiliser les valeurs renvoyées dans votre code comme vous le feriez pour des appels de méthode classiques. L'exécution du cadre s'interrompt automatiquement pour attendre la fin de la tâche et reprendre dès que les résultats sont disponibles. En coulisse et au cours de son exécution, le cadre reçoit les tâches des programmes exécutants et décideurs depuis Amazon SWF, fait appel aux méthodes appropriées de votre programme au moment opportun et formule les décisions à renvoyer à Amazon SWF. En proposant un accès à Amazon SWF via un cadre de programmation intuitif, AWS Flow Framework permet d'intégrer aisément une programmation asynchrone et centrée sur les évènements au développement de vos applications.

Q : Comment les programmes exécutants et décideurs communiquent-ils avec Amazon SWF ? Un protocole d'interrogation ne nécessite-t-il pas de nombreuses ressources ?

Habituellement, les protocoles d'interrogation nécessitent auprès des développeurs un travail de recherche visant à trouver la fréquence d'interrogation optimale. Si les développeurs procèdent à des interrogations trop fréquentes, il est possible que de nombreuses interrogations restent sans résultat. Ce qui mène à une situation dans laquelle la majeure partie de l'application et des ressources réseau est consacrée à l'interrogation sans résultat significatif nécessaire à la poursuite l'exécution. Si les développeurs ne procèdent pas à des interrogations suffisamment fréquentes, les messages peuvent être conservés plus longtemps, ce qui contribue à accroître les latences de l'application.

Amazon SWF propose le long-polling pour vaincre les inefficacités inhérentes à l'interrogation. Ce système permet de réduire significativement le nombre d'interrogations revenant sans tâche. Lorsque les programmes exécutants et décideurs demandent des tâches à Amazon SWF, la connexion est maintenue pendant une minute si aucune tâche n'est disponible. Si une tâche devient disponible pendant ce laps de temps, cette dernière est renvoyée en réponse à la demande d'interrogation longue durée. Cette méthode permet d'éviter qu'un plus grand nombre d'interrogations sans résultat ne soit renvoyé pendant cette durée. Grâce au long-polling, vos applications bénéficient des avantages du contrôle de la sécurité et des flux que présente l'interrogation sans sacrifier les atouts de latence et d'efficacité proposés par des services Web basés sur la distribution.

Q : Puis-je utiliser un service Web existant comme programme exécutant ?

Les programmes exécutants utilisent des demandes HTTP GET standard pour obtenir des tâches depuis Amazon SWF et en renvoyer les résultats. Pour utiliser un service Web existant comme programme exécutant, vous pouvez développer un wrapper qui obtient des tâches depuis Amazon SWF, fait appel à vos API de services Web si nécessaire et renvoie les résultats à Amazon SWF. Dans le wrapper, vous transposez les données d'entrée figurant dans une tâche en paramètres pour vos API de services Web. De la même manière, vous transposez également les données de sortie issues des API de services Web en résultats pour la tâche et les renvoyez vers Amazon SWF.

Q : Est-ce qu'Amazon SWF me contraint à l'utilisation de langages de programmation spécifiques ?

Non, vous pouvez utiliser n'importe quel langage de programmation pour développer un programme exécutant ou décideur tant que vous communiquez avec Amazon SWF à l'aide d'API de services Web. AWS SDK est actuellement disponible en Java, .NET, PHP et Ruby. Le SDK AWS pour Java inclut AWS Flow Framework.

Q : Je veux m'assurer que chaque activation de mon processus d'entreprise n'est exécutée qu'une seule fois (par exemple, une transaction, une soumission ou une affectation). Comment faire pour y parvenir ?

Lorsque vous lancez l'exécution de nouveaux processus, vous indiquez un ID pour chaque exécution. Cela vous permet d'associer une exécution à une entité d'entreprise ou une action (par ex., un ID client, un nom de fichier, un numéro de série). Amazon SWF garantit que des exécutions portant le même ID ne peuvent fonctionner simultanément. Toute tentative de lancement d'une autre exécution portant le même ID échouera. Cela permet de satisfaire aux besoins de l'entreprise dès lors qu'une action donnée, de type transaction, soumission ou affectation ne peut faire l'objet d'exécutions simultanées. Prenez par exemple un processus chargé d'inscrire un nouvel utilisateur sur un site Web. Dès que l'utilisateur clique sur le bouton de validation, l'adresse email unique de l'utilisateur peut être utilisée pour nommer l'exécution. Si l'exécution existe déjà, l'appel demandant le lancement de l'exécution échoue. Ainsi, aucun code supplémentaire n'est requis pour éviter les conflits provoqués par le fait qu'un utilisateur peut cliquer plusieurs fois sur le bouton de validation au cours de l'enregistrement.

Une fois l'exécution du processus terminée (qu'elle ait réussi ou échoué), vous pouvez exécuter un autre processus portant le même ID. Cela entraîne le lancement d'une nouvelle exécution du processus portant le même ID d'exécution mais dont l'ID de lancement est différent. L'ID de lancement est généré par Amazon SWF et permet de différencier plusieurs exécutions portant le même ID d'exécution de processus. En vous permettant de réutiliser des ID d'exécution de processus de cette manière, Amazon SWF résout le problème lié aux nouvelles tentatives. Par exemple, dans l'exemple d'inscription d'un utilisateur mentionné ci-dessus, supposons que l'exécution du processus ait échoué lors de la création d'un enregistrement de base de données pour l'utilisateur. Vous pouvez relancer l'exécution du processus avec le même ID d'exécution (adresse email de l'utilisateur) sans avoir à créer de nouvel ID pour cette nouvelle tentative d'inscription.

Q : Comment Amazon SWF m'aide à faire évoluer mes applications ?

Amazon SWF vous permet de faire évoluer vos applications en vous accordant le contrôle complet sur le nombre de programmes exécutants lancés pour chaque type d'activité et d'instances exécutées par programme décideur. Par l'augmentation du nombre de programmes exécutants ou d'instances décisionnelles, vous accroissez les ressources de calcul allouées pour les étapes de traitement correspondantes et ainsi le débit relatif à celles-ci. Pour procéder à une mise à l'échelle automatique, vous pouvez utiliser les données d'exécution fournies par Amazon SWF via ses API. Par exemple, Amazon SWF indique le nombre de tâches d'une liste de tâches. Étant donné que l'accroissement de ce nombre suppose que les programmes exécutants ne suivent plus la charge, vous pouvez en ajouter automatiquement de nouveaux chaque fois que le journal des tâches en souffrance dépasse un seuil.

Q : J'exécute un grand nombre d'applications critiques. Comment puis-je les surveiller et les faire évoluer ?

En plus de Management Console, Amazon SWF propose un ensemble complet d'API de visibilité. Ces dernières peuvent être utilisées pour obtenir des informations permettant de surveiller l'ensemble des exécutions et de les faire évoluer en fonction de la charge. Vous pouvez obtenir des données détaillées sur chaque type d'exécution, comme le nombre d'ouvertures et de fermetures d'exécutions au cours d'une plage définie. Les API de visibilité vous permettent également de créer vos propres applications de surveillance.

Q : Un grand nombre d'exécutions fonctionnent simultanément, mais quelques-unes d'entre elles échouent ou bloquent souvent. Comment puis-je détecter et résoudre ces problèmes d'exécution ?

Amazon SWF permet de rechercher des exécutions grâce à sa console de gestion et ses API de visibilité. Vous pouvez effectuer des recherches selon divers critères comme les intervalles de durée pendant lesquels des exécutions sont lancées ou se sont terminées, l'état actuel (ouverte ou fermée, par exemple) et les modes d'échec standard (expiration ou arrêt). Afin de regrouper des exécutions de processus, vous pouvez utiliser jusqu'à 5 balises permettant d'associer du texte personnalisé à des exécutions lors de leur lancement. Vous avez la possibilité d'utiliser des balises pour rechercher des exécutions de processus dans AWS Management Console.

Afin de rechercher les exécutions susceptibles d'être bloquées, vous pouvez affiner votre recherche au moyen d'un critère de durée pour trouver les exécutions dont la durée est plus longue que prévu. Vous pouvez ainsi en inspecter les détails par tâche et déterminer si certaines tâches ont duré trop longtemps ou ont échoué ou si le programme décideur n'a tout simplement pas lancé de tâche. Cela vous permet d'identifier le problème au niveau de la tâche.

Q : Je dispose d'un type d'activité pouvant être utilisé dans plusieurs applications. Puis-je le partager avec ces applications ?

Oui. Il est possible de partager un type d'activité donné dans plusieurs applications, à condition que les applications et l'activité soient toutes enregistrées dans le même domaine. Pour ce faire, différents programmes décideurs peuvent lancer des tâches pour le type d'activité et l'ajouter à la liste des tâches que les programmes exécutants interrogent pour cette activité. Les programmes exécutants de ce type d'activité obtiennent ainsi les tâches d'activité issues de toutes les applications. Si vous souhaitez indiquer de quelle application provient une tâche d'activité ou si vous voulez déployer divers ensembles de programmes exécutants selon les applications, vous pouvez utiliser plusieurs listes de tâches. Consultez Comment puis-je m'assurer qu'un programme exécutant ou décideur n'obtient que les tâches qu'il comprend ?

Sécurité et fiabilité

Q : Puis-je utiliser AWS Identity and Access Management (IAM) pour gérer l'accès à Amazon SWF ?

Amazon SWF prend en charge les utilisateurs IAM dans un compte AWS et vous permet d'indiquer si un utilisateur IAM est autorisé à accéder aux ressources Amazon SWF au sein de ce compte. Si vous autorisez l'accès d'un utilisateur IAM à Amazon SWF, ce dernier pourra accéder à l'ensemble des ressources Amazon SWF au sein du compte AWS, y compris à celles créées par d'autres utilisateurs IAM. L'utilisation de la prise en charge d'Amazon SWF pour IAM vous permet de mieux contrôler le partage de vos informations de connexion de compte AWS et de sélectionner les utilisateurs IAM pouvant accéder à Amazon SWF.

Q : Puis-je faire fonctionner mes programmes exécutants derrière un pare-feu ?

Oui. Les programmes exécutants utilisent des demandes HTTP GET standard pour obtenir des tâches auprès d'Amazon SWF et renvoyer les résultats calculés. Puisqu'ils envoient toujours des demandes à Amazon SWF, vous n'avez pas à configurer votre pare-feu pour autoriser les demandes entrantes.

Q : Le fait d'exposer ma logique applicative comme les programmes exécutants et décideurs ne présente-t-il pas un risque de sécurité ?

Les programmes exécutants utilisent des demandes HTTP GET standard pour obtenir des tâches auprès d'Amazon SWF et renvoyer les résultats calculés. Par conséquent, vous n'avez pas à exposer de point de terminaison pour vos programmes exécutants. De plus, Amazon SWF n'attribue de tâches aux programmes exécutants qu'une fois celles-ci lancées par le programme décideur. Dès lors que vous développez le programme décideur, vous contrôlez complètement quand et comment les tâches sont lancées, y compris les données d'entrée qui les accompagnent lors de leur transmission aux programmes exécutants.

Q : Comment Amazon SWF m'aide à coordonner des tâches en toute fiabilité dans mon application ?

Amazon SWF offre des garanties utiles en terme d'affectation de tâches. Il permet de s'assurer qu'une tâche n'est affectée qu'une seule fois et qu'elle n'est jamais dupliquée. Ainsi, même si vous disposez de plusieurs programmes exécutants pour un type d'activité en particulier (ou un certain nombre d'instances de programmes décideurs), Amazon SWF n'affecte une tâche spécifique qu'à un seul programme exécutant(ou à une instance de programme décideur). De plus, Amazon SWF ne conserve qu'une seule tâche décisionnelle en souffrance à la fois par exécution de processus. Par conséquent, vous pouvez exécuter plusieurs instances de programmes décideurs sans avoir à vous soucier du nombre d'instances fonctionnant simultanément sur la même exécution. Ces fonctionnalités vous permettent de coordonner votre processus sans avoir à vous occuper de la duplication, de la perte ou des conflits de tâches.

Restrictions

Q : Combien de types de processus, de types d'activités et de domaines puis-je enregistrer avec Amazon SWF ?

Chaque domaine peut comporter jusqu'à 10 000 types d'activité (au total) enregistrés ou non autorisés. Votre compte AWs peut comporter 100 domaines Amazon SWF au maximum (y compris les domaines enregistrés et non autorisés). Si vous pensez dépasser les limites ci-dessus, veuillez utiliser ce formulaire pour contacter l'équipe Amazon SWF afin de discuter avec eux de votre scénario et de demander des seuils plus élevés.

Q : Le nombre d'exécutions de processus qu'il m'est possible de lancer simultanément est-il limité ?

À tout moment, vous ne pouvez disposer que d'un nombre maximum de 10 000 exécutions ouvertes dans un domaine. Il n'existe aucune autre limite relative au nombre d'exécutions que vous lancez ou conservées par Amazon SWF. Si vous pensez dépasser les limites ci-dessus, veuillez utiliser ce formulaire pour contacter l'équipe Amazon SWF afin de discuter avec eux de votre scénario et de demander des seuils plus élevés.

Q : Combien de temps peut durer l'exécution des processus ?

Chaque exécution de processus peut durer jusqu'à 1 an. Chaque historique d'exécution de processus peut contenir jusqu'à 25 000 évènements. Si votre cas nécessite le dépassement de ces seuils, vous pouvez utiliser les fonctions proposées par Amazon SWF pour poursuivre les exécutions et structurer vos applications au moyen d'exécutions de processus enfants.

Q : Que se passe-t-il si l'exécution de mon processus est inactive depuis longtemps ?

Amazon SWF n'entreprend aucune action spécifique en cas d'inactivité prolongée d'une exécution de processus. Les exécutions inactives sont soumises aux délais d'expiration que vous configurez. Par exemple, si vous avez défini la durée maximale d'une exécution de sorte qu'elle ne dépasse pas 1 journée, une inactivité supérieure à cette limite entraînera son expiration. L'inactivité est également soumise à la limite d'Amazon SWF concernant la durée d'exécution (1 an).

Q :Combien de temps peut prendre un programme exécutant pour traiter une tâche ?

Amazon SWF n'impose pas de limite spécifique relative au temps que peut prendre un programme exécutant pour traiter une tâche. Il applique le délai d'expiration défini relatif à la durée maximale de la tâche d'activité. Il est à noter que depuis qu'Amazon SWF limite la durée d'une exécution à 1 an maximum, le traitement d'une tâche par un programme exécutant ne peut pas dépasser ce seuil.

Q : Combien de temps Amazon SWF peut conserver une tâche avant qu'un programme exécutant ne la demande ?

Amazon SWF n'impose pas de limite spécifique relative à la durée de conservation d'une tâche avant qu'un programme exécutant n'en fasse la demande. Toutefois, lors de l'enregistrement du type d'activité, vous pouvez définir un délai d'expiration par défaut indiquant la durée pendant laquelle Amazon SWF peut conserver les tâches d'activité de ce type. Il vous est également possible de définir ce délai d'expiration ou de passer outre le délai par défaut par le biais du code de votre programme décideur lorsque vous programmez une tâche d'activité. Étant donné qu'Amazon SWF limite la durée d'exécution d'un processus à un 1 an maximum, la tâche n'est pas conservée plus longtemps si aucun délai d'expiration n'est spécifié.

Q : Puis-je programmer plusieurs tâches par décision ?

Oui, vous pouvez programmer jusqu'à 100 tâches d'activité par décision et également envoyer plusieurs décisions les unes après les autres.

Q : Combien de tâches, de signaux et de marqueurs propres à un programme exécutant peuvent contenir l'exécution d'un processus et les exécutions en général ?

Il n'existe aucune limite relative au nombre total de tâches d'activité, de signaux et de minuteurs utilisés lors de l'exécution d'un processus. Cependant, à l'heure actuelle une exécution de processus ne peut comporter qu'un nombre maximum de 1 000 tâches d'activité ouvertes. Cela comprend les tâches d'activité lancées et celles en cours de traitement par des programmes exécutants. De même, une exécution de processus peut comporter jusqu'à 1 000 minuteurs ouverts et 1 000 exécutions enfant ouvertes.

Q : Quelle quantité de données puis-je transférer lors de l'exécution d'un processus ?

Il n'existe aucune limite relative à la quantité totale de données transférées lors de l'exécution d'un processus. Toutefois, les API d'Amazon SWF imposent des limites spécifiques pour les paramètres utilisés pour transférer des données au sein d'une exécution. Par exemple, les données d'entrée transférées vers une tâche d'activité et celles envoyées avec un signal ne peuvent pas comporter plus de 32 000 caractères.

Q : Amazon SWF conserve-t-il les exécutions réalisées ? Si oui, combien de temps ?

Amazon SWF conserve l'historique d'une exécution terminée pour le nombre de jours défini sans dépasser 90 jours (par ex. environ 3 mois). Lors de cette période de conservation, vous pouvez accéder à l'historique et rechercher l'exécution à l'aide d'un programme ou via la console.

Q : Quand les appels d'API sont-ils restreints ?

Au-delà de rares pics, il se peut que vous subissiez des restrictions si vous effectuez un très grand nombre d'appels d'API dans un laps de temps très court. Si vous estimez subir souvent des restrictions ou si votre application connaît des pics fréquents, veuillez utiliser ce formulaire pour contacter l'équipe Amazon SWF afin de discuter de votre scénario d'utilisation et de demander une modification des paramètres de restriction de votre compte.

Accès et disponibilité

Q : Dans quelle région Amazon SWF est-il disponible ?

Amazon SWF est actuellement disponible dans la Région USA Est. Nous espérons pouvoir rendre ce service disponible prochainement dans d'autres régions.

Q : Amazon SWF est-il accessible dans les zones de disponibilité ?

Oui, Amazon SWF gère votre historique des exécutions de processus et les autres informations relatives à votre processus dans 3 zones de disponibilité de sorte que vos applications puissent toujours compter sur Amazon SWF même en cas d'échec dans une de ces zones.

Q : Quel est le point d'accès au service Amazon SWF ?

Le point d'accès à Amazon SWF pour la région USA Est (Virginie du Nord) est http://swf.us-east-1.amazonaws.com/.

Tarification

Q : Que puis-je faire avec le niveau d'utilisation gratuit Amazon SWF ?

Avec le niveau d'utilisation gratuit Amazon SWF, les nouveaux clients et ceux déjà existants peuvent effectuer gratuitement les opérations suivantes chaque mois :

  • Lancer 1 000 exécutions de processus
  • Utiliser 10 000 tâches, minuteurs, signaux et marqueurs (au total) au sein de leurs exécutions.
  • Utiliser 30 000 journées de processus. Une journée de processus correspond à une période de fonctionnement ou de conservation de 24 heures pour n'importe quelle exécution.
De nombreuses applications sont en mesure de fonctionner entièrement dans les limites du niveau d'utilisation gratuit mentionnées ci-dessus. Par contre, les frais de transfert de données sont appliqués. Le niveau d'utilisation gratuit est une offre mensuelle dont l'usage ne se cumule pas au fil des mois.

Q : Combien coûte Amazon SWF ?

Avec Amazon SWF, vous ne payez que ce que vous utilisez et il n'y a pas de frais minimum. Les frais sont calculés comme suit :

  • 0,0001 $ pour le lancement d'une exécution de processus, soit 1 $ pour 10 000 exécutions
  • Si une exécution reste ouverte au-delà de 24 heures, 0,000005 $ par jour supplémentaire ou une partie de cette somme jusqu'au terme de l'exécution
  • 0,000025 $ pour la programmation d'une tâche, le lancement d'un minuteur, l'envoi d'un signal ou l'enregistrement d'un marqueur, soit 0,25 $ pour 10 000 actions de ce type
  • 0,000005 $ par jour de conservation d'une exécution terminée dans Amazon SWF. La période de conservation est définie par l'utilisateur et peut aller jusqu'à 90 jours.
Vous payez également des frais pour l'échange de données entre Amazon SWF et vos composants d'application (programmes exécutants et décideurs) en fonction de l'endroit où vous les exécutez. Les données transférées entre Amazon SWF et Amazon EC2 dans la même région sont gratuites. Les données transférées entre Amazon SWF et Amazon EC2 dans différentes régions seront facturées aux tarifs de transfert de données Internet des deux côtés du transfert.

Q : Comment l'utilisation d'Amazon SWF me sera-t-elle facturée ?

Il n'y a pas de frais d'installation pour commencer à utiliser le service. Toute utilisation est calculée quotidiennement et facturée chaque mois. À la fin du mois, votre carte de crédit sera automatiquement débitée pour l'utilisation de ce mois. Votre réduction relative au niveau d'utilisation gratuit s'applique automatiquement. Vous pouvez voir vos frais pour la période de facturation actuelle à tout moment sur le site d'Amazon Web Services en vous connectant à votre compte « Amazon Web Services » et en cliquant sur « Activité de compte » sous « Votre compte de services Web ».

©2013, Amazon Web Services, Inc. or its affiliates. Tous droits réservés.