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
Rubriques
Dans les sections précédentes, vous avez déployé et testé l' Tic-Tac-Toeapplication localement sur votre ordinateur à l'aide de DynamoDB local. Maintenant, vous déployez l'application en production comme suit :
-
Déployez l'application à AWS Elastic Beanstalk l'aide d'un easy-to-use service de déploiement et de dimensionnement d'applications et de services Web. Pour plus d'informations, consultez la section Déploiement d'une application Flask vers AWS Elastic Beanstalk.
Elastic Beanstalk lance une ou plusieurs instances Amazon Elastic Compute Cloud (EC2Amazon), 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, telles que la Games
table dans DynamoDB, sont privées par défaut. Seul le propriétaire de la ressource, c'est-à-dire le AWS compte qui a créé la Games
table, peut accéder à cette table. Ainsi, par défaut, votre Tic-Tac-Toe application ne peut pas mettre à jour le Games
tableau.
Pour accorder les autorisations nécessaires, vous créez un rôle AWS Identity and Access Management (IAM) et accordez à ce rôle les autorisations d'accès à la Games
table. Votre EC2 instance Amazon assume d'abord ce rôle. En réponse, AWS renvoie des informations de sécurité temporaires que l'EC2instance Amazon peut utiliser pour mettre à jour le Games
tableau au nom de l' Tic-Tac-Toeapplication. Lorsque vous configurez votre application Elastic Beanstalk, vous spécifiez IAM le rôle que l'instance ou les instances EC2 Amazon peuvent assumer. Pour plus d'informations sur IAM les rôles, consultez la section sur les IAM rôles pour Amazon EC2 dans le guide de EC2 l'utilisateur Amazon.
Note
Avant de créer des EC2 instances Amazon pour l' Tic-Tac-Toeapplication, 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-Toeapplication utilise les informations contenues dans ce fichier pour créer la Games
table et envoyer les demandes suivantes dans une AWS
région spécifique. La table Games
DynamoDB et les instances EC2 Amazon 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é, vous devez effectuer les opérations suivantes pour déployer l' Tic-Tac-Toeapplication en production :
-
Créez un IAM rôle à l'aide du IAM service. Vous attachez à ce rôle une politique accordant à des actions DynamoDB des autorisations pour accéder à la table
Games
. -
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 transmettre le code de l' Tic-Tac-Toeapplication à Elastic Beanstalk afin qu'il puisse l'installer 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-Toeapplication utilise ces informations pour déterminer à quelle région DynamoDB communiquer. -
Configurez l'environnement Elastic Beanstalk. Elastic Beanstalk lance EC2 une ou plusieurs instances Amazon Tic-Tac-Toe et y déploie votre bundle 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
. -
Créez la table DynamoDB À l'aide du service Amazon DynamoDB, vous créez
Games
la table AWS sur votre ordinateur plutôt que localement. N'oubliez pas que cette table a une clé primaire simple constituée de la clé de partitionGameId
de type chaîne. -
Testez le jeu en production.
3.1 : Création d'un IAM rôle pour Amazon EC2
La création d'un IAM rôle de EC2 type Amazon permet à l'EC2instance Amazon qui exécute votre Tic-Tac-Toe application d'assumer le rôle approprié et de demander à l'application d'accéder à la Games
table. Lorsque vous créez le rôle, sélectionnez l'option Politique personalisée puis copiez et collez la politique suivante.
{ "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, voir Création d'un rôle pour un AWS service (AWS Management Console) dans le guide de IAM l'utilisateur.
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 : Regroupez et déployez le code de tic-tac-toe l'application
Si vous avez suivi les étapes de cet exemple, l' Tic-Tac-Toeapplication est déjà téléchargée. 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, consultez É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é.
-
Accédez au dossier dans lequel vous avez téléchargé l' Tic-Tac-Toeapplication.
-
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-Toeapplication 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-Toeexemple 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 indiqué ci-dessous.
[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. -
Zippez le contenu du dossier racine de l'application (qui inclut le fichier
beanstalk.config
), par exemple,TicTacToe.zip
. -
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 : configuration de l'environnement AWS Elastic Beanstalk
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 EC2 instance Amazon pour déployer et exécuter votre Tic-Tac-Toe application.
-
Entrez la personnalisation suivante URL pour configurer une console Elastic Beanstalk afin de 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.microPour plus d'informations sur la personnalisationURLs, consultez la section Constructing a Launch Now URL dans le manuel du AWS Elastic Beanstalk développeur. Pour leURL, notez ce qui suit :
-
Vous devez fournir un nom de AWS région (identique à celui que vous avez fourni dans le fichier de configuration), un nom de compartiment Amazon S3 et le nom de l'objet.
-
Pour les tests, URL ils demandent le type d'SingleInstanceenvironnement et
t1.micro
le type d'instance. -
Le nom de l'application doit être unique. Ainsi, dans ce qui précèdeURL, nous vous suggérons 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.
-
-
Sur la console Elastic Beanstalk, choisissez Vérifier et lancer, puis Lancer.
-
Notez le URL pour référence future. Cela URL ouvre la page Tic-Tac-Toe d'accueil de votre application.
-
Configurez l' Tic-Tac-Toeapplication afin qu'elle connaisse l'emplacement du fichier de configuration.
Une fois qu'Elastic Beanstalk a créé l'application, choisissez Configuration.
-
Choisissez l'icône de roue dentée à côté de Software Configuration (Configuration logicielle), comme illustré dans la capture d'écran suivante.
-
À la fin de la section Propriétés de l'environnement, entrez
CONFIG_FILE
et sa valeurbeanstalk.config
, puis choisissez Enregistrer.Cette mise à jour de l'environnement peut prendre quelques minutes.
Une fois la mise à jour terminée, vous pouvez jouer au jeu.
-
-
Dans le navigateur, entrez le URL que vous avez copié à l'étape précédente, comme indiqué dans l'exemple suivant.
http://
<pen-name>
.elasticbeanstalk.comCela ouvre la page d'accueil de l'application.
-
Connectez-vous en tant que testuser1 et choisissez CREATEde démarrer une nouvelle tic-tac-toe partie.
-
Entrez
testuser2
dans la zone Choose an Opponent (Choisir un adversaire). -
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.
-
Entrez la même valeur URL pour ouvrir la page d'accueil de l'application, comme indiqué dans l'exemple suivant.
http://
<env-name>
.elasticbeanstalk.com -
Connectez-vous en tant que testuser2.
-
Pour l'invitation de testuser1 dans la liste des invitations en suspens, choisissez accept.
-
À présent, la page de jeu apparaît.
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
.