AWS - ASG
Auto Scaling Group ဆိုတာကတော့ EC2 instances များကို logical group တစ်ခုအဖြစ် စုစည်းထားပြီး automatic scaling နှင့် lifecycle management ကို အလွယ်တကူ ဆောင်ရွက်နိုင်တဲ့ AWS service ဖြစ်ပါသည်။ ASG ကို အသုံးပြုကာ utilization, schedule, metric ပေါ်မူတည်ပြီး instance များကို အလိုအလျောက် တိုးခြင်း သို့ လျှော့ခြင်း၊ unhealthy instance များကို self-healing mechanism ဖြင့် အစားထိုးခြင်းတို့ကို ဆောင်ရွက်နိုင်ပါတယ်။
Launch Template
Auto Scaling Group တစ်ခုပြုလုပ်ရန်အတွက် အရင်ဆုံး EC2 instances များကို launch လုပ်ရန် လိုအပ်တဲ့ configuration များကို သတ်မှတ်ထားနိုင်တဲ့ Template တစ်ခုကို ဖန်တီးပေးရပါမယ်။
Launch Template မှာတော့ instance များအတွက် အသုံးပြုမည့် AMI ID၊ instance type (ဥပမာ t2.micro)၊ key pair၊ security group၊ user data နဲ့ storage (EBS) configuration များကို သတ်မှတ်ပေးထားလို့ရပါတယ်။
Auto Scaling Group
ထို့နောက် Launch Template ကို အသုံးပြုကာ Auto Scaling Group တစ်ခုကို create လုပ်နိုင်ပါပြီ။
ASG create လုပ်ရာမှာ multi AZ, multi Subnet support လုပ်ပေးထားပြီး AZ တစ်ခု down သွားပါက သို့မဟုတ် unhealthy instance ရှိလာပါက ဘယ်လို ဆက်လုပ်မလဲဆိုတာကိုပါ AZ Distribution Strategy မှာသတ်မှတ်ပေးနိုင်ပါတယ်။
သူက Availability Zone တစ်ခုလုံး down သွားတာမျိုးသာမက Zone တွေကြား instance အရေအတွက် မညီမမျှ ဖြစ်နေရင်လည်း အလိုအလျောက် balance ပြန်ဖြစ်အောင် rebalancing လုပ်ပေးပါတယ်။
Capacity သတ်မှတ်ခြင်း
ASG အတွက် capacity values များကို သတ်မှတ်ရပါတယ်။ ဥပမာ Minimum capacity ကို 1၊ Desired capacity ကို 3၊ Maximum capacity ကို 5 ဟု သတ်မှတ်လိုက်ပါက ASG သည် အစပိုင်းတွင် EC2 instances 3 ခုကို အလိုအလျောက် launch လုပ်ပေးပါတယ်။
သတ်မှတ်ထားတဲ့ scaling rules ကို မူတည်ပြီး instance အရေအတွက်ကို minimum နှင့် maximum အတွင်း အမြဲထိန်းပေးထားပါတယ်။
Health Check & Self-Healing
Auto Scaling Group က instance များကို periodic health checks များဖြင့် စောင့်ကြည့်ကာ instance တစ်ခု unhealthy ဖြစ်လာပါက ထို instance ကို terminate လုပ်ပြီး desired capacity ကို ဆက်လက်ထိန်းသိမ်းနိုင်ရန် replacement instance အသစ်ကို အလိုအလျောက် launch လုပ်ပေးပါသည်။
ဒီ feature က ASG ရဲ့ self-healing mechanism ဖြစ်ပြီး fault tolerance ကို အထောက်အကူပြုပေးပါသည်။
Scaling Policy Configuration
Scaling policies များကို သတ်မှတ်ခြင်းဖြင့် workload ပြောင်းလဲလာသည့်အခါ instance အရေအတွက်ကို dynamic ချိန်ညှိပေးနိုင်ပါတယ်။
ဥပမာ cooldown period အတွင်း CPU utilization 70% ကျော်သွားပါက scale out (instance တိုး) လုပ်ပြီး CPU utilization 30% အောက်ကျသွားပါက scale in (instance လျှော့) ပြုလုပ်ရန် policy သတ်မှတ်ပေးနိုင်ပါသည်။
ထိုမျှသာမက Workload behavior ကို သိရှိထားပါက time-based schedule သတ်မှတ်နိုင်သလို CloudWatch metrics များနှင့် တွဲဖက်ပြီး scaling ပြုလုပ်နိုင်ပါတယ်။
Auto Scaling Group သည် minimum capacity နှင့် maximum capacity အကြားအတွင်း instance အရေအတွက်ကို adjust လုပ်ပေးတာပဲဖြစ်ပါတယ်။
Load Balancer နှင့် တွဲကာအသုံးပြုခြင်း
Availability နှင့် reliability ပိုမိုကောင်းမွန်ရန်အတွက် လိုအပ်ပါက ASG ကို Application Load Balancer (ALB) သို့ Network Load Balancer (NLB) တို့နဲ့ တွဲကာအသုံးပြုနိုင်ပါသည်။
Load Balancer ကို attach လုပ်ထားပါက incoming traffic များကို instances များအကြား အလိုအလျောက် ဖြန့်ဝေပြီး instance အသစ်များ launch လုပ်သောအခါ target group သို့ auto register လုပ်ပေးကာ instance များ terminate လုပ်သည့်အခါ auto deregister ပြုလုပ်ပေးပါသည်။
Cost Optimization
Auto Scaling Group သုံးရာတွင် Launch Template နှင့် dynamic scaling policies ပါရှိသောကြောင့် Desired capacity ကို workload အလိုက် auto adjust လုပ်ပေးနိုင်တဲ့အတွက် On-Demand Instances များသာမက Spot Instances များကိုပါ Mixed Instances Policy ဖြင့် တွဲဖက်အသုံးပြုကာ cost optimization ကို ထိရောက်စွာ ဆောင်ရွက်နိုင်ပါတယ်။
Instance Maintenance Policy, Refresh & Rolling Replacement
Default ASG health check အရ instance unhealthy ဖြစ်လာပါက terminate လုပ်ပြီး အသစ် launch လုပ်ပေးပါသည်။
Service interruption မဖြစ်စေရန် Instance Maintenance Policy ကို အသုံးပြုကာ launch first, then terminate ဆိုပြီး Instance Maintenance Policy သို့ Instance Refresh (Rolling replacement) ကို အသုံးပြုနိုင်ပါတယ်။
ထိုအခါ ASG က အရင်ဆုံး instance အသစ်ကို launch လုပ်ပြီး ထို instance fully healthy ဖြစ်လာသည်အထိ စောင့်ဆိုင်းပြီးမှ unhealthy instance ကို terminate လုပ်ပေးပါသည်။ Minimum healthy percentage နှင့် maximum healthy percentage ကို သတ်မှတ်ခြင်းဖြင့် replacement လုပ်နေစဉ် capacity ကို ထိန်းထားနိုင်ပါသည်။
အကျဉ်းအားဖြင့် Auto Scaling Group ကို အသုံးပြုခြင်းအားဖြင့် automatic scaling၊ self-healing နှင့် high availability ပါဝင်သည့် scalable architecture တစ်ခုကို အလွယ်တကူ တည်ဆောက်နိုင်ပါသည်။

Discussion
Join the conversation
How do you feel about this article?
Comments
Sign in to join the conversation
Sign in to be the first to comment!
Share Your Article
Share with your professional network
Recent Articles

AWS - Application Load Balancer
Elastic Load Balancing (ELB) ELB ဆိုတာကတော့ request တွေကို တစ်နေရာတည်းမှ လက်ခံကာ Amazon EC2 instances၊ containers, etc.....

Terraform Day 3: Benefits of Terraform State
Terraform ကိုလေ့လာ တဲ့အခါ ကျွန််တော်တို့ရဲ့ Project Folder ထဲမှာ terraform.tfstate ဆိုတဲ့ ဖိုင်လေးကို တွေ့ဖူးကြပါလိမ့်မယ...

Terraform Day 2: Essential IaC Principles You Must Know
မနေ့ကတော့ Terraform အကြောင်း အကြမ်းဖျင်း Concept ကို ပြောပြခဲ့ပြီးပြီဆိုတော့ ဒီနေ့မှာတော့ Terraform ကို Professional ကျက...

TCP/IP Protocol
အားလုံးပဲမင်္ဂလာပါ။ ဒီနေ့ ကျွန်တော်တို့ TCP/IP Protocol အကြောင်း ဆွေးနွေးသွားပါမယ်။ ပထမဆုံးအနေနဲ့ TCP/IP ရဲ့ History လေး...

Terraform Day 1: Introduction to IAC and Terraform
ကျွန်တော်တို့ cloud အကြောင်း စပြောကြပြီဆိုရင် အရင်ဆုံး ခေါင်းထဲရောက်လာတာ Console ထဲဝင်၊ UI ကနေ ခလုတ်လေးတွေ လိုက်နှိပ်ပြီ...

