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 ချိတ်ဆက်တဲ့ အခါမှာ အသုံးပြုရမှာ ဘဲ ဖြစ်ပါတယ်။

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

What is security group of EC2 ?

EC2 ရဲ့ Security group ဆိုတာ ဘာလဲ .. ဘယ်လိုအလုပ်လုပ်လဲ..?

Amazon EC2 instance တစ်ခုကို Launching လုပ်တဲ့ အခါမှာ သူ့အတွက် Security group သတ်မှတ်ဖို့လိုအပ်ပါတယ်။ Security group ဟာဆိုရင် virtual firewall တစ်ခုလိုမျိုး လုပ်ဆောင်ပါတယ်။တစ်ခုထက်ပိုတဲ့ instances တွေရဲ့ traffic တွေကိုလဲ control လုပ်ခြင်းကိုလဲ ဆောင်ရွက်ပါတယ်။

EC2 မှာ instance တစ်ခုကို launch လုပ်တဲ့ အခါ instance ကို တစ်ခု ဒါမှမဟုတ် တစ်ခုထက်ပိုတဲ့ security group တွေနဲ့ associate လုပ်ရပါမယ်။ မိမိတို့ရဲ့ EC2 instance မှာ ထည့်သွင်းထားတဲ့ webserver တွေကို network ကွန်ရက်မှတစ်ဆင့် မိမိ ကွန်ပြူတာကနေ ဖွင့်နိုင်တဲ့ protocols/ports တွေကို ခွင့်ပြု မပြုဆိုတဲ့ စည်းမျဉ်းတွေ လုပ်လို့ရပါတယ်။

ပုံမှန် firewalls တွေနဲ့တော့ မတူပါဘူး။ သို့သော် permissive rules တွေနဲ့ ကိုယ်တိုင် security groups တွေကို တည်ဆောက်နိုင်ပါတယ်။ Default security group တွေကို အသုံးပြုနိုင်သလို မိမိ စိတ်ကြိုက် ပြောင်းလဲ ပြင်ဆင်နိုင်ပါတယ်။

Users တွေအနေနဲ့ traffic တွေကို ဖယ်ရှားဖို့ ကိုတော့ provide မလုပ်နိုင်ပါဘူး။ ဆိုလိုတာက instance တစ်ခုတွက်  rules  တွေကိုသာ ထည့်မထားဘူးဆိုရင် inbound/outbound traffic အားလုံး block ဖြစ်သွားပါလိမ့်မယ်။

EC2 instance ရဲ့ security groups တပ်ဆင်ခြငး်က အရမ်းကို အရေးပါတဲ့အရာတစ်ခုဘဲ ဖြစ်ပါတယ်။ ဘာလို့ဆို risks/threats တွေကို protect လုပ်နိုင်မှာ ဖြစ်ပါတယ်။

Default security group ကို ရွေးမယ် ဆိုရင်တော့ သူရဲ့ default setting တွေကတော့ အောက်ပါပုံအတိုင်းဘဲဖြစ်ပါတယ်။

Protocols တွေဖြစ်တဲ့ TCP/UDP/ICMP (ICMP က ping အတွက် အသုံးပြုခြင်း ဖြစ်သည်။ ) တို့ကို configure လုပ်ထားတာဖြစ်ပါတယ်။ Protocol တစ်ခုခြင်းစီတိုင်းအတွက် ports range တစ်ခုခြင်းရှိပါတယ်။ (ICMP ကတော့ port ကို အသုံးပြုပါဘူး။ သူ့ရဲ့ range ဟာ -1 to -1 range ရှိခြင်းကြောင့်သာ ဖြစ်ပါသည်။ ) နောက်ဆုံး က source(ip or group) တွေဟာဆိုရင်ဖြင့် security group ရဲ့ protocols တွေ ports တွေကို အလုပ်လုပ်ဖို့ရန် IP addresses range ဒါမှမဟုတ်  members တွေနဲ့လဲ allow လုပ်နိုင်ပါသေးတယ်။

အပေါ်မှာ ပြောပြခဲ့တဲ့ Default security group ဟာဆိုရင် နည်းနညး်တော့ရှုပ်ထွေးကောင်းရှုပ်ထွေးနေပါလိမ့်မယ်။ မိမိရဲ့ network ဟာ အရမ်း ကျယ်ပြန့်သွားမှာ ဖြစ်ပါတယ်။ ဒါကြောင့် အကုန်လုံးကို မချိတ်ဆက်မိစေရန်ဖို့တွက် default group ၏ members အနေနဲ့ မိမိ computers ရဲ့ protocols/ports တွေကိုသာ ဖွင့်ထားဖို့ရန် လိုပါတယ်။ ဒီလိုမှမဟုတ်ရင် Default group ဟာဆိုရင်ဖြင့် computers တစ်ခုထဲကနေသာ ဖွင့်နိုင်ဖို့ရန် default ထားတာ ဖြစ်ပါတယ်။ ဘယ်လိုဘဲ ဖြစ်ဖြစ် မိမိရဲ့ EC2 instance ကို internet access ကိုအသုံးပြုပြီး ဘယ် computer ကမှ across လုပ်ပြီး ဝင်ရောက်နိုင်မှာ မဟုတ်ပါဘူး။

တစ်ကမ္ဘာလုံး အသုံးပြုနိုင်ဖို့ ဆိုရင် တော့ protocols/ports တစ်ချို့ကို ဖွင့်ထားဖို့တော့လိုပါတယ်။ အောက်ပါပုံမှာဆိုရင် preconfigure လုပ်နိုင်တဲ့ Connection Method တွေကို တွေ့မြင်ရမှာပါ။

ဥပမာအနေနဲ့ EC2 instance ကို Web server တစ်ခု အဖြစ် config လုပ်မယ်ဆိုပါစို့ ။ အဲ့အခါမှာ HTTP/HTTPS protocols တွေ allow လုပ်ဖို့လိုပါတယ်။ list ထဲကနေ ရွေးပြီး config လုပ်လိုက်တဲ့အခါ security group ကနေ အောက်ပါပုံအတိုင်း ပြောင်းလဲသွားမှာ ဖြစ်ပါတယ်။

အဓိက မှတ်သားထားရမှာက တော့ source IP ဘဲဖြစ်ပါတယ်။ IP address အားလုံးတိုင်းကို “0.0.0.0/0”  သတ်မှတ်လိုက်တဲ့အခါ protocol / port range access လုပ်မဲ့ အရာကို သတ်မှတ်လိုက်ခြင်းဖြစ်တယ်။ ဥပမာ အနေနဲ့ TCP ports 80 နဲ့ 443 ဆိုရင် Internet ပေါ်မှာ ဘယ် computer ကနေ မဆို access လုပ်နိုင်ပြီး web server ကို access လုပ်နိုင်မှာ ဖြစ်ပါတယ်။

Server ကို ထိန်းသိမ်းဖို့ရန် ဒါမှမဟုတ် file တွေကို upload တင်ဖို့ရန် အစရှိတဲ့ services တွေ ခွင့်ပြုပေးရပါမယ်။ ဥပမာ Windows server တစ်ခု config လုပ်မယ်ဆိုရင် Remote Desktop ကို အသုံးပြုဖို့လိုပါတယ်။ ထိုအခါမှာ ဆိုရင်TCP port 3389 ကို အသုံးပြုပြီး RDP ကို enable လုပ်ဖို့ လိုပါတယ်။

RDP က TCP port 3389 မှာဘဲ အလုပ်လုပ်ပါတယ်။ အပေါ်က ပုံမှာဆိုရင် source ip မှာရှိတဲ့ IP address သာလျှင် enable ဖြစ်နေမှာ ဖြစ်ပါတယ်။ နောက်တစ်ခုမှတ်ထားရမှာက IP address အဆုံးမှာ “/0” သတ်မှတ်တာတွေမလုပ်ပါနဲ့ အကယ်လို့ လုပ်ခဲ့မယ်ဆိုရင် ကမ္ဘာပေါ်မှာရှိတဲ့ computer တိုင်းကနေ အဲ့ port ကို access လုပ်နိုင်ဘဲဖြစ်ပါတယ်။ IP address အဆုံးမှာ“/32” single address နဲ့ access လုပ်နိုင်စွမ်းကို ကန့်သန့်နိုင်ပါတယ်။

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

How to create snapshot and restore of EC2 ?

Public cloud ထဲမှာရှိတဲ့ virtual machines တွေကို back up လုပ်ဖို့ဆိုတာက စိန်ခေါ်မှုတစ်ခုလိုပါဘဲ။ Amazon Web Services (AWS) ကနေ နည်းလမ်းတစ်ခုအနေနဲ့ Elastic Compute Cloud (EC2) instances ကို ကာကွယ်ဖို့ရန် snapshots ကို ဖန်တီးခြင်း နည်းပညာကို ထုတ်ဖော်ခဲ့ပါတယ်။

snapshot ရဲ့ လုပ်ငန်းစဉ်တွေအကြောင်းမရှင်းပြခင်မှာ snapshots ဟာ ပုံမှန် backups တွေနဲ့ မတူတဲ့ အချက်တွေကို နားလည်ဖို့ကအရေးကြီးပါတယ်။snapshot လုပ်တယ်ဆိုတာက AWS instance တစ်ခုလုံးကို အကုန် ကူးယူတာမျိုးတော့မဟုတ်ပါဘူး။ snapshot ဟာဆိုရင် instance အတွင်းမှာရှိတဲ့ storage volume တွေကို ကူးယူတာတင်မဟုတ်ဘဲ အရင်က snapshot တစ်ခုကိုသာ create လုပ်ခဲ့တယ်ဆိုရင်လဲ အဲ့သည့် storage blocks တွေကိုပါ ကူးယူတာမျိုးဖြစ်ပါတယ်။ ထပ်တိုးပြီး backup လုပ်သလိုမျိုးဖြစ်ပါတယ်။ ပထမဆုံး snapshot လုပ်တာဟာဆိုရင် volume တစ်ခုလုံးကို ကူးယူလိုက်တာဖြစ်ပါတယ်။ နောက်ဆက်တွဲ snapshots တွေလုပ်ခဲ့မယ်ဆိုရင်လဲ အရင် ကူးယူခဲ့တဲ့ အပေါ်မှာဘဲ modify လုပ်တာမျိုးဖြစ်ပါတယ်။

snapshot ကိုဖန်တီးတဲ့ လုပ်ငန်းစဉ်ဟာဆိုရင် အရမ်းကို ရိုးရှင်းပြီး လွယ်ကူတဲ့အရာတစ်ခုဘဲ ဖြစ်ပါတယ်။ account user တစ်ယောက်က EC2 instance တစ်ခုကို ဖန်တီးတဲ့အခါမှာ instance က အသုံးပြုခဲ့တဲ့ Elastic Block Store (EBS) volume တစ်ခုကို ဖြစ်သွားတယ်ပေါ့။

EBS ရဲ့ backup feature ဟာဆိုရင် မိမိ server ကို images ပုံစံ အဖြစ် သိမ်းဆည်းထားတဲ့ အရာကို “Snapshot” လို့ခေါ်ပါတယ်။ Snapshot တွေဘယ်လိုဆောက်ရတယ် ဆောက်ထားတဲ့ backup file ကိုလဲ ဘယ်လို restore ပြန်လုပ်ရမလဲဆိုတာကို ပြောပြမှာ ဖြစ်ပါတယ်။

Snapshot တစ်ခု စတင်ဖန်တီးခြင်း

EBS volume ရဲ့ snapshot တစ်ခုကို စပြီး ဖန်တီးလိုက်ရအောင်…..

Step (1)

Snapshot တစ်ခု ပြုလုပ်ဖို့ရန် ကိုယ့် create လုပ်ချင်တဲ့ EC2 instance ရဲ့ instance ID ကို ရွေးလိုက်ပါ။

Step (2)

ပြီးရင် EC2 dashboard အောက်က “Volumes” ကို ရွေးလိုက်ပါ။ “Attachment information” က instance ID ရဲ့ Data တွေကို note လုပ်ထားပါ။

Volume တစ်ခုထက်ပိုခဲ့မယ်ဆိုရင် ဒီနည်းလိုမျိုးရှာမယ်ဆိုရင် ပိုပြီး အဆင်ပြေစေမှာဖြစ်ပါတယ်။

Step (3)

မိမိ snapshot လုပ်မဲ့ volume ကို ရွေးလိုက်ပါ။ ပြီးရင် “Actions” ဆိုတဲ့ menu မှ “Create Snapshot” ကို ရွေးလိုက်ပါ။

Step (4)

EC2 console ရဲ့ “Snapshots” ကနေ မ%