Menggunakan Python untuk Mengotomatiskan penghentian Instans EC2
Pendahuluan:
Tim teknik DevOps kami kerap memakai lab pengembangan untuk mengetes launching aplikasi kami. Manager mengeluhkan mengenai bertambahnya ongkos lab pengembangan kami dan perlu mengirit uang dengan hentikan (untuk perumpamaan ini) 3 instans EC2 kami sesudah semua mekanik kekurangan waktu.
Pekerjaan:
Buat skrip Python yang bisa Anda lakukan yang hendak hentikan semua instance. Kami ingin pastikan jika cuma instans pengembangan kami yang disetop untuk pastikan tidak ada yang disetop secara tidak menyengaja dalam Produksi. Tambah nalar ke skrip Anda yang cuma stop jalankan instans yang mempunyai tag environment: Dev.
Knowledge base mengenai bahasa Python | |
Account tingkat gratis AWS | |
Cloud9 atau IDE lain opsi Anda | |
Pengetahuan mengenai Amazon EC2 dan langkah membuat instans |
Arah:
. Luncurkan tiga instans EC2 dengan tag 'Dev'
. Buat skrip Python untuk hentikan instance yang jalan berdasar tagnya
Cara Satu: Luncurkan Instans EC2
. Tujukan ke Konsol EC2
. Luncurkan tiga Instans memakai Amazon Linux 2 AMI, di VPC standar, dengan group keamanan standar, di subnet standar
. Tambah tag tambahan pada tiap instance memakai kunci/nilai environment/dev
Cara Ke 1 : Luncurkan Instans EC2
Cara Ke 2 : Buat Skrip Python
Sesudah Anda ada di environment Cloud9, Anda harus lebih dulu mengimpor kit pengembangan software (SDK) boto3 dengan menjalankan perintah berikut ini:
import boto3
Simpan skrip dan berikan nama. Simpan file ke folder bukan environment Cloud9, atau Anda akan alami permasalahan saat mendorongnya ke GitHub.
AWS. Boto3 ialah Python SDK untuk AWS tapi tidak diinstall awalnya dengan Cloud9. Untuk memasang Boto3 lakukan perintah berikut ini:
pip install boto3
Jika Anda belum menginstal dan mengonfigurasi CLI, jalankan perintah berikut:
pip install awscli
aws configure #save your key id, access key, and region
Berikut ini adalah skrip Python yang akan kita gunakan untuk menghentikan Instans EC2 kita
import boto3
# region EC2 instances are in
region = 'us-east-1'
ec2 = boto3.resource('ec2', region_name=region)
# find all instances that are running and have tag of office_hours
instances = ec2.instances.filter(
Filters = [{'Name': 'instance-state-name', 'Values': ['running']},
{'Name':'tag:Environment','Values':['Dev']}]
)
# try to stop instances
for instance in instances:
ec2.instances.filter(InstanceIds=[instance.id]).stop()
print(f'{instance} stopped')
print(f'Error stopping {instance}')
print(instance.id)
Mari kita memecah kode:
# region EC2 instances are in
region = 'us-east-1'
ec2 = boto3.resource('ec2', region_name=region)
Variabel dalam variabel Python hanya lokasi memory yang dicadangkan untuk simpan nilai data. Baris kode di atas memutuskan variabel yang kita butuhkan untuk skrip kita seperti sumber daya dan daerah tempat sumber daya ada.
# find all instances that are running and have tag of office_hours
instances = ec2.instances.filter(
Filters = [{'Name': 'instance-state-name', 'Values': ['running']},
{'Name':'tag:Environment','Values':['Dev']}]
)
Filter. Pertama kali kita perlu memfiltrasi semua contoh yang jalan dan kita akan memfiltrasi secara eksklusif untuk tag kita.
# try to stop instances
for instance in instances:
ec2.instances.filter(InstanceIds=[instance.id]).stop()
print(f'{instance} stopped')
print(f'Error stopping {instance}')
print(instance.id)
Loop. Paling akhir kita akan hentikan instance dengan for loop. Kami memakai for loop di Python untuk mengulang-ulang blok kode. Karena kita bukan hanya hentikan satu instance, kita membutuhkan code untuk digerakkan berulang-kali tapi bukannya tuliskan kode berulang-kali, pengulangan for menolong kita capai perlakuan yang serupa.
Cara Ke 3 : Lakukan Skrip Anda
Lakukan skrip Python Anda.
Membuka dashboard EC2 Anda dan klarifikasi jika instans yang dikasih tag stop.
Proyek selesai!
Artikel Terkait Lainnya :
- Belajar Kode Efisien Dan Mudah Dibaca Di Python
- 10 Pustaka Python untuk Pembelajaran Mesin yang Anda Butuhkan di Perangkat Anda
- Node.js Vs Python : Mana Yang Terbaik Untuk Pengembangan Backend Di Tahun 2023?
- Memecahkan Actorle Dengan Python
- 10 Tips Memaksimalkan Produktivitas Anda Sebagai Developer Python