Managing Load Balancing Solution on AWS using AWS Load Balancer

Wai Lin Oo
4 min readJan 8, 2024

--

ကျွန်တော်တို့ ဒီနေ့မှာတော့ AWS Load Balancer ကို အသုံးပြုပြီး AWS ပေါ်က EC2 (Virtual Machine) တွေကို Performance ကောင်းအောင် ဘယ်လို Manage လုပ်ရမလဲဆိုတာကို ပြောပြပေးသွားမှာဖြစ်ပါတယ်။

AWS Load Balancer ဆိုတာက ကျွန်တော်တို့ Server တွေကို လာတဲ့ incoming traffic တွေကို Balance ဖြစ်အောင် Distribute လုပ်ပေးတာဖြစ်ပါတယ်။

ဥပမာ ကျွန်တော်တို့မှာ Server 3 လုံးရှိတယ်ဆိုပါစို့။ အဲ့ဒီ Server တွေဆီကို လာတဲ့ Traffic တွေကို Server တစ်ခုထဲပေါ်မှာပဲ Load မများစေဘဲ အချိုးကျကျ Traffic တွေကို ဖြန့်ပေးသွားတာမျိုးဖြစ်ပါတယ်။

အောက်က Diagram လေးမှာ ပိုရှင်းအောင် ကြည့်နိုင်ပါတယ်။

LoadBalancer ကိုသုံးပေးခြင့်ဖြင့် ကျွန်တော်တို့ Server တစ်လုံး Down သွားရင်တောင်မှ Active ဖြစ်နေသေးတဲ့ Server ကနေ တဆင့် User တွေက Access ရနေနိုင်အုန်းမှာပါ။

ဒါကြောင့် AWS LoadBalancer တွေက High Availability ဖြစ်တယ် ၊ Load များလာရင်လည်း လိုရင် လိုသလို Server တွေကို ထပ်တိုးလို့ရနိုင်တာကြောင့် Scalibility ပါဖြစ်စေပါတယ်။

AWS မှာ Classic Load Balancer , Application Load Balancer , Network Load Balancer ,Gateway Load Balancer=အမျိုးမျိုးရှိကြပေမယ့် ကျွန်တော် ဒီနေ့မှာတော့ အသုံးများတဲ့ Application Load Balancer အကြောင်း ပြောပြပေးသွားမှာဖြစ်ပါတယ်။

Load Balancer တစ်ခုအရင်ဆုံးမလုပ်ခင် ကျွန်တော့်မှာ EC2 နှစ်ခုရှိနေပါမယ်။

Server ထဲမှာတော့ ကျွန်တော် Nginx Web Server ကို Install ပြုလုပ်ထားပါတယ်။

EC2 Server နှစ်ခုကို Load Balancer နဲ့ ချိတ်ဖို့ အရင်ဆုံး EC2 Console ထဲက Load Balancer ကိုသွားပြီး Create Load Balancer ကို နှိပ်ပါ။

Load Balancer တွေအမျိုးမျိုးရှိတာကို တွေ့နိုင်ပါတယ်။
Application Load Balancer ကို ရွေးပါမယ်။

Load Balancer အတွက် Name တစ်ခုပေးပါ။

Internet ကို ထွက်မှာဖြစ်တဲ့ အတွက် Internet-facing , IPV4 ကိုပဲ ရွေးထားပါမယ်။

အောက်မှာတော့ ကျွန်တော်တို့နဲ့ VPC နဲ့ Load Balancer အတွက် Subnet တွေကို ရွေးပါမယ်။

Public Facing ဖြစ်တဲ့အတွက် Subnet တွေကတော့ Public Subnet ဖြစ်နေဖို့ လိုပါတယ်။

Security Group တစ်ခုရွေးပါ။

Load Balancer ကနေ Distribute လုပ်ပေးမယ့် Target EC2 ကိုရွေးဖို့လိုလာပါပြီ။

AWS မှာတော့ Load Balancer က Distribute လုပ်ပေးမယ့် နောက်က Backend Server တွေအတွက် Target Goup နဲ့ သတ်မှတ်ပေးပါတယ်။

ဒါကြောင့် ကျွန်တော်တို့ Create Target Group လုပ်ပါမယ်။ လောလောဆယ် HTTP ပဲ အရင် စမ်းမှာဖြစ်တဲ့အတွက် HTTP 80 ပဲ ထားပါမယ်။

Target Group အတွက် Target တွေက EC2 ဖြစ်တဲ့အတွက် Instances ကိုရွေးပါ။

Target Group Name ပေးပြီး ကျန်တဲ့ဟာတွေကတော့ သူ့ Default တိုင်းပဲ ထားခဲ့ပါမယ်။

EC2 Server နှစ်လုံးကို Traffic Load Balance လုပ်မှာဖြစ်တဲ့အတွက် Target Group မှာ ကျွန်တော်တို့ အဆင်သင့်ဆောက်ထားတဲ့ EC2 နှစ်ခုကို ရွေးပါမယ်

ပြီးရင် Include as pending below ကို နှိပ်ပါ။

ဒါဆို Target Group ထဲကို ကျွန်တော်တို့ရဲ့ EC2 Server နှစ်ခု ဝင်ဖို့ အဆင်သင့်ဖြစ်နေပါပြီ။

ပြီးရင် Create Target Group ကိုနှိပ်ပါ။

ဒါဆို Target Group Create လုပ်လို့ပြီးပါပြီ။

ခုနက Load Balancer Listeners and routing နေရာမှာ ကျွန်တော်တို့ အခုဆောက်လိုက်တဲ့ Target Group လေးကို ရွေးပါမယ်။

ပြီးရင်တော့ Create Load Balancer လုပ်ပါ။

ကျွန်တော်တို့ EC2 နှစ်လုံးကို target လုပ်ထားတဲ့ Application Load Balancer လေး provisioning လုပ်နေပါပြီ။

ဒါဆို ကျွန်တော်တို့ Load Balancer ရဲ့ DNS Name နဲ့ Browser မှာ ခေါ်ကြည့်ရင် EC2 နှစ်လုံးပေါ်မှာ လုပ်ထားတဲ့ Nginx Website လေး အလုပ်လုပ်နေတာကို တွေ့နိုင်ပါပြီ။

ကျွန်တော်တို့ Load Balancer နဲ့လုပ်ထားတဲ့ Website လေးက ခုဆို HTTP 80 နဲ့ လုပ်ထားတာ ဖြစ်တဲ့အတွက် Not Secure အခြေအနေနဲ့ပဲရှိနေအုန်းမှာကို တွေ့ရမှာပါ။

ဒါကို ကျွန်တော်တို့ Secure ဖြစ်အောင် Certificate SSL တွေနဲ့ ဘယ်လိုလုပ်ရမလဲဆိုတာကို နောက်ထပ် Blog လေးမှာ ထပ်တင်ပေးသွားပါမယ်။

အားလုံး နားလည်ကြမယ် မျှော်လင့်ပါတယ်……….

References:

--

--