How to upgrade instance type of RDS !

မိမိ သုံးနေတဲ့ RDS ဟာဆိုရင် သတ်မှတ်ထားတဲ့ CPU rate တွေ RAM rate တွေထက် overload ဖြစ်တဲ့ အခါမျိုးမှာဆိုရင် RDS ရဲ့ စွမ်းဆောင်ရည်များကျဆင်းလာပြီး မိမိ အချက်အလက်များပါ ဆုံးရှုံးမှုတွေ ဖြစ်လာနိုင်ပါတယ်။ Cloud watch ကနေ monitoring လုပ်နေတဲ့ RDS ရဲ့ performance ပိုင်းတွေကို metrics တွေနဲ့ဖော်ပြထားတဲ့ အတွက်ကြောင့် CPU ,network အစရှိသဖြင့် check လုပ်နိုင်ပါတယ်။ မိမိ RDS ရဲ့ performance ကနှေးလာပြီး ချိတ်ဆက်ထားတဲ့ webserver ကလဲ နှေးလာပြီဆိုရင် Monitoring ထဲက CPU utilize မှာ RDS လုပ်ဆောင်ချက်တွေကို စောင့်ကြည့်တဲ့ metrics မှာ စစ်ဆေးပါ။ ဥပမာ အနေနဲ့ အောက်ပါပုံကို ကြည့်ပါ။ CPU utilize မှာ DB ရဲ့ လုပ်ဆောင်မှုဟာ သတ်မှတ်ထားတဲ့ rate နားကပ်နေတာကို တွေ့ရမှာပါ။

ဒီလိုအဖြစ်ပျက်မျိုးတွေ ဖြစ်လာတဲ့အခါမှာ RDS instance class type ကို modify လုပ်တဲ့ နညး် ၂နည်းရှိတယ်။ ပထမနည်းက ရိုးရိုး Database အသုံးပြုထားတဲ့ RDS တွေက instance class ကို modify လုပ်နိုင်ပေမဲ့ modify လုပ်တဲ့ အချိန် ကတော့ ကြာမြင့်ပါလိမ့်မယ်။  ဒုတိယနညး်က Amazon aurora ကိုအသုံးပြုတဲ့ RDS တွေက Failover ဆိုတဲ့ အခြေနေတွေ ဖြစ်လာပါတယ်။ ဒီပြသာနာတွက် ဖြေရှင်းနညး်က Amazon Aurora instance ကို Read Replica လုပ်ပြီး instance class ကို အချိန်တိုအတွင်း ထပ်ချဲ့နိုင်ပါတယ်။

ရိုးရိုး Database ကို Instance class type ဘယ်လို ထပ်တိုးမလဲ ?

Step1. အရင်ဆုံး Service တွေထဲက RDS service ကို ရွေးလိုက်ပါ။

Step2. ပြီးရင် မိမိ modify လုပ်ချင်တဲ့ DB instance ကိုရွေးလိုက်ပါ။ အောက်ပါပုံမှာဆိုရင် DB instance class နေရာမှာ မိမိ လက်ရှိအသုံးပြုနေတဲ့ class type ဘဲ ဖြစ်ပါတယ်။ class type ချိန်းမှာ ဖြစ်လို့ modify ကို နှိပ်ပါ။

Step3. DB instance class မှာ မိမိ ထပ်ချဲ့ ချင်တဲ့ class အမျိုးအစားကို ရွေးလိုက်ပါ။ type တစ်ခုနဲ့ တစ်ခုဟာဆိုရင်လည်း price တွေမတူနိုင်ပါဘူး။

class type ချိန်းပြီးပြီဆိုရင်တော့ modify ကို နှိပ်လိုက်ပါ။

Step4. DB instance ထဲမှာ modify လုပ်ခဲ့တဲ့ အရာတွေကို review အနေနဲ့ ဖော်ပြထားတာ ဖြစ်ပါတယ်။ အရင်က instance type  db.t2.micro ကနေ db.t2.medium ကို modify လုပ်ထားးကို တွေ့ရမှာပါ။

Step5. ချက်ချင်း modify လုပ်မှာလား ? maintenance window မှာ ရှိတဲ့ schedule period မှဘဲ modify လုပ်မှာလား ဆိုတာ ရွေးရမှာဘဲ ဖြစ်ပါတယ်။ eg. DB ရဲ့ performance ချက်ချင်းတိုးချင်တာမို့ Apply immediately လုပ်ပါမယ်။

Step6. DB instance status မှာ အရင်က db.t2.micro instance ကို  modifying လုပ်နေတာ ဖြစ်ပါတယ်။

DB instance ရဲ့ class type ကို db.t2.micro ကနေ db.t2.medium ကို ပြောင်းလဲ လို့ ပြီးပါပြီ။

Failover Statement အတွက် Instance class type ဘယ်လို ထပ်တိုးမလဲ ?

Failover ဖြစ်တဲ့ DB instance က writer server အဖြစ်ရှိနေပါတယ်။ DB ရဲ့ class type ကို ထပ်တိုးဖို့ရန် modification time ကလဲ ၅မိနစ်အတွင်းနဲ့ DB instance ကို တိုးလို့ရတဲ့အတွက်ကြောင့် ရိုးရိုး DB ကို တိုးတာလောက် အချိန်မကုန်ပါဘူး။ လက်ရှိ DB instance ကို copy လုပ်ပြီး read replica တစ်ခုကို ဆောက်ခြင်းဖြစ်ပါတယ်။ ဆောက်ထားတဲ့ read replica ထဲမှာ instance class type တိုးခြင်းကိုလုပ်ဆောင်ပြီး တိုးထားတဲ့ replica instance ဆီမှာ writer server အဖြစ်ပြောင်းလဲ ခြင်းဖြင့် မိနစ်အပိုငး်အတွင်း နဲ့ instance type ကို ချိန်းခြငး်ဘဲ ဖြစ်ပါတယ်။

Step1. Amazon Aurora DB ကို Replica လုပ်ဖို့ရန်အတွက် replica လုပ်မဲ့ instance ကို ရွေးချယ်ပါ။ ပြီးရင် Create aurora replica ကို ရွေးပါ။

Step2. Aurora Replica source မှာ ဘယ် Cluster DB instance ရဲ့ source ကို ယူပြီး Replica ကို ဖန်တီးမလဲ ဆိုတဲ့ အတွက် ကြောင့် တိုးချင်တဲ့ cluster db ကို ရွေးပါ။ DB instance identifier name ဆိုတာက ဆောက်မဲ့ Read Replica instance အတွက် identifier name ပေးခြငး်ဖြစ်ပါတယ်။ ပြီးရင် Create Read Replica ကို နှိပ်ပါ။

အောက်ပါပုံမှာ ဆိုရင် Replica လုပ်ခဲ့တဲ့ DB instance “rds-replica” ဘဲဖြစ်ပါတယ်။

Step3. DB instance ကို Replica လုပ်ပြီးပြီဆိုရင် လက်ရှိ db.t2.small ကနေ instance type ထပ်ချဲ့ဖို့ရန် အတွက် Modify ကို နှိပ်ပါ။

instance class မှာ မိမိ ထပ်တိုးချဲ့ချင်တဲ့ အမျိုးအစားကို ရွေးပါ။

Step4. မိမိ modify လုပ်ခဲ့တဲ့ replica instance ကို modify ချင်တဲ့ အချိန်ကာလ ကိုရွေးချယ်ပါမယ်။

Step5. DB ရဲ့ လုပ်ဆောင်မှုကို High performance ဖြစ်စေဖို့ရန် Instance class တိုးထားတဲ့ DB ကို write server ချိန်းဖို့လိုပါတယ်။ Read Replica instance ကို failover လုပ်ပါမယ်။

failover လုပ်ဖို့သေချာပြီးဆိုရင် failover ကိုရွေးပါ။

Failover မလုပ်ခင် instance ပါ။

Failover လုပ်ပြီးတဲ့ instance မှာ writer နဲ့ reader server ပြောင်းလဲသွားတာကို တွေ့ရမှာပါ။

ကျေးဇူးတင်ပါတယ်။

How to setup RDS of AWS?

AWS ရဲ့ Database service များထဲကမှ တစ်ခုဖြစ်တဲ့ RDS(Relational Database Service) ကို အသုံးပြုပြီး database ဘယ်လိုတည်ဆောက်မလဲ ..? ဘယ်လိုအလုပ်လုပ်လဲ..? သူ့ရဲ့ parameters / data တွေရဲ့ meaning ကကော အစရှိတဲ့ အကြောင်းအရာတွေ ကို ပြောပြမှာ ဖြစ်ပါတယ်။

RDS (Relational Database Management Service)
Relational Database ကို Auto Management လုပ်ပေးတဲ့ Service ပါ။
သူက Support လုပ်တဲ့ Database တွေကတော့ Microsof SQL, MySQL, Oracle, MartiaDB, PostgreSQL, AmazonAurora  တွေပါ။
Manage လုပ်တယ်ဆိုတာမှာ Database ကြီးကို ကိုယ့်ကိုယ်စား သူက Manage လုပ်ပေးတာမျိုး မဟုတ်ပါဘူး။ DB Engine ကို Update/Downgrade, DB Server OS ကို Patching, Upgrade/Downgrade စတာတွေကို ပဲ Auto Manage လုပ်ပေးတာပါ။

အရင်ဆုံး AWS Console ကို သွားပြီး Database title အောက်မှာ ရှိတဲ့ RDS ကို ရွေးလိုက်ပါ။

MySQL DB instance တစ်ခုကို တည်ဆောက်ခြင်း

DB မဆောက်ခင်မှာ အရင်ဆုံး DB ကို ဘယ် region မှာ ထားမလဲဆိုတာ သတ်မှတ်ပေးရမှာ ဖြစ်ပါတယ်။ Note : Amazon cloud computing resources တွေကို ကမ္ဘာရဲ့ မတူညီတဲ့ နေရာတွေမှာ အရည်သွေးမြှင့်တဲ့ data center တွေထားရှိပြီး သိုလှောင် သိမ်းဆည်းထားတယ်။ ဒါကို region လို့ခေါ်တယ်။ region တစ်ခုစီတိုင်းမှာလဲ မတူညီတဲ့ နေရာများမှာလဲ Availability Zones တွေပါရှိပါတယ်။

navigation pane ထဲက Instances ကိုရွေးပါ။ ပြီးရင် DB ဆောက်ဖို့တွက် Launch DB Instance ကိုရွေးပါ။

မိမိ ဆောက်ချင်တဲ့ DB engine ကို ရွေးချယ်ရမှာဘဲ ဖြစ်ပါတယ်။ အဲ့မှာ engine type 6 မျိုးရှိပါတယ်။ ဒီ tuto မှာတော့ MySQL DB ကို ဆောက်ပြမှာ ဖြစ်ပါတယ်။  ဒါကြောင့် MySQL icon ကို ရွေးလိုက်ပါမယ်။

MySQL ကို ရွေးပြီး နောက်တစ်ဆင့်ကို ဆက်သွားရင် DB တွက် အသေးစိတ် အချက်လက်များကို ဖြည့်သွင်း သတ်မှတ်ရမှာ ဘဲ ဖြစ်ပါတယ်။

  • License model: MySQL အတွက် general license agreement ကို အသုံးပြုဖို့တွက် default အနေနဲ့ general-public-license ကိုရွေးပါမယ်။
  • DB engine version:  MySQL ရဲ့ default version ကို ရွေးလိုက်ပါ။ Amazon RDS မှာ MySQL ရဲ့ version ပေါင်းများစွာကို region အချို့မှာ support လုပ်ပေးထားပါတယ်။
  • DB instance class: မိမိ အသုံးပြုမဲ့ DB ရဲ့ CPU/RAM တွေတွက် ရွေးချယ်ရမှာ ဖြစ်ပါတယ်။ တစ်ခုနဲ့တစ်ခုက CPU/RAM rate တွေအရ price လဲကွဲပြားသွားမှာ ဖြစ်ပါတယ်။ db.t2.small ကို ရွေးချယ်ပါ။
  • Multi-AZ deployment: တစ်ခါတစ်လေမှာ မိမိရဲ့ DB server ဟာဆိုရင် workloadအရမ်းများလာပြီး မိမိ server လုပ်နိုင်စွမ်းထက်ပိုနေတဲ့အခါမျိုးမှာ failover ဖြစ်သွားတာမျိုးတွေ ရှိပါတယ်။ အကယ်လို့ အဲ့လိုဖြစ်လားတဲ့အခါမှာ မိမိရဲ့ DB ကို တစ်ခြား AZ ထဲမှာ standby အနေနဲ့ရှိနေဖို့ရန် copy ပွားထားဖို့ရန်တွက်ဘဲ ဖြစ်ပါတယ်။ No ကို ရွေးလိုက်ပါ။
  • Storage type: Instance ရဲ့ storage type အမျိုးစားကို ရွေးချယ်ရမှာဘဲ ဖြစ်ပါတယ်။ General Purpose (SSD) ကို ရွေးပါ။
  • Allocated storage:database တွက် storage gib ကို သတ်မှတ်ပေးဖို့တွက် ဖြစ်ပါတယ်။ တစ်ချို့ နေရာတွေမှာ DB ရဲ့ I/O perfformance တွေကို improve လုပ်တာထက် DB ရဲ့ storage amount ကို တိုးမြှင့်တာကို ပို ပြီးကောင်းပါတယ်။ 20 Gib ကိုရွေးလိုက်ပါ။
  • DB instance identifier: မိမိ ဆောက်မဲ့ DB တွက် instance name ပေးရမှာဘဲ ဖြစ်ပါတယ်။ eg. tutorial-db-instance
  • Master username/Master password: DB instance ကို ဝင်ရောက်ဖို့ရန် master user name နဲ့ password ပေးဖို့ရန်လိုပါတယ်။ အဲ့ဒီ user name  နဲ့ password ကို သုံးပြီး DB instance ရဲ့ database ကို ဝင်ရောက်ရမှာ ဖြစ်ပါတယ်။
  • Confirm password: confrim ဖြစ်စေဖို့ရန် နောက်တစ်ကြိမ် password ကို ထည့်သွင်းပါ။

နောက်တစ်ဆင့်ကတော့ Configure advanced settings ဘဲ ဖြစ်ပါတယ်။

  • Virtual Private Cloud (VPC): public ရော private ရော နှစ်ခုလုံးရှိတဲ့ VPC ကိုရွေးချယ်ရမှာဘဲ ဖြစ်ပါတယ်။ eg. tutorial-vpc(vpc-identifier)          Note : VPC ရဲ႕ subnet ေတြမွာ မတူညီတဲ႔ AZs ေတြရွိရပါမယ္။
  • Subnet group: VPC တွက် DB subnet group ကို အရင် create လုပ်ထားရပါမယ်။ default အနေနဲ့လဲ ရွေးလို့ရပါတယ်။
  • Public accessibility: No-VPC ရဲ့ အပြင်ဘက်မှာ ရှိတဲ့ EC2 instance တွေနဲ့ တစ်ခြား device တွေ ချိတ်ဆက်လို့ မရနိုင်ပါဘူး။
  • Public accessibility: Yes-VPC ရဲ့ အပြင်ဘက်မှာ ရှိတဲ့ EC2 instance တွေနဲ့ တစ်ခြား device တွေကို လဲ DB instance နဲ့ ချိတ်ဆက်လို့ရပါတယ်။
  • Availability zone: ဘယ် AZ ထဲမှာ ထားမလဲဆိုတာလဲ သတ်မှတ်လို့ရပါတယ်။
    VPC security groups: private access အတွက် VPC security group ကို ရွေးပါ။ eg. tutorial-db-securitygroup
  • Database name: DB တွက် name ပေးရမှာ ဖြစ်ပါတယ်။

ပြီးရင်တော့ Launch DB instance ကို နှိပ်ပြီး Amazon RDS DB instance ကို ဆောက်လိုက်ပါ။

DB instance statusမှာ available လို့ပြရင် DB instance စတင် run နေပါပြီ။

DB instance အတွက် endpoint နဲ့ port နံပတ်တွေကို အသုံးပြုပြီး Web server နဲ့ RDS DB instance ချိတ်ဆက်တဲ့ အခါမှာ အသုံးပြုရမှာ ဘဲ ဖြစ်ပါတယ်။

ကျေးဇူးတင်ပါတယ်။