Rumah >pembangunan bahagian belakang >Tutorial Python >Menggunakan Sistem Pengesan Pencerobohan berasaskan Flask ke AWS ECS dengan CI/CD
Dalam siaran ini, saya akan memandu anda melalui proses menggunakan sistem pengesanan pencerobohan pada AWS
NOTA: Projek ini menganggap anda sudah mempunyai akaun AWS yang aktif dan mengkonfigurasikan bukti kelayakan akaun anda (kunci akses) kepada editor kod anda dan projek ini akan menanggung beberapa kos dalam konsol anda
Objektif projek ini adalah seperti berikut:
Bahagian ini akan menunjukkan langkah-langkah yang terlibat dalam mencipta projek ini dari awal
Buat fail Docker dalam direktori projek untuk membungkus apl kelalang.
FROM python:3.12 #set the working dir WORKDIR /usr/src/app #copy the requirements and install dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy all the files to the container COPY . . #Expose the port EXPOSE 5000 #run the app CMD ["gunicorn","-b","0.0.0.0:5000", "app:app"]
Adalah penting untuk membina dan menguji imej docker secara setempat untuk memastikan ia berfungsi seperti yang dimaksudkan
docker build -t image-name . docker run -p 5000:5000 image-name
Jalankan arahan berikut untuk mengesahkan Docker dengan ECR (ganti wilayah-anda dan id-akaun anda):
aws ecr get-login-password --region your-region | docker login --username AWS --password-stdin your-account-id.dkr.ecr.your-region.amazonaws.com
Tanda imej Docker tempatan anda untuk memadankan repositori ECR, kemudian tolaknya:
NOTA: Pastikan ia adalah rantau dan id akaun akaun anda masing-masing
docker tag image-name:latest your-account-id.dkr.ecr.your-region.amazonaws.com/image-name:latest docker push your-account-id.dkr.ecr.your-region.amazonaws.com/image-name:latest
Repo ECR anda sepatutnya kelihatan seperti ini apabila imej berjaya ditolak
Perhatikan Wilayah, kerana di sinilah semua sumber akan digunakan
Dalam konsol VPC, pilih tab Intergate Gateway dan buat gateway internet. Setelah IGW dibuat, lampirkan pada VPC anda
NOTA: gugusan ECS akan digunakan pada subnet peribadi dan Pengimbang Beban Aplikasi akan berada dalam subnet awam dan akan mengakses gugusan ECS dalam subnet peribadi
Ini akan membolehkan gugusan ECS mempunyai akses kepada Pendaftaran Bekas Elastik (ECR).
NOTA: Empat Titik Akhir akan dibuat untuk S3, ECR, DOCKER dan CloudWatch.
*Sekarang buat Endpoints yang tinggal dengan menukar perkhidmatan untuk docker com.amazonaws.us-east-1.ecr.dkr, untuk CloudWatch logs com.amazonaws.us-east-1.logs dan untuk S3 com.amazonaws. us-east-1.s3 masing-masing dan ikuti semua perkara lain dengan tepat mengharapkan perubahan tersebut.
Ini adalah langkah yang sangat penting kerana ia adalah ALB yang
akan mengarahkan trafik ke perkhidmatan ECS persendirian.
Pertama sekali, kita perlu membuat kumpulan keselamatan untuk ALB.
Pergi ke konsol ECS dan pilih takrifan tugas.
Tambah pembolehubah persekitaran
Ini akan menjadi penting dalam bahagian CI/CD projek ini. Tetapi akan dilangkau buat masa ini.
Teruskan dan langkau bahagian yang tinggal dan buat definisi tugas
Buat kumpulan keselamatan untuk perkhidmatan ECS
Ini akan membawa anda ke halaman baharu di mana anda akan menentukan konfigurasi perkhidmatan Fargate.
Pilih bilangan Tugasan yang Diingini untuk dilancarkan. Satu ok untuk projek ini.
Tatal ke tab Rangkaian dan pilih VPC yang telah dibuat dan kemudian subnet peribadi
Dalam bahagian Pengimbang beban, pilih jenis pengimbang beban sebagai Pengimbang Beban Aplikasi dan pilih gunakan pengimbang beban sedia ada. Ini akan memaparkan ALB yang telah dibuat dalam bahagian sebelumnya. pilihnya.
Tatal dan anda akan lihat, pendengar. pilih gunakan pendengar sedia ada dan pilih pendengar port 80 yang ada dan di bawah kumpulan sasaran lakukan perkara yang sama, pilih kumpulan sasaran sedia ada yang kami buat.
Seterusnya ialah Penskalaan Auto Perkhidmatan. Ini adalah pilihan tetapi merupakan tambahan yang baik untuk perlu menskalakan ke apl berdasarkan metrik yang ditentukan. Dayakan ini dan tentukan bilangan minimum dan maksimum tugas yang anda mahu jalankan. Seterusnya tambahkan dasar penskalaan. Untuk projek ini dasar penjejakan Sasaran digunakan bersama metrik perkhidmatan ALBrequestCountPerTarget ECS, dengan nilai sasaran 50, tempoh bertenang skala keluar dan tempoh bertenang Skala masuk sebagai 60s
Buat Perkhidmatan.
Setelah Perkhidmatan dibuat, bilangan tugasan yang diingini akan dibuat.
Jika arahan di atas telah diikuti pada T, anda sepatutnya mempunyai apl web yang berfungsi sepenuhnya, untuk mengaksesnya pergi ke pengimbang beban anda, salin nama DNS dan tampal dalam penyemak imbas anda. Tetapi itu membosankan dan tidak menggunakan amalan terbaik. Sebaik-baiknya, harus ada tembok api aplikasi Web di hadapan ALB atau CloudFront, tetapi untuk kesederhanaan kami hanya akan menggunakan Laluan 53.
NOTA: Bahagian ini memerlukan anda mempunyai nama domain berdaftar sama ada dengan AWS atau mana-mana pembekal lain
Ini mengandaikan anda mempunyai nama domain anda dengan AWS
Jika anda mengikuti Langkah ke T, anda seharusnya mempunyai apl web berfungsi penuh yang boleh diakses melalui nama domain anda.
Ini adalah projek yang sangat menarik kerana saya bekerja dengan VPC, subnet peribadi dan awam, titik akhir VPC, perkhidmatan ECS, ECR, Kumpulan sasaran, kumpulan keselamatan dan Pengimbang beban Aplikasi kerana mereka semua berkumpul untuk mencipta web ini- apl.
Atas ialah kandungan terperinci Menggunakan Sistem Pengesan Pencerobohan berasaskan Flask ke AWS ECS dengan CI/CD. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!