Managing EC2 Instances Using Boto3
ကျွန်တော်ဒီနေ့မှာတော့ Boto3 ကိုသုံးပြီး EC2 instances တွေကို manage လုပ်တဲ့အကြောင်းရှင်းပြပါမယ်။ Boto3 ဆိုတာ AWS service တွေအတွက်အသုံးပြုမယ့် Python SDK ဖြစ်ပါတယ်။
👉 Install Boto3
Boto3 ကို install လုပ်ဖို့အတွက် အောက်ပါအတိုင်း ပြုလုပ်နိုင်ပါတယ်။
$ pip3 install boto3
👉 Configure AWS Credentials
ပြီးသွားရင်တော့ aws configure နဲ့ aws access key နဲ့ secret key တွေကို သတ်မှတ်ပေးရပါမယ်။
$ aws configure
အဲ့လိုမသတ်မှတ်ပေးဖူးဆိုရင် boto3 session မှာ access key နဲ့ secret key ကို parameter တွေအဖြစ်ကြေညာပေးရပါမယ်။
import boto3
session = boto3.Session(
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN
)
👉 Creating EC2 instance
ပထမဆုံးအနေနဲ့ EC2 instance တွေကို create လုပ်ဖို့အတွက် EC2 resource ထဲက create_instances() method ကိုသုံးပါမယ်။
#!/usr/bin/env python3
import boto3
EC2_RESOURCE = boto3.resource('ec2', region_name='us-east-1')
instances = EC2_RESOURCE.create_instances(
MinCount = 1,
MaxCount = 2,
ImageId='ami-09d56f8956ab235b3',
InstanceType='t2.micro',
SecurityGroupIds=[
'sg-0f1df0f49a700cd6a',
],
SubnetId='subnet-06a1d2785fbf61317',
TagSpecifications=[
{
'ResourceType': 'instance',
'Tags': [
{
'Key': 'Name',
'Value': 'ec2-boto3'
},
]
},
]
)
for instance in instances:
print(f'EC2 instance "{instance.id}" has been launched')
instance.wait_until_running()
create_instances() method ထဲမှာ သုံးထားတဲ့ parameters တွေကိုရှင်းပြပါမယ်။
- MinCount - launch လုပ်မယ့် အနည်းဆုံး EC2 ပမာဏဖြစ်ပါတယ်။
- MaxCount - launch လုပ်မယ့် အများဆုံး EC2 ပမာဏဖြစ်ပါတယ်။
- ImageId - ကိုယ်သုံးမယ့် AMI ID ဖြစ်ပါတယ်။
- SubentId - EC2 instance ထားမယ့် subnet ရဲ့ ID ဖြစ်ပါတယ်။
- InstanceType - Instance ရဲ့ type အမျိုးအစားဖြစ်ပါတယ်။
- SecurityGroupIds = Instance အတွက် လိုအပ်တဲ့ security group တွေချိတ်ပေးဖို့ပါ။
👉 EC2 Waiters
ဒီနေရာမှာ EC2 waiter တွေထဲကတစ်ခုဖြစ်တဲ့ wait_until_running() ကိုသုံးထားပါတယ်။ ဆိုလိုရင်းကတော့ instance တစ်ခု running မဖြစ်မခြင်း waiting လုပ်နေမှာပါ။ ပြီးသွားမှ နောက် instance တစ်ခုကို loop ကနေ create ဆက်လုပ်သွားမယ်လို့ပြောတာပါ။
အားလုံးပြီးသွားရင်တော့ code ကို run လိုက်ရင် အောက်ကအတိုင်း instance (၂)ခု ရလာပါလိမ့်မယ်။
% python3 6_ec2_create.py
EC2 instance "i-0f3465727b9b0f3e8" has been launched
EC2 instance "i-06f0dd0e1ade9fb79" has been launched
👉 Listing EC2 Instances
EC2 instances တွေကို create ပြီးရင်တော့ list လုပ်ဖို့အတွက် အောက်က code ကိုလေ့လာကြည့်ရအောင်။
#!/usr/bin/env python3
import boto3
AWS_REGION = "us-east-1"
EC2_RESOURCE = boto3.resource('ec2', region_name=AWS_REGION)
instances = EC2_RESOURCE.instances.all()
for instance in instances:
print(f'EC2 Instance {instance.id}" Information')
print('*'*60)
print(f'Instance state: {instance.state["Name"]}')
print(f'Instance type: "{instance.instance_type}')
print('*'*60)
EC2 instance တွေကို list လုပ်ဖို့အတွက် EC2 resource ရဲ့ instance collection ထဲက all() method ကိုသုံးပါမယ်။ ပြီးသွားရင်တော့ instance တစ်ခုချင်းစီရဲ့ attributes တွေဖြစ်တဲ့ id, instance type စတာ တွေကို print ထုတ်လိုက်ပါတယ်။
EC2 Instance i-06f0dd0e1ade9fb79" Information
**********************************************
Instance state: running
Instance type: "t2.micro
**********************************************
EC2 Instance i-0f3465727b9b0f3e8" Information
**********************************************
Instance state: running
Instance type: "t2.micro
**********************************************
အဆုံးထိဖတ်ရှူပေးကြသူများအားလုံးကျေးဇူးတင်ပါတယ်။ နောက်လည်း ဒီလို sharing လေးတွေရေးသွားပါဦးမယ်။
👉 Reference
သင်ဆရာ မြင်ဆရာ ကြားဆရာများကိုလေးစားလျှက် 🙏🙏🙏
သောင်းထိုက်ဦး (UIT)