Rumah > pembangunan bahagian belakang > Tutorial Python > Optimumkan Kos AWS: Automatikkan Pembersihan Syot Kilat EBS yang Tidak Digunakan dengan Lambda

Optimumkan Kos AWS: Automatikkan Pembersihan Syot Kilat EBS yang Tidak Digunakan dengan Lambda

DDD
Lepaskan: 2024-12-19 01:18:10
asal
499 orang telah melayarinya

Panduan Langkah demi Langkah untuk Membina dan Menerapkan Fungsi Lambda yang Menjimatkan Kos untuk Pengurusan Syot Kilat EBS

? pengenalan

Selamat datang ke dunia DevOps! Hari ini, kami akan menyelami projek pengoptimuman kos yang menarik yang menangani cabaran biasa yang dihadapi oleh pengguna AWS—menguruskan syot kilat EBS yang tidak perlu. Dalam projek ini, kami akan mencipta program Python yang membersihkan secara automatik:

  • Syot kilat tidak dilampirkan pada sebarang kelantangan.
  • Syot kilat kejadian yang tidak lagi dalam keadaan berjalan.

Projek hands-on ini bukan sahaja cara terbaik untuk mengurangkan kos storan AWS anda tetapi juga peluang untuk mengukuhkan pemahaman anda tentang penggunaan sumber dalam AWS. Sepanjang perjalanan, kami akan meneroka boto3, AWS SDK untuk Python, untuk berinteraksi dengan sumber AWS dan memanipulasinya untuk memenuhi keperluan kami.

Mari mulakan perjalanan ini untuk mengautomasikan langkah penjimatan kos dan meningkatkan kemahiran DevOps anda!


? Pra-Syarat

Sebelum kami memulakan pembinaan projek pengoptimuman kos kami, mari pastikan anda mempunyai alatan dan pengetahuan yang diperlukan. Inilah yang anda perlukan:

  • Python: Pastikan Python dipasang pada sistem anda. Versi 3.7 ke atas disyorkan.
  • Pengetahuan Asas Python: Kebiasaan dengan asas Python akan membantu anda memahami dan melaksanakan skrip dengan berkesan.
  • Akaun AWS: Anda memerlukan akses kepada akaun AWS untuk berinteraksi dengan sumber seperti syot kilat EC2 dan EBS.
  • Pemahaman Asas EC2: Memandangkan kami akan bekerja dengan papan pemuka dan syot kilat EC2, mempunyai pemahaman asas tentang kejadian EC2 adalah penting.
  • AWS CLI: Pasang dan konfigurasikan AWS CLI pada sistem anda menggunakan arahan:
aws configure
Salin selepas log masuk
Salin selepas log masuk

Langkah ini akan menyediakan kunci akses, rantau dan format output anda untuk membolehkan komunikasi lancar dengan perkhidmatan AWS.

Setelah anda menandai prasyarat ini, anda akan bersedia untuk meneruskan projek!


? Memulakan Projek

Kod sumber untuk projek ini tersedia dalam repositori GitHub saya:

? Repo GitHub: Pengoptimuman Kos Awan AWS

Ikuti langkah ini untuk mencipta dan mengkonfigurasi fungsi Lambda anda:

Buat Fungsi Lambda:

  • Navigasi ke Lambda Console dalam akaun AWS anda.
  • Klik pada Cipta Fungsi dan pilih pilihan Pengarang dari awal.
  • Berikan nama fungsi, cth., ebs-volume-check dan pilih Python 3.12 sebagai masa jalan.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Tambah Kod:

  • Dalam editor kod konsol AWS, buka fail lambda_function.py.
  • Salin dan tampal kandungan script.py daripada repositori GitHub ke dalam editor. Berikut ialah coretan kod untuk rujukan:
aws configure
Salin selepas log masuk
Salin selepas log masuk

Gunakan Kod:

  • Klik butang Gunakan untuk menyimpan dan menggunakan perubahan.

Tingkatkan Tamat Masa:

  • Secara lalai, tamat masa untuk fungsi Lambda ialah 3 saat, yang tidak mencukupi untuk operasi ini.
  • Pergi ke tab Konfigurasi, pilih Konfigurasi Umum dan tambahkan tamat masa kepada 10 saat.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Uji Fungsi:

  • Buat acara ujian dengan data tiruan dan gunakan fungsi tersebut.
  • Anda akan menghadapi ralat Operasi Tanpa Kebenaran semasa ujian.

Ralat ini berlaku kerana fungsi Lambda tidak mempunyai kebenaran yang diperlukan, yang akan kami tangani dalam langkah seterusnya.


? Menambah Kebenaran yang Diperlukan

Untuk membolehkan fungsi Lambda berinteraksi dengan sumber EC2, kami perlu menambahkan kebenaran khusus pada peranan perkhidmatannya. Daripada memberikan akses penuh, kami akan mengikut prinsip keistimewaan paling rendah untuk memastikan fungsi tersebut hanya mempunyai kebenaran yang diperlukan. Ikuti langkah ini:

Cari Peranan Perkhidmatan:

  • Navigasi ke tab Konfigurasi fungsi Lambda.
  • Di bawah bahagian Kebenaran, cari peranan perkhidmatan yang dikaitkan dengan fungsi tersebut. Nama peranan akan dipaparkan di sana.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Buka Peranan Perkhidmatan dalam IAM:

  • Klik pada nama peranan perkhidmatan, dan ia akan mengubah hala anda ke IAM Console.

Buat Dasar Sebaris:

  • Dalam Konsol IAM, di bawah tab Kebenaran, klik pada Tambah Kebenaran dan pilih Cipta Dasar Sebaris.
  • Konfigurasikan dasar seperti berikut:
  • Perkhidmatan: Pilih EC2.
  • Tindakan: Pilih hanya kebenaran berikut:
  • Huraikan Syot Kilat
  • DescribeInstances
  • DescribeVolumes
  • Padam Syot Kilat
  • Sumber: Tetapkan kebenaran untuk digunakan pada semua sumber untuk kesederhanaan. Jika anda memerlukan kawalan yang lebih ketat, nyatakan ARN sumber.

Semak dan Tetapkan Polisi:

  • Klik Seterusnya dan semak butiran dasar.
  • Tetapkan nama pada dasar, mis., kebenaran-ebs.
  • Klik Buat Dasar untuk menggunakannya pada peranan perkhidmatan.

Dasar kebenaran ebs akan kelihatan seperti ini:

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Setelah dasar sebaris ini ditambahkan, fungsi Lambda akan mempunyai semua kebenaran yang diperlukan untuk menerangkan dan memadamkan syot kilat, jilid dan kejadian dengan berkesan.

Dengan keizinan yang ada, mari kita uji fungsi sekali lagi dalam langkah seterusnya!


? Menguji Fungsi Lambda

Dengan kebenaran yang disediakan, tiba masanya untuk menguji fungsi Lambda kami menggunakan senario dunia sebenar. Ikuti langkah ini untuk melihat bagaimana fungsi berfungsi:

1. Kes Penggunaan Pertama: Membersihkan Syot Kilat Kejadian Dipadamkan

Buat Contoh EC2:

  • Lancarkan contoh t2.micro dan namakannya test-ebs.
  • Gunakan AMI lalai dan pastikan tika mempunyai volum akar.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Buat Syot Kilat:

  • Pergi ke Papan Pemuka EC2 dan buat syot kilat daripada kelantangan yang dilampirkan pada test-ebs.
  • Tunggu penciptaan syot kilat selesai.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Padamkan Contoh:
Setelah syot kilat sedia, tamatkan tika ujian-ebs. Ini meninggalkan gambaran contoh yang tidak wujud, yang kini berlebihan.

Jalankan Fungsi Lambda:

  • Navigasi ke fungsi Lambda anda dalam AWS Console dan uji fungsi tersebut.
  • Fungsi ini akan mengesan bahawa syot kilat tidak dilampirkan pada tika yang sedang berjalan dan memadamkannya.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Sahkan pemadaman dalam bahagian Syot Kilat pada Papan Pemuka EC2.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

2. Kes Penggunaan Kedua: Membersihkan Syot Kilat Jilid yang Dipadamkan

Buat Volume EBS:

  • Buat volum EBS gp3 1 GB dan namakannya ebs-volume.

Buat Syot Kilat:

  • Navigasi ke bahagian EBS Volumes dan buat syot kilat daripada ebs-volume.
  • Tunggu sehingga syot kilat dibuat.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Padamkan Kelantangan:
Setelah syot kilat sedia, padamkan volum ebs. Ini meninggalkan syot kilat yang tidak dilampirkan pada sebarang kelantangan.

Jalankan Fungsi Lambda:

  • Uji fungsi Lambda sekali lagi.
  • Fungsi ini akan mengenal pasti bahawa syot kilat tidak dipautkan ke mana-mana kelantangan dan memadamkannya.
  • Sahkan pemadaman dalam bahagian Syot Kilat pada Papan Pemuka EC2.

Optimise AWS Costs: Automate Unused EBS Snapshot Cleanup with Lambda

Dengan berjaya mengendalikan kedua-dua senario ini, fungsi Lambda menunjukkan keupayaannya untuk mengenal pasti dan membersihkan gambar EBS yang berlebihan, menjimatkan kos dan memperkemas pengurusan sumber.


? Kesimpulan

Tahniah! ? Anda baru sahaja membina penyelesaian pengoptimuman kos pada AWS menggunakan Python dan Lambda. Dalam projek ini, kami meneroka cara untuk mengenal pasti dan membersihkan syot kilat EBS berlebihan yang tidak lagi berfungsi, membantu anda menjimatkan kos awan sambil menambah baik pengurusan sumber.

Berikut ialah imbasan ringkas tentang apa yang kami capai:

  • Belajar cara mencipta dan mengkonfigurasi fungsi Lambda dari awal. Menggunakan perpustakaan boto3 AWS untuk berinteraksi dengan sumber EC2 secara pengaturcaraan.
  • Mengikut prinsip keistimewaan paling rendah untuk memastikan akses selamat kepada perkhidmatan AWS.
  • Senario dunia sebenar yang diuji untuk mengesahkan kecekapan fungsi kami dalam membersihkan syot kilat yang tidak dilampirkan.

Projek ini menyerlahkan kepentingan pengoptimuman sumber dalam persekitaran awan dan melengkapkan anda dengan pengalaman praktikal dalam mengautomasikan tugasan AWS menggunakan Python.

Jangan ragu untuk menyesuaikan dan meningkatkan lagi fungsi ini. Sebagai contoh, anda boleh menyediakan peraturan CloudWatch untuk mencetuskan fungsi secara berkala atau melanjutkan logik untuk mengendalikan senario pembersihan tambahan.

Terima kasih kerana mengikuti, dan nantikan lebih banyak projek DevOps dan awan yang menarik! ?

? Untuk blog yang lebih bermaklumat, Ikuti saya di Hashnode, X(Twitter) dan LinkedIn.

Sehingga itu, Selamat belajar! ?

Atas ialah kandungan terperinci Optimumkan Kos AWS: Automatikkan Pembersihan Syot Kilat EBS yang Tidak Digunakan dengan Lambda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan