Maison >développement back-end >Tutoriel Python >Game of Life de Django rencontre AWS ECS - le hack de déploiement ultime!

Game of Life de Django rencontre AWS ECS - le hack de déploiement ultime!

Susan Sarandon
Susan Sarandonoriginal
2025-01-30 08:13:08687parcourir

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
  • Prérequis
  • Configuration du projet
    • Structure du projet
  • AWS Infrastructure Deployment
    • Création du référentiel ECR
    • Exportation variable d'environnement
    • IAM Configuration des rôles
    • Création de cluster ECS
  • Docker Image Build and Push
    • construire l'image docker
    • Connectez-vous à ECR
    • Tag et poussez l'image
  • Création de définition de la tâche
    • Mettez à jour le fichier de définition de la tâche
    • Enregistrez la définition de la tâche
  • Déploiement du service de jeu
    • Détails du service
    • Configuration d'équilibrage de charge
  • Accès au jeu déployé
    • Accès au point de terminaison de l'équilibreur de charge
  • Conclusion

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

  • Compte AWS avec des autorisations appropriées.
  • AWS CLI configuré.
  • docker installé localement.
  • GIT REPOSETORY CLONED: 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>

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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é.

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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>

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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>

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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>

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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>

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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.

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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.

Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack! Django’s Game of Life Meets AWS ECS – The Ultimate Deployment Hack!

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn