View a markdown version of this page

Étape 3 : déploiement en production à l’aide du service DynamoDB - Amazon DynamoDB

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.

Étape 3 : déploiement en production à l’aide du service DynamoDB

Dans les sections précédentes, vous avez déployé et testé l' Tic-Tac-Toe application localement sur votre ordinateur à l'aide de DynamoDB local. Maintenant, vous déployez l’application en production comme suit :

  • Déployez l'application à l'aide AWS Elastic Beanstalk d'un service facile à utiliser pour déployer et faire évoluer des applications et des services Web. Pour plus d'informations, consultez Déploiement d'une application Flask sur AWS Elastic Beanstalk.

    Elastic Beanstalk lance une ou plusieurs instances Amazon Elastic Compute Cloud (Amazon EC2), que vous configurez via Elastic Beanstalk, sur lesquelles votre application sera exécutée. Tic-Tac-Toe

  • À l’aide du service Amazon DynamoDB, créez une table Games qui résidera sur AWS plutôt que localement sur votre ordinateur.

En outre, vous devez également configurer des autorisations. Toutes AWS les ressources que vous créez, comme la Games table dans DynamoDB, sont privées par défaut. Seul le propriétaire des ressources, à savoir le compte AWS qui a créé la table Games, peut accéder à cette table. Par défaut, votre Tic-Tac-Toe application ne peut donc pas mettre à jour le Games tableau.

Pour accorder les autorisations nécessaires, créez un rôle Gestion des identités et des accès AWS (IAM) et accordez à ce rôle les autorisations nécessaires pour accéder au Games tableau. Votre instance Amazon EC2 endosse tout d’abord ce rôle. En réponse, AWS renvoie des informations d'identification de sécurité temporaires que l'instance Amazon EC2 peut utiliser pour mettre à jour la Games table pour le compte de l' Tic-Tac-Toe application. Lorsque vous configurez votre application Elastic Beanstalk, vous spécifiez le rôle IAM que la ou les instances Amazon EC2 peuvent endosser. Pour plus d’informations sur les rôles IAM, consultez IAM roles for Amazon EC2 dans le Guide de l’utilisateur Amazon EC2.

Note

Avant de créer des instances Amazon EC2 pour l' Tic-Tac-Toe application, vous devez d'abord choisir la AWS région dans laquelle vous souhaitez qu'Elastic Beanstalk crée les instances. Une fois que vous avez créé l’application Elastic Beanstalk, vous fournissez les mêmes point de terminaison et nom de région dans un fichier de configuration. L' Tic-Tac-Toe application utilise les informations de ce fichier pour créer la Games table et envoyer les demandes suivantes dans une AWS région spécifique. La table DynamoDB Games et les instances Amazon EC2 lancées par Elastic Beanstalk doivent se trouver dans la même région. Pour obtenir la liste des régions disponibles, veuillez consulter Amazon DynamoDB dans le Référence générale d'Amazon Web Services.

En résumé, procédez comme suit pour déployer l' Tic-Tac-Toe application en production :

  1. Créez un rôle IAM à l’aide du service IAM. Vous attachez à ce rôle une politique accordant à des actions DynamoDB des autorisations pour accéder à la table Games.

  2. Regroupez le code de Tic-Tac-Toe l'application et un fichier de configuration, puis créez un .zip fichier. Vous utilisez ce .zip fichier pour donner le code de l' Tic-Tac-Toe application à Elastic Beanstalk afin qu'il le mette sur vos serveurs. Pour plus d’informations sur la création d’une solution groupée, consultez Création d’une solution groupée d’application dans le Guide du développeur AWS Elastic Beanstalk .

    Dans le fichier de configuration (beanstalk.config), vous fournissez des informations de point de terminaison et de région AWS . L' Tic-Tac-Toe application utilise ces informations pour déterminer la région DynamoDB à laquelle parler.

  3. Configurez l’environnement Elastic Beanstalk. Elastic Beanstalk lance une ou plusieurs instances Amazon EC2 et y déploie votre Tic-Tac-Toe ensemble d'applications. Une fois que l’environnement Elastic Beanstalk est prêt, vous fournissez le nom du fichier de configuration en ajoutant la variable d’environnement CONFIG_FILE.

  4. Créez la table DynamoDB À l'aide du service Amazon DynamoDB, vous créez la Games table sur AWS votre ordinateur plutôt que localement. N’oubliez pas que cette table a une clé primaire simple constituée de la clé de partition GameId de type chaîne.

  5. Testez le jeu en production.

3.1 : création d’un rôle IAM pour Amazon EC2

La création d'un rôle IAM de type Amazon EC2 permet à l'instance Amazon EC2 qui exécute votre Tic-Tac-Toe application d'assumer le rôle approprié et de faire des demandes d'accès à la table. Games Lorsque vous créez le rôle, sélectionnez l’option Politique personalisée puis copiez et collez la politique suivante.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "dynamodb:ListTables" ], "Effect":"Allow", "Resource":"*" }, { "Action":[ "dynamodb:*" ], "Effect":"Allow", "Resource":[ "arn:aws:dynamodb:us-west-2:922852403271:table/Games", "arn:aws:dynamodb:us-west-2:922852403271:table/Games/index/*" ] } ] }

Pour plus d’instructions, consultez Création d’un rôle pour un service AWS (Console de gestion AWS) dans le Guide de l’utilisateur IAM.

3.2 : création de la table Games dans Amazon DynamoDB

La table Games dans DynamoDB stocke les données des parties. Si la table n’existe pas, l’application la crée pour vous. Dans ce cas, laissez l’application créer la table Games.

3.3 : regroupement et déploiement du code d’application de morpion

Si vous avez suivi les étapes de cet exemple, vous avez déjà téléchargé l' Tic-Tac-Toe application. Dans le cas contraire, téléchargez l’application et extrayez tous les fichiers dans un dossier sur votre ordinateur local. Pour obtenir des instructions, veuillez consulter Étape 1 : déploiement et test localement.

Une fois tous les fichiers extraits, vous disposez d’un dossier code. Pour remettre ce dossier à Elastic Beanstalk, vous regroupez le contenu de ce dossier en tant que fichier .zip. Tout d’abord, vous ajoutez un fichier de configuration dans ce dossier. Votre application utilise les informations de région et de point de terminaison pour créer une table DynamoDB dans la région spécifiée, et effectuer les demandes d’opération de table subséquentes à l’aide du point de terminaison spécifié.

  1. Accédez au dossier dans lequel vous avez téléchargé l' Tic-Tac-Toeapplication.

  2. Dans le dossier racine de l’application, créez un fichier texte nommé beanstalk.config avec le contenu suivant.

    [dynamodb] region=<AWS region> endpoint=<DynamoDB endpoint>

    Par exemple, vous pouvez utiliser le contenu suivant.

    [dynamodb] region=us-west-2 endpoint=dynamodb.us-west-2.amazonaws.com

    Pour obtenir la liste des régions disponibles, consultez Amazon DynamoDB dans la Référence générale d’Amazon Web Services.

    Important

    La région spécifiée dans le fichier de configuration est l'emplacement où l' Tic-Tac-Toe application crée la Games table dans DynamoDB. Vous devez créer l’application Elastic Beanstalk abordée dans la section suivante dans la même région.

    Note

    Lorsque vous créez votre application Elastic Beanstalk, vous demandez à lancer un environnement dans lequel vous pouvez choisir le type d’environnement. Pour tester l' Tic-Tac-Toe exemple d'application, vous pouvez choisir le type d'environnement à instance unique, ignorer les étapes suivantes et passer à l'étape suivante.

    Toutefois, le type d’environnement Équilibrage de charge, Auto Scaling fournit un environnement hautement disponible et dimensionnable, élément que vous devriez prendre en compte lorsque vous créez et déployez d’autres applications. Si vous choisissez ce type d’environnement, vous devez également générer un UUID et l’ajouter au fichier de configuration, comme illustré ci-après.

    [dynamodb] region=us-west-2 endpoint=dynamodb.us-west-2.amazonaws.com [flask] secret_key= 284e784d-1a25-4a19-92bf-8eeb7a9example

    Dans la communication client-serveur lorsque le serveur envoie une réponse, par souci de sécurité le serveur envoie un cookie signé que le client renvoie au serveur dans la demande suivante. Lorsqu’il y a un seul serveur, le serveur peut générer localement une clé de chiffrement lorsqu’il démarre. Lorsqu’il existe de nombreux serveurs, ils ont tous besoin de connaître la même clé de chiffrement. Dans le cas contraire, ils ne pourront lire les cookies définis par les serveurs pairs. En ajoutant secret_key dans le fichier de configuration, vous indiquez à tous les serveurs d’utiliser cette clé de chiffrement.

  3. Zippez le contenu du dossier racine de l’application (qui inclut le fichier beanstalk.config), par exemple, TicTacToe.zip.

  4. Chargez le fichier .zip dans un compartiment Amazon Simple Storage Service (Amazon S3). Dans la section suivante, vous allez fournir ce fichier .zip à Elastic Beanstalk pour qu’il le charge sur le ou les serveurs.

    Pour des instructions sur la manière de charger un fichier dans un compartiment Amazon S3, consultez Créer un compartiment et Ajouter un objet à un compartiment dans le Guide de l’utilisateur d’Amazon Simple Storage Service.

3.4 : Configurez le AWS Elastic Beanstalk environment

Dans cette étape, vous allez créer une application Elastic Beanstalk, qui est un ensemble de composants incluant des environnements. Dans cet exemple, vous lancez une instance Amazon EC2 pour déployer et exécuter votre Tic-Tac-Toe application.

  1. Entrez l’URL personnalisée suivante afin de configurer une console Elastic Beanstalk pour configurer l’environnement.

    https://console.aws.amazon.com/elasticbeanstalk/?region=<AWS-Region>#/newApplication ?applicationName=TicTacToeyour-name &solutionStackName=Python &sourceBundleUrl=https://s3.amazonaws.com/<bucket-name>/TicTacToe.zip &environmentType=SingleInstance &instanceType=t1.micro

    Pour plus d’informations sur les URL personnalisées, consultez Construction d’une URL Launch Now dans le Guide du développeur AWS Elastic Beanstalk . Pour l’URL, notez les points suivants :

    • Vous devez fournir un nom de AWS région (identique à celui que vous avez indiqué dans le fichier de configuration), un nom de compartiment Amazon S3 et le nom de l'objet.

    • À des fins de test, l'URL demande le type d'SingleInstanceenvironnement et t1.micro le type d'instance.

    • Le nom de l’application doit être unique. Ainsi, dans l’URL précédente, nous vous proposons d’ajouter votre nom au applicationName.

    Cela a pour effet d’ouvrir la console Elastic Beanstalk. Dans certains cas, vous devrez peut-être vous connecter.

  2. Sur la console Elastic Beanstalk, choisissez Vérifier et lancer, puis Lancer.

  3. Notez l’URL ultérieurement. Cette URL ouvre la page Tic-Tac-Toe d'accueil de votre application.

    Capture d’écran de la page d’accueil de l’application, illustrant le message indiquant que l’environnement est en cours de création.
  4. Configurez l' Tic-Tac-Toe application pour qu'elle connaisse l'emplacement du fichier de configuration.

    Une fois qu’Elastic Beanstalk a créé l’application, choisissez Configuration.

    1. Choisissez l’icône de roue dentée à côté de Software Configuration (Configuration logicielle), comme illustré dans la capture d’écran suivante.

      Tic-tac-toe capture d'écran de l'application montrant l'icône représentant un engrenage à côté de la configuration logicielle.
    2. À la fin de la section Propriétés de l’environnement, entrez CONFIG_FILE et sa valeur beanstalk.config, puis choisissez Enregistrer.

      Cette mise à jour de l’environnement peut prendre quelques minutes.

      Capture d’écran de l’application montrant la section des propriétés de l’environnement.

    Une fois la mise à jour terminée, vous pouvez jouer au jeu.

  5. Dans le navigateur, entrez l’URL que vous avez copiée à l’étape précédente, comme illustré dans l’exemple suivant.

    http://<pen-name>.elasticbeanstalk.com

    Cela ouvre la page d’accueil de l’application.

    Capture d’écran de la page d’accueil de l’application montrant le bouton Create (Créer), les invitations, les parties en cours et l’historique récent.
  6. Connectez-vous en tant que testuser1, puis sélectionnez CREATE pour commencer une nouvelle partie de morpion.

  7. Entrez testuser2 dans la zone Choose an Opponent (Choisir un adversaire).

    Capture d’écran de l’application montrant la zone de choix d’un adversaire.
  8. Ouvrez une autre fenêtre de navigateur.

    Assurez-vous de désactiver tous les cookies dans votre fenêtre de navigateur afin de ne pas être connecté en tant que même utilisateur.

  9. Entrez la même URL pour ouvrir la page d’accueil de l’application, comme illustré dans l’exemple suivant.

    http://<env-name>.elasticbeanstalk.com
  10. Connectez-vous en tant que testuser2.

  11. Pour l’invitation de testuser1 dans la liste des invitations en suspens, choisissez accept.

    Capture d’écran de l’application montrant l’invitation testuser1 dans la liste des invitations.
  12. À présent, la page de jeu apparaît.

    Capture d’écran de l’application montrant une grille de morpion vide.

    testuser1 et testuser2 peuvent jouer au jeu. Pour chaque déplacement, l’application enregistre le déplacement dans l’élément correspondant de la table Games.