Ce document détaille le déploiement de la simulation classique du jeu de vie en tant qu'application Web à l'aide de Django et AWS ECS. Ramovions les instructions de clarté.
Table des matières
Introduction
Ce projet met en œuvre le jeu de vie de John Conway en tant qu'application Web de Django, déployé sur AWS ECS pour l'évolutivité et la fiabilité. Cela montre comment l'orchestration des conteneurs peut moderniser les simulations classiques.
Prérequis
git clone https://github.com/UkemeSkywalker/game_of_life
Configuration du projet
Après le clonage, accédez au répertoire du projet (cd game_of_life
).
Structure du projet: La structure du projet est la suivante:
<code>game-of-life/ ├── Dockerfile ├── buildspec.yml ├── requirements.txt ├── manage.py ├── game_of_life/ (Django app) └── ecs/ (ECS deployment files)</code>
AWS Infrastructure Deployment
1. Création du référentiel ECR: Créez un référentiel ECR nommé game-of-life
avec la numérisation d'image activée:
<code class="language-bash">aws ecr create-repository --repository-name game-of-life --image-scanning-configuration scanOnPush=true</code>
2. Variable d'environnement Exportation: Exporter les variables d'environnement nécessaires:
<code class="language-bash">export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) export AWS_REGION=us-east-1 export ECR_REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/game-of-life</code>
Testez la connexion ECR:
<code class="language-bash">aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com</code>
3. IAM Configuration des rôles: Créer un rôle IAM nommé ecsTaskExecutionRole
avec le AmazonECSTaskExecutionRolePolicy
attaché.
4. Création de cluster ECS: Créez un cluster ECS nommé game-of-life
en utilisant fargate:
<code>game-of-life/ ├── Dockerfile ├── buildspec.yml ├── requirements.txt ├── manage.py ├── game_of_life/ (Django app) └── ecs/ (ECS deployment files)</code>
Docker Image Build and Push
5. Construisez l'image docker: Créez l'image docker:
<code class="language-bash">aws ecr create-repository --repository-name game-of-life --image-scanning-configuration scanOnPush=true</code>
6. Tag et poussez l'image: Tag et poussez l'image vers ECR:
<code class="language-bash">export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) export AWS_REGION=us-east-1 export ECR_REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/game-of-life</code>
Création de définition de la tâche
7. Mettez à jour le fichier de définition des tâches: naviguer vers ecs/
et mettre à jour task-definition.json
avec les variables d'environnement exportées en utilisant sed
.
8. Enregistrez la définition de la tâche: Enregistrez la définition de la tâche:
<code class="language-bash">aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com</code>
Déploiement du service de jeu
9. Détails du service et équilibrage de charge: Dans la console AWS ECS, créez un nouveau service nommé game-of-life-svc
, en sélectionnant la définition de la tâche nouvellement enregistrée et en activant l'équilibrage de charge avec un équilibreur de chargement d'application.
Accès au jeu déployé
10. Accès au point de terminaison de l'équilibreur de charge: Une fois déployé, obtenez le nom DNS de l'équilibreur de charge à partir des détails du service et accédez à l'application dans votre navigateur.
Conclusion
Ce déploiement démontre avec succès la modernisation d'une application classique à l'aide de la conteneurisation et de l'infrastructure cloud. L'utilisation de Django et AWS ECS fournit une plate-forme évolutive et fiable pour le jeu de la vie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!