Rumah >pembangunan bahagian belakang >Tutorial Python >Game of Life Django memenuhi AWS ECS - The Ultimate Deployment Hack!

Game of Life Django memenuhi AWS ECS - The Ultimate Deployment Hack!

Susan Sarandon
Susan Sarandonasal
2025-01-30 08:13:08641semak imbas

Butiran dokumen ini menggunakan simulasi Game of Life klasik sebagai aplikasi web menggunakan Django dan AWS ECS. Mari kita menyelaraskan arahan untuk kejelasan.

Jadual Kandungan

  • Pengenalan
  • prasyarat
  • Persediaan Projek
    • Struktur Projek
  • penyebaran infrastruktur AWS
    • penciptaan repositori ECR
    • Eksport Pembolehubah Alam Sekitar
    • konfigurasi peranan iam
    • Penciptaan kluster ECS
  • Docker Image Build and Push
      Bina imej Docker
    • log masuk ke ECR
    • tag dan tolak gambar
  • Penciptaan Definisi Tugas
      Kemas kini fail definisi tugas
    • Daftar definisi tugas
  • Penyebaran Perkhidmatan Permainan
      Butiran Perkhidmatan
    • Konfigurasi mengimbangi beban
  • Mengakses permainan yang digunakan
      mengakses titik akhir pengimbang beban
  • Kesimpulan

Pengenalan

Projek ini melaksanakan Game of Life John Conway sebagai aplikasi web Django, yang digunakan di AWS ECS untuk skalabilitas dan kebolehpercayaan. Ini menunjukkan bagaimana orkestra kontena dapat memodenkan simulasi klasik.

prasyarat

    akaun AWS dengan keizinan yang sesuai.
  • AWS CLI dikonfigurasi.
  • Docker dipasang secara tempatan.
  • Git Repository Cloned:
  • git clone https://github.com/UkemeSkywalker/game_of_life

Persediaan Projek

selepas pengklonan, navigasi ke direktori projek (

). cd game_of_life

Struktur Projek: Struktur projek adalah seperti berikut:

<code>game-of-life/
├── Dockerfile
├── buildspec.yml
├── requirements.txt
├── manage.py
├── game_of_life/  (Django app)
└── ecs/         (ECS deployment files)</code>

penyebaran infrastruktur AWS

1. Penciptaan repositori ECR: Buat repositori ECR bernama dengan pengimbasan imej didayakan: game-of-life

<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. Eksport Pembolehubah Alam Sekitar: Eksport Pembolehubah Alam Sekitar yang Diperlukan:

<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>
menguji log masuk 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. Konfigurasi peranan IAM: Buat peranan IAM bernama dengan ecsTaskExecutionRole dilampirkan. AmazonECSTaskExecutionRolePolicy

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. Penciptaan Kluster ECS: Buat kluster ECS bernama game-of-life menggunakan 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. Bina imej Docker: Bina imej 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 dan tolak imej: tag dan tolak imej ke 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!

Penciptaan Definisi Tugas

7. Kemas kini fail definisi tugas:

navigasi ke dan kemas kini dengan pembolehubah persekitaran yang dieksport menggunakan ecs/. task-definition.json sed

8. Daftar Definisi Tugas: Daftar Definisi Tugas:

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

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

9. Butiran perkhidmatan dan mengimbangi beban: Dalam konsol AWS ECS, buat perkhidmatan baru bernama

, memilih definisi tugas yang baru didaftarkan dan membolehkan pengimbangan beban dengan pengimbang beban aplikasi.

game-of-life-svc

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

Mengakses permainan yang digunakan

10. Mengakses Titik Akhir Load Balancer: Sebaik sahaja digunakan, dapatkan nama DNS Balancer Load dari butiran perkhidmatan dan akses aplikasi dalam penyemak imbas anda.

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!

Kesimpulan

Penyebaran ini berjaya menunjukkan pemodenan aplikasi klasik menggunakan kontena dan infrastruktur awan. Penggunaan Django dan AWS ECS menyediakan platform berskala dan boleh dipercayai untuk permainan kehidupan.

Atas ialah kandungan terperinci Game of Life Django memenuhi AWS ECS - The Ultimate Deployment Hack!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn