How to setup CONFIG File to connect RDS ?

Amazon ရဲ့ services တွေထဲက EC2 service ကို အသုံးပြုပြီး Window/Linux/Ubuntu တွေနဲ့ template တွေဆောက်တယ်။ အဲ့ဒီ template ထဲမှာ webserver တွေတင်တယ် application တွေ run ကြတယ်။ webserver တွေ application တွေရဲ့ data တွေကို store လုပ်မဲ့ database ဆိုတာလဲ ပါရှိပါတယ်။ အချက်အလက်များ သိမ်းဆည်းသိုလှောင်ဖို့ရန် အတွက် EC2 instance မှာ LAMP server တွေကို install လုပ်တဲ့အခါမှာ apache/mysql/php အစရှိသဖြင့် manual setup လုပ်ရပါတယ်။ မိမိ တင်သမျှ web တွေ app တွက် အချက်အလက်တွေကို mysql ထဲမှာသိမ်းဆည်းတယ်ပေါ့။ ဒါကတော့တစ်နည်းပေ့ါ။ နောက်ထပ်တနညး်ကတော့ Amazon ရဲ့ RDS ထဲမှာ အချက်အလက်တွေသိမ်းဆည်းခြင်းပါ။ RDS service တွေအကြောင်းကို အရင်တစ်ခေါက်ကပိုစ့်မှာ ရေးသားပြီးပြီမို့အရှည်ကြီးတွေ ပြောမနေတော့ပါဘူး။ EC2 instance မှာရှိတဲ့ webserver တွေကို RDS နဲ့ ဘယ်လိုချိတ်မလဲ ဆိုတာကို ပြောပြမှာ ဖြစ်ပါတယ်။ ဘယ်လိုချိတ်ပြီး အလုပ်လုပ်ရလဲ ??

Web Server ကို install လုပ်ခြငး်

EC2 instance တစ်ခု ဆောက်ပြီးရင် terminal software ကို အသုံးပြုပြီး EC2 instance ပေါ်မှာ web server တစ်ခု ဖန်တီးပါမယ်။

၁. EC2 instance ရဲ့ DNS name or EIP address နှင့်အတူ  terminal software ကို အသုံးပြုပြီး ဝင်ပါ။

၂. Apache web server ကို Install လုပ်ပါမယ်။ (sudo yum install httpd)

၃. မိမိ web server ကို အသုံးပြုဖို့ရန် service ကို start လုပ်ပေးရပါမယ်။ (sudo service httpd start)

sudo su

yum install httpd

service httpd start

Web Server ပေါ်မှာ PHP ကို install လုပ်ခြင်း

၁. MySQL နဲ့ PHP package ကို install လုပ်ပါမယ်။ (sudo yum install php php-mysql)

၂. Apache Web Server ကို restart လုပ်ပါမယ်။ (sudo service httpd restart)

yum install php php-mysql

service httpd restart

Amazon Web Server ပေါ်မှာ WordPress ကို download/install/setup လုပ်ခြင်း

မိမိရဲ့ web server ပေါ်မှာ PHP က အလုပ်လုပ်နေပြီဆိုရင်တော့ WordPress ကို download လုပ်ပြီး installation လုပ်ပါမယ်။

၁. WordPress ကို Install လုပ်ဖို့တွက် server ရဲ့ public HTML folder အောက်ကို သွားပါမယ်။ (cd /var/www/html)

၂. WordPress ရဲ့ latest version ကို download လုပ်ပါ။ (wget http://wordpress.org/latest.tar.gz)

၃. download လုပ်ထားခဲ့ zip ဖိုင်ကို ဖြည့်ပါမယ်။ (tar -xzvf latest.tar.gz)

၄. zip file ကို ဖြည်လိုက်ရင်တော့ wordpress ဆိုတဲ့ directory တစ်ခုကိုရရှိမှာ ဖြစ်ပါတယ်။ WordPress ရဲ့ wp-config.php file ကို ဆောက်ပါမယ်။ ပြီးရင် database connection parameters ကို modify လုပ်နိုင်မှာဖြစ်ပါတယ်။Wordpress တစ်ခု တည်ဆောက်ဖို့ရန်တွက် Config file တစ်ခုတည်ဆောက်ပေးခြင်းဘဲ ဖြစ်ပါတယ်။

cd /var/www/html

wget http://wordpress.org/latest.tar.gz

tar -xzvf latest.tar.gz

//setup wp-config

mv wp-config-sample.php wp-config.php

vi wp-config.php

DB instance ထဲက dbname/db-username/db-password တွေကို မှန်ကန်စွာ ဖြည့်သွင်းရပါမယ်။ DB နဲ့ချိတ်ဖို့ config file မှာ ဖြည့်တဲ့အခါ မှာ AURORA DB နဲ့ ချိတ်ပြ မှာ ဖြစ်ပါတယ်။

/** The name of the database for WordPress */

define(‘DB_NAME’, ‘wordpress‘);  NOTE: ‘DB_NAME’ မှာ မိမိ RDS instance ရဲ့ DB name ဒါမှမဟုတ် Aurora DB instance ရဲ့ DB name ကို ဖြည့်သွင်းရမှာဘဲ ဖြစ်ပါတယ်။

/** MySQL database username */

define (‘DB_USER’, ‘wp-user‘);   NOTE: ‘DB_USER’ ဆိုတာက DB instance မှာ ဆောက်ခဲ့တဲ့ db ရဲ့ USERNAME ကို ဖြည့်ပါ။

/** MySQL database password */

define(‘DB_PASSWORD’, ‘your-password‘);  NOTE: ‘DB_PASSWORD’ ဆိုတာက DB instance မှာ ဆောက်ခဲ့တဲ့ db ရဲ့ PASSWORD ကို ဖြည့်ပါ။

/** MySQL hostname */

define(‘DB_HOST’, ‘aws-auroradb-cluster.cluster-c97kgt5tzlzo.us-west-2.rds.amazonaws.com‘);  NOTE: ‘DB_HOST’ က DB instance ရဲ့ ENDPOINT  ကို ဖြည့်ပါ။

Config file ထဲမှာ အချက်အလက်များဖြည့်သွင်းပြီးရင်တော့ မိမိ EC2 instance ရဲ့ public DNS name or EIP address ကို browser မှာ paste လုပ်ပါ။ (eg, http://ec2-54-202-202-135.us-west-2.compute.amazonaws.com/wordpress)

WORDPRESS ရဲ့ CONFIG FILE မှာ ဖြည့်ခဲ့တဲ့ INFORMATION အတိုင်းမှန်ကန်စွာ ဖြည့်သွင်းပါ။

CONFIG FILE မှာ ရှိတဲ့ အချက်လက်များ နဲ့ ကိုက်ညီမှသာ အောက်မှာ ဖော်ပြထားတဲ့ ပုံအတိုင်းတွေ့မြင်ရမှာ ဘဲ ဖြစ်ပါတယ်။ အချက်အလက်များ ထည့်ပြီးရင်တော့ INSTALL လုပ်ပါ။

WORDPRESS ကို INSTALL လုပ်ပြီးရင်တော့ USERNAME နဲ့ PASSWORD ဖြည့်သွင်းပြီး LOG IN ဝင်ပါ။

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

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

 

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 with Amazon Aurora ?

AWS ရဲ့ database service အသစ်တစ်ခုဖြစ်တဲ့ “Amazon Aurora” ကို ဘယ်လို create လုပ်ရမယ်ဆိုတဲ့ အကြာင်းပြောမှာ ဖြစ်ပါတယ်။ Amazon Aurora က MySQL နှင့် PostgreSQL relational database engine တွေကို support လုပ်ပေးထားပါတယ်။ Aurora က MySQL နှင့် PostgreSQL ကို develop လုပ်ၿခင္းအားၿဖင့္ ပိုပြီး အဆင်ပြေလွယ်ကူစေပြီး business ရဲ့ ကုန်ကျစရိတ်ကိုလဲ သက်သာစေနိုင်ပါတယ်။ Aurora မှာဆိုရင် database task တွေအနေနဲ့ provisioning, patching, backup, recovery, failure detection နဲ့ repair အစရှိတဲ့ လုပ်ငန်းစဉ်များကို လုပ်ဆောင်နိုင်ပါတယ်။ လိုအပ်ရင် instance class တွေကို ထပ်ချဲ့နိုင်သလို ပွားလို့လဲ ရပါတယ်။

Amazon Aurora ရဲ့ instance ကို create လုပ်တဲ့အခါမှာလဲ DB cluster တစ်ခုကို create လုပ်ရမှာ ဖြစ်ပါတယ်။ DB cluster တစ်ခုဆီမှာ တစ်ခုထက်ပိုတဲ့ DB instance များရှိပါတယ်။ ထို instances များရဲ့ data တွေကို cluster volume တွေမှ manage လုပ်နိုင်တယ်။ Aurora cluster volume တစ်ခုဟာဆိုရင် virtual database storage volume တစ်ခုသာဖြစ်တယ်။ သူဟာဆိုရင် multiple AZs တွေနဲ့ span လုပ်ထားတယ်။ ဒါကြောင့်မို့ AZs တစ်ခုစီတိုင်းမှာ DB cluster data တွေကို copy ပွားထားတာတွေ ရှိနေပါတယ်။

ဒီလောက်ဆိုရင် Aurora အကြောင်းကို သိလောက်ပြီ ဆိုတော့ Aurora ဘယ်လိုဆောက်ရမလဲဆိုတာကို ဆက်ပြောပြမှာ ဖြစ်ပါတယ်။

Step1. အရင်ဆုံး AWS console ကနေ RDS service ကို ရွေးလိုက်ပါ။ ပြီးရင် Launch an Aurora DB instance ကို ရွေးလိုက်ပါ။

Step2. Launch Aurora DB instance အဆင့်ပြီးရင် DB Engine ကို ရွေးရမဲ့အပိုင်းပါ။ ခုက Aurora DB ဆောက်မှာ ဖြစ်တဲ့အတွက် Amazon Aurora engine ကို ရွေးပါမယ်။

ပြီးတော့ Aurora engine ကို ဘယ် edition နဲ့ setup လုပ်မှာလဲဆိုတာလဲ ရွေးလို့ရပါတယ်။ တစ်ခုရှိတာက Aurora က free ပေးမသုံးပါဘူး။ မိမိ အသုံးပြုတဲ့ နာရီအလိုက် ကျသင့်ငွေ ပေးချေရမှာ ဘဲ ဖြစ်ပါတယ်။

Step3. engine type အဆင့် ပြီးရင်တော့ instance စတင်ဆောက်ရမှာဖြစ်ပါတယ်။ အရင်ဆုံး မိမိဆောက်မဲ့ db instance တွက် class အမျိုးစားကို ရွေးချယ်ရမှာ ဖြစ်ပါတယ်။

ပြီးရင် မိမိဆောက်မဲ့ DB instance တွက် identifier name ပေးရမှာ ဘဲဖြစ်ပါတယ်။ နောက်ပြီးတော့ webserver တွေနဲ့ ချိတ်ဆက်ဖို့ရန် မိမိ DB instance တွက် username / password သတ်မှတ်ပေးထားရမှာဘဲ ဖြစ်ပါတယ်။

Step4. မိမိဆောက်တဲ့ DB ထားဖို့ရန် VPC တစ်ခုဆောက်ပေးရမှာဘဲ ဖြစ်ပါတယ်။ VPC ကသုံးမဲ့ ကွန်ရက်အတွက် Subnet ကိုလဲ ဆောက်ရမှာ ဖြစ်ပါတယ်။

Virtual Private Cloud (VPC) – DB instance အတွက် virtual networking environment တစ်ခုကို သတ်မှတ်ပေးဖို့ရန်တွက်ဘဲ ဖြစ်ပါတယ်။

Subnet Group – DB instance ရဲ့ subnets နှင့် IP ranges တွေကို VPC ထဲမှာ အသုံးပြုနိုင်ဖို့ရန် DB subnet group ကို သတ်မှတ်ဖော်ပြပေးရမှာ ဘဲ ဖြစ်ပါတယ်။

နောက်တစ်ခု ရှိသေးတာက Public accessibility ဘဲ ဖြစ်ပါတယ်။ မိမိ instance ကို ချိတ်ဆက်မဲ့ devices တွေနဲ့ ပတ်သတ်ပြီး သတ်မှတ်ချက်တွေဘဲဖြစ်ပါတယ်။

Public accessibility

  • Yes – VPC အပြင်ဘက်မှာ ရှိတဲ့ host လုပ်ထားတဲ့ EC2 instances နဲ့ အခြား devices တွေရဲ့ DB instance တွေကလဲ DB instance ကို ချိတ်ဆက်နိ်ုင်မှာ ဘဲ ဖြစ်ပါတယ်။ ပြီးတော့ EC2 instance နဲ့ အခြား devices တွေနဲ့ ချိတ်ဆက်ဖို့ရန် VPC security group တစ်ခုထက်ပိုပြီး ရွေးချယ်နိုင်ပါတယ်။
  • No – Amazon RDS က public IP address ကို DB instance မှာ assign မလုပ်ထားဘူး ပြီးတော့ VPC အပြင် မှာ ရှိတဲ့ EC2 instance တွေနဲ့ အခြား devices တွေကလဲ DB instance နဲ့ ချိတ်ဆက် အသုံးမပြုနိုင်ပါဘူး။

Availability zone – DB instance ကို create လုပ်ဖို့ရန် လက်ရှိ region ထဲမှာ Availability Zone ကိုရွေးချယ်ရမှာ ဖြစ်ပါတယ်။ region ထဲမှာ ရှိတဲ့ အခြား AZs တွေကိုလဲ ချိတ်ဆက်ထားတာ ဖြစ်လို့ failures ဖြစ်ခြင်းမှ server down ခြင်း data များ loss ဖြစ်ခြင်းမှ protect လုပ်နိုင်ပါတယ်။

VPC security groups – DB instance ကို access လုပ်ဖို့ရန် လိုအပ်တဲ့ rules authorize connections တွေရှိတဲ့ security group ကိုလဲ ထားရှိရပါမယ်။

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

DB cluster identifier – Instance နှင့်အတူ DB cluster တွက် identifier name သတ်မှတ်ပေးရပါမယ်။ identifier name သာမသတ်မှတ်ထားဘူးဆိုရင် instance identifier ပေါ်မူတည်ပြီး default name အဖြစ်နဲ့ အသုံးပြုနိုင်မှာ ဖြစ်ပါတယ်။

Database name – DB instance ကိုဆောက်ဖို့ရန်တွက် Amazon RDS ရဲ့ database name သတ်မှတ်ပေးရမှာ ဖြစ်ပါတယ်။ database name သာသတ်မှတ်ခြင်းမရှိဘူးဆိုရင် DB instance တွက် Amazon RDS ကနေ database တစ်ခုကို ဆောက်နိုင်မှာ မဟုတ်ပါဘူး ။

Port – DB instance တွေနဲ့ application တွေ ချိတ်ဆက်နိုင်ဖို့ရန် တွက် TCP/IP port တွေသတ်မှတ်ပြီး အသုံးပြုကြပါတယ်။ DB instance ဆီမှာ ဘယ် application မဆို connection string တစ်ခုဖြစ်စေဖို့အတွက် DB instance ရဲ့ port number ကို သတ်မှတ်ပေးထားရပါမယ်။ DB instance ရဲ့ security group တွေလဲ connection လုပ်နိုင်ဖို့ရန် port တွေကို allow လုပ်ပေးထားရပါမယ်။

DB parameter group – ဒါကတော့ configuration setting ကို အသုံးပြုမဲ့ DB instance တွက် ဘဲ ဖြစ်ပါတယ်။ ဒါကြောင့်မို့ DB parameter group ကို ရွေးချယ်ရပါမယ်။
DB cluster parameter group – instance ရဲ့ DB Cluster နဲ့ parameter group တို့ဟာ associate ဖြစ်နေဖို့ရန်တွက် ဖြစ်ပါတယ်။
Option group – DB instance ကို support လုပ်ချင်တဲ့ any optional function တွေ တွက် ဘဲ ဖြစ်ပါတယ်။ ဥပမာ- Oracle တို့ SQL Server data encryption တွေ MySQL memchached support တွေတွက်ဘဲ ဖြစ်ပါတယ်။
Failover – failover ဆိုတာကတော့ မိမိရဲ့ DB က လုပ်နေတဲ့ process တွေက DB လက်ခံနိုင်တဲ့ CPU တွေ RAM တွေ လုပ်ဆောင်နိုင်စွမ်းထက် overload ဖြစ်ချိန်မှာ failover ဆိုတာ ဖြစ်တတ်ပါတယ်။
Priority – failover ကာလအတွင်း မူလ instance ကနေ ဦးစားပေး အဆင့်မှာ ရှိတဲ့ replica ကိုမြှင့်သွားမှာ ဖြစ်ပါတယ်။
Backup retention period – DB instance ကို automatic backups တွေကို Amazon RDS ကနေ ထိန်းသိမ်းထားမဲ့ ရက် တွေကို သတ်မှတ်တာဘဲ ဖြစ်ပါတယ်။ Amazon RDS က DB instance ၏ အလိုလျောက် backups တွေကို ဆက်လက် ထိန်းသိမ်းမဲ့ ကာလ အရေတွက် ကိုထည့်သွင်းရခြင်းဘဲ ဖြစ်ပါတယ်။
Backtrack – backtrack ဟာဆိုရင် user fault ကြောင့် ဖြစ်တဲ့ error တွေကို လျင်မြန်စွာ recover လုပ်ပေးပါတယ်။ for example မနက် ၁၀နာရီမှာ အရေးကြီးတဲ့ record တစ်ခုကို ရုတ်တရက် ဖျက်မိတယ်ဆိုရင် error ဖြစ်ခင် ၉.၅၉ အချိန်ကို backtrack ကို အသုံးပြုပြီး Aurora database ကို ပြန်ရွေ့နိုင်ပါတယ်။
 
Monitoring – monitoring ကို enable လုပ်ထားမယ်ဆိုရင် မိမိ instance ရဲ့ CPU ကို အသုံးပြုနေတဲ့ processes တွေ threads တွေကို metrics တွေနဲ့ စောင့်ကြည့်နိိုင်ပါတယ်။
Maintenance – maintenance မှာဆိုရင် Auto minor version upgrade နဲ့ maintenance window ဆိုပြီး ၂ပိုင်းရှိပါတယ်။
  • Auto minor version upgrade – DB instance ကို maintenance လုပ်ရင် automatic upgrades လုပ်မှာ လားဆိုတဲ့ သဘောတရားပါ။ upgrade လုပ်လိုက်တဲ့ DB ကို ချက်ချင်း upgrade မြှင့်ခြင်းပါ။
  • Maintenance window – ဒါကတော့ DB instance ကို upgrade လုပ်တဲ့ ကာလတစ်ခုကို ဆိုလိုတယ်။ DB instance class တွေ ပြောင်းလိုက်တယ်ဆိုပါစို့ အဲ့မှာ upgrade ပြီးမြောက်တဲ့ state မရောက်ခင် pending state ဖြစ်တဲ့ DB ကို patch လုပ်နေချိန်ဘဲ ဖြစ်တယ်။ ထို process တွေကို သတ်မှတ်ထားတဲ့ အချိန် ပြီးမြောက်စေဖို့ရန် ကာလတစ်ခု သတ်မှတ်ထား ခြငး်ဘဲ ဖြစ်ပါတယ်။ ကာလတစ်ခုကို သတ်မှတ်မထားဘူးဆိုရင် Amazon RDS ကနေ random period ကို assign လုပ်သွားမှာ ဖြစ်ပါတယ်။
နောက်ဆုံးအဆင့်အနေနဲ့ Create database ကို နှိပ်လိုက်ပါ။ အောက်ကပုံအတိုင်း DB instance ရဲ့ status မှာ creating လုပ်နေကြောင်းကို တွေ့ရမှာ ဘဲ ဖြစ်ပါတယ်။
Create လုပ်နေတဲ့ process ပြီးသွားရင် အောက်ပါပုံအတိုငး် DB instance တည်ဆောက်ခြငး်အောင်မြင်သွားပါပြီ။ အောက်ပါပုံဟာဆိုရင် DB instance ဆောက်တုန်းက DB cluster အတွက်ပါ တွဲ ဆောက်ခဲ့တဲ့ DB cluster instance ဘဲ ဖြစ်ပါတယ်။
Cluster endpoint ကို လဲ RDS DB instance ရဲ့ cluster endpoint အဖြစ်အသုံးပြုပါတယ်။
ကျေးဇူးတင်ပါတယ်။

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” ကနေ မ%

Hosting a WordPress Blog with Amazon Linux

အရင်တစ်ခါက ရေးသားခဲ့တဲ့ ပိုစ့်တွေဟာဆိုရင် Amazon Linux နဲ့ EC2 instance တစ်ခုဆောက်ခဲ့တဲ့  ဆိုတဲ့ပိုစ့်ကိုရေးသားခဲ့ပြီးနောက် Launch လုပ်ခဲ့တဲ့ EC2 ကို LAMP installation လုပ်ခဲ့တဲ့ tutorial ကိုလဲ ရေးသားခဲ့ပြီးပါပြီ။အကယ်လို့မလေ့လာရသေးဘူးဆိုရင် အောက်ပါလင့်မှာ သွားရောက်လေ့လာနိုင်ပါတယ်။

  • EC2 instance ကို Launch လုပ်ခြင်း                                                                                      How To Launch EC2 Instance ? 
  • Launch လုပ်ခဲ့တဲ့ EC2 ပေါ်မှာ LAMP server ကို setup လုပ်ခြင်း                                    How to set up EC2 as LAMP system ?

ခုဒီတစ်ခါမှာတော့ အပေါ်က tutorial တွေအပြင် Amazon Linux instance ပေါ်မှာ WordPress blog တစ်ခုကို ဘယ်လို config လုပ်ရမလဲဆိုတာကို ဆက်လက်လေ့လာကြရမှာ ဖြစ်ပါတယ်။ ဒီ tutorial ဟာဆိုရင် Amazon EC2 ကို အသုံးပြုပြီးတော့ မိမိ၏ WordPress blog တစ်ခု Host လုပ်ခြင်းကို web server တစ်ခုကနေ အပြည့်အဝ control လုပ်နိုင်တယ်ဆိုတဲ့ အရာကို လေ့လာရမှာဖြစ်ပါတယ်။ ပုံမှန် hosting service တွေနဲ့တော့တူမှာ မဟုတ်ပါဘူး။

ကြိုတင်ပြင်ဆင်ချက်

  • Amazon Linux instance ကို Launch လုပ်ထားရပါမယ်။
  • Launch လုပ်ခဲ့တဲ့ instance ပေါ်မှာ PHP/database(MySQL or MariaDB) function တွေ install လုပ်ခဲ့တဲ့ webserver လဲ ရှိနေရပါမယ်။
  • Instance ၏ security group မှာ HTTP/HTTPS traffic တွေကို allow လုပ်ဖို့ရန်တွက် Security group ရဲ့ Rules မှာ ရှိမရှိ စစ်ဆေးပါ။
  • WordPress blog ကို host လုပ်မှာဖြစ်တဲ့အတွက် EIP address ကို ချိတ်ထားဖို့တော့ recommend လုပ်ချင်ပါတယ်။ ဘာလို့ဆို Instance ရဲ့ Public DNS address တွေ changing ဖြစ်သွားတာမျိုး breaking ဖြစ်နိုင်တဲ့ အခြေနေ မှ ကာကွယ်နိုင်ဖို့ရန်ဘဲ ဖြစ်ပါတယ်။

WordPress ကို Install လုပ်ခြင်း

Step (1) Wordpress installation package ကို download/unzip လုပ်ခြင်း

  • latest ဖြစ်တဲ့ WordPress installation package ကို wget command ကို အသုံးပြုပြီး Download လုပ်ပါမယ်။

  • Installation package ကို Unzip / Unarchive လုပ်ရမှာ ဖြစ်ပါတယ်။ Installation folder ကို unzip လုပ်ခဲ့တဲ့ folder ဟာဆိုရင် wordpress folder တစ်ခုဘဲဖြစ်ပါတယ်။

Step (2) Installation လုပ်ခဲ့တဲ့ WordPress အတွက် database နဲ့ database user တစ်ခု Create လုပ်ခြင်း

  • Installation လုပ်ခဲ့တဲ့ WordPress ဟာဆိုရင် information တွေကို သိမ်းဆည်းဖို့လိုပါတယ်။ (eg. blog posts,user comments တွေကို database မှာ သိမ်းဆည်းခြင်းဖြစ်ပါတယ်။)
  • database ဆောက်ဖို့တွက် database server ကို စတင် run ရပါမယ်။

  • database server ကို Edit လုပ်ဖို့ဆိုရင် EC2-user account နဲ့ လုပ်ရင် permission denied ဖြစ်ပါလိမ့်မယ်။
  • database server ကို root account သာလျှင် Edit နိုင်မှာ ဖြစ်ပါတယ်။
  • root user အနေဖြင့် database server ကို log in ဝင်ရပါမယ်။
  • login ဝင်ဖို့ရန် database root password ကို ရိုက်ထည့်လိုက်ပါ။

  • MySQL database အတွက် username/password ကို Create လုပ်ပါမယ်။
  • Installation လုပ်ခဲ့တဲ့ WordPress ဟာဆိုရင် MySQL database နဲ့ communicate လုပ်မှာဖြစ်တဲ့အတွက်ဖြစ်ပါတယ်။
  • အောက်ဖော်ပြပါ command မှာဆိုရင် wordpress-user/your_strong_password နေရာမှာ မိမိဆောက်မဲ့ database ရဲ့ username/password ကို ထည့်ပါ။

Note: (1)user တွက် password ကို strong password မျိုးပေးရပါမယ်။secure ပိုင်းလုံခြုံမှုရှိဖို့ရန်ဖြစ်ပါတယ်။ (2) password မှာ single quote character ( ‘ ) တွေအသုံးပြုလို့မရပါဘူး။ ဘာလို့ဆို command processing ကို break ဖြစ်စေတဲ့အတွက်ကြောင့်ဖြစ်ပါတယ်။

  • Database ကို create လုပ်ပါမယ်။

                                                                               Note: db name ပေးတဲ့အခါမှာ ပြီးပြည့်စုံပြီး အဓိပ္ပာယ်ရှိတဲ့ name မျိုးပေးသင့်ပါတယ်။(ဥပမာ wordpress တွက် database ကို ဆောက်မှာဖြစ်တဲ့အတွက် wordpress-db ဆိုတဲ့ name ပုံစံမျိုးပေးသင့်ပါတယ်။)

  • စောနက create လုပ်ခဲ့တဲ့ WordPress user ကို database ကို full privileges ပေးထားရပါမယ်။ သို့မှသာ WordPress blog က database ကို အသုံးပြုနိုင်မှာဖြစ်ပါတယ်။

  • ပြောင်းလဲမှုအကုန်ကို Pick up လုပ်ဖို့ရန် database privileges ကို Flush လုပ်ရပါမယ်။

  • mysql database ကို ဆောက်ပြီးပြီ ဖြစ်တဲ့ အတွက်ကြောင့် mysql client ကနေ ထွက်လိုက်ပါ။

Step (3) Wordpress blog ရဲ့ wp-config.php file ကို ပွောငျးလဲပွငျဆငျခွငျး

  • WordPress installation folder မှာ  sample configuration file က wp-config-sample.php အနေနဲ့ ပါဝင်ပါတယ်။
  • sample config file ကို copy ယူပြီး မိမိ setup လုပ်ခဲ့တဲ့ data ကို ထည့်သွင်းရမှာ ဖြစ်ပါတယ်။
  • wp-config-sample.php file ကို copy လုပ်ပြီး file name ကို wp-config.php လို့ ပေးလိုက်ပါ။ ဘာလို့ဆို wordpress က wp-config.php ကိုနဲ့သာ connect လုပ်မှာဖြစ်တဲ့အတွက်ဖြစ်ပါတယ်။

       Note: config file ကို အသစ် create လုပ်လိုက်ပေမဲ့ sample file data တွေကတော့ keep ဖြစ်နေမှာပါ။

  • wp-config.php file ကို Edit လုပ်ဖို့တွက် text editor (nano or vim) တွေကို အသုံးပြုရမှာဖြစ်ပါတယ်။

                                                                  Note: nano text editor ကတော့ အသုံးပြုရတာ ပိုပြီး suitable ဖြစ်ပါတယ်။

  • “defines DB_NAME” line ကို ရှာပြီး “database_name_here” နေရာမှာ Step(2) မှာ Create လုပ်ခဲ့တဲ့ DB name ကို ထည့်ရမှာဖြစ်ပါတယ်။

  • “defines DB_USER” နဲ့ “defines DB_PASSWORD” lines ကိုရှာပါ။ပြီးရင် “username_here to the database user” နဲ့ “password_here to the database user”နေရာမှာလဲ database server မှာ မိမိ create လုပ်ခဲ့တဲ့ username နဲ့ password ကို ထည့်သွင်းရမှာ ဖြစ်ပါတယ်။သို့မှသာ db server ကို connect လုပ်နိုင်မှာ ဖြစ်ပါတယ်။

  • “Authentication Unique Keys and Salts” section ကိုရှာပါ။ KEY နဲ့ SALT values တွေက WordPress users တွေက local machines မှာ store လုပ်တဲ့အခါ မှာ browser cookies ရဲ့ encryption layer ကို provide လုပ်ပေးပါတယ်။ မိမိ siteကို ပိုပြီး secure ဖြစ်စေပါတယ်။
define('AUTH_KEY',         ' #U$$+[RXN8:b^-L 0(WU_+ c+WFkI~c]o]-bHw+)/Aj[wTwSiZ<Qb[mghEXcRh-'); define('SECURE_AUTH_KEY', 'Zsz._P=l/|y.Lq)XjlkwS1y5NJ76E6EJ.AV0pCKZZB,*~*r ?6OP$eJT@;+(ndLg'); define('LOGGED_IN_KEY', 'ju}qwre3V*+8f_zOWf?{LlGsQ]Ye@2Jh^,8x>)Y |;(^[Iw]Pi+LG#A4R?7N`YB3'); define('NONCE_KEY', 'P(g62HeZxEes|LnI^i=H,[XwK9I&[2s|:?0N}VJM%?;v2v]v+;+^9eXUahg@::Cj'); define('AUTH_SALT', 'C$DpB4Hj[JK:?{ql`sRVa:{:7yShy(9A@5wg+`JJVb1fk%_-Bx*M4(qc[Qg%JT!h'); define('SECURE_AUTH_SALT', 'd!uRu#}+q#{f$Z?Z9uFPG.${+S{n~1M&%@~gL>U>NV<zpD-@2-Es7Q1O-bp28EKv'); define('LOGGED_IN_SALT', ';j{00P*owZf)kVD+FVLn-~ >.|Y%Ug4#I^*LVd9QeZ^&XmK|e(76miC+&W&+^0P/'); define('NONCE_SALT', '-97r*V/cgxLmp?Zy4zUU4r99QQ_rGs2LTd%P;|_e1tS)8_B/,.6[=UK<J_y9?JWG');

Note: အထက်ဖော်ပြပါ key/salt values တွေက example ဖြစ်တဲ့အတွက် installation တွင် အသုံးမပြုရပါ။

မိမိ site ကို ပိုမို secure ဖြစ်စေဖို့ တွက် အောက်ပါ လင့်ကို သွားပြီး ရရှိလာတဲ့ ramdom values ကိုသာ ထည့်သွင်းရမှာ ဖြစ်ပါတယ်။https://api.wordpress.org/secret-key/1.1/salt/

  • ထို့နောက်မှာတော့ text editor file ကို save ပြီး exit လုပ်ပါ။

Step (4) Wordpress files များကို Apache document root အောက်သို့ ပြောင်းရွေ့ခြင်း

  • unzip လုပ်ခဲ့တဲ့ installation folder နဲ့ create လုပ်ခဲ့တဲ့ MySQL database နှင့် user တွေအပြင် customized လုပ်ခဲ့တဲ့ wordpress config file တွေကို ကူးယူပြီး web server document root အောက်မှာ သွားထည့်ပါမယ်။

  • Apache web server မှာ ပြောင်းလဲမှုအားလုံးကို pick up လုပ်တဲ့အနေနဲ့ Restart လုပ်ပေးရမှာ ဖြစ်ပါတယ်။

Step (5) Wordpress installation ရဲ့ script process ကို စစ်ဆေးခြင်း

  • chkconfig command ကို အသုံးပြုပြီး httpd နဲ့ database service တွေအားလုံးကို system boot တိုင်းမှာ start လုပ်ခြင်းဖြင့် software packages များရဲ့ လုပ်ဆောင်ချက်များကိုသိနိုင်ပါတယ်။

  • database server ကို running ဖြစ်မဖြစ် စစ်ဆေးရပါမယ်။

  • အကယ်လို့ running မဖြစ်ရင် mysql database ကို start လုပ်ပေးရပါမယ်။

  • Apache web server (httpd) ကို running ဖြစ်မဖြစ် စစ်ဆေးရပါမယ်။

  • အကယ်လို့  httpd service running မဖြစ်ရင် httpd ကို start လုပ်ပေးရပါမယ်။

  • web browser ထဲမှာ WordPress blog(instance ၏ the public DNS address) ရဲ့ URL ကို ထည့်သွင်းလိုက်ပါ။ WordPress installation screen ကို တွေ့မြင်ရမှာ ဖြစ်ပါတယ်။

  • URL Link ဟာ wordpress ရဲ့ config setup သို့ရောက်သွားမှာ ဖြစ်ပါတယ်။

                                                                                 Note : အထက်ပါပုံအတိုင်းတွေ့ရရင်တော့ English (United States) ကို ရွေးပြီး ဆက်သွားပါမယ်။

             Note : အထက်ပါ အချက်များဟာဆိုရင် Step(2) နဲ့ Step (3) များ ထည့်သွင်းထားတဲ့အချက်များပင်ဖြစ်ပါတယ်။ အချက်အလက်များမှန်ကန်ပါက အောက်ကပုံအတိုင်းတွေ့မြင်ရမှာဖြစ်ပါတယ်။

Note : မိမိ WordPress Blog တွက် Site title /username/Email တို့ကို ဖြည့်သွင်းပြီးရင် Install WordPress လုပ်ပါ။ ဒီနေရာမှာ Password က auto generate လုပ်ပေးပါလိမ့်မယ်။

            Note : Wordpress installed လုပ်ပြီးပြီ ဖြစ်ကြောင်းအထက်ပါ အတိုင်းတွေ့ရပြီ ဆိုရင်တော့ WordPress ကို login ဝင်လို့ရပါပြီ။

ခုဆိုရင် EC2 instance ရဲ့ LAMP server မှာ WordPress ကို host လုပ်ခြင်းအောင်မြင်ပါပြီ။

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

 

 

 

How to set up EC2 as LAMP system ?

Amazon Linux AMI မှာ LAMP Web Server ကို INSTALL လုပ်နည်း

EC2 instance ကို Amazon Linux instance ဆောက်ခဲ့တဲ့ tutorial ကိုလဲ ရေးခဲ့ပြီးပါပြီ။အကယ်လို့ မဖတ်ရသေးရင်  ေအာက္ပါလင့္  မှာ တစ်ဆင့် သွားရောက်လေ့လာနိုင်ပါတယ်။

ခု လေ့လာရမဲ့ အပိုင်းကတော့ PHP/MySQL နဲ့အတူ Apache web server တစ်ခုကို Amazon Linux instance ပေါ်မှာ install လုပ်ခြင်းကို LAMP web server သို့ LAMP stack လုပ်ခြငး်လို့ ခေါ်ပါတယ်။ အဲ့သည့် server ကို အသုံးပြုပြီး static website တစ်ခုကို host လုပ်နိုင်သလို ဒါမှမဟုတ် dynamic PHP application တစ်ခုကို deploy လုပ်နိုင်ပါတယ် ။ အဲ့သည့် processing တွေကို build in ပါရှိတဲ့ database ဆီမှာ Information တွေကို read/write တွေလဲ လုပ်လို့ရပါတယ်။

ကြိုတင်ပြင်ဆင်ချက်

LAMP server မဆောက်ခင်မှာ အရင်ဆုံး မိမိရဲ့ instance ကို စစ်ဖို့လိုပါတယ်။

ဘယ်အချက်တွေ ရှိရမလဲ ?

  • မိမိရဲ့ EC2 instance ရဲ့ security group မှာ SSH (port 22), HTTP (port 80), and HTTPS (port 443) connections တွေကို allow လုပ်ထားလား ? ဆိုတာကို စစ်ဆေးရပါမယ်။ OK ပြီဆိုရင်တော့ အောက်ကတစ်ဆင့်ကို ဆက်သွားရအောင်…..

Amazon Linux AMI နဲ့အတူ LAMP web server ကို INSTALL လုပ်ခြင်း

Step (1) အရင်ဆုံး Instance နဲ့ ချိတ်ဆက်ခြင်း

  • Instance ရဲ့ Linux console ထဲကို Window OS ကနေဝင်ဖို့ကို ကြားခံအနေနဲ႔ putty software ကို အသုံးပြုမှာ ဖြစ်ပါတယ်။
  • instance  (.pem) file ကို (.ppk) file type သို့ပြောင်းလဲရပါမယ်။ file type ပြောင်းဖို့တွက်  puttygen.exe ကို အသူံးပြုရမှာ ဖြစ်ပါတယ်။
  • Instance ရဲ့ Public DNS (IPv4) က address နဲ႔ instance ၏ (.ppk) file တို့နှင့်အတူ Linux console ကို ဝင်ရမှာဖြစ်ပါတယ်။
  • Login user တောင်းတဲ့အခါမှာ ec2-user လို့ ရိုက်ထည့်လိုက်ပါ။

Step (2) Instance ကို software update

  • Instance မွာ server ကို install မလုပ်ခင်မှာ မိမိ instance ၏ software packages အားလုံးကို up to date ဖြစ်ရန် အတွက် ဘဲဖြစ်ပါတယ်။
  •  ဖော်ပြပါ command ကို အသုံးပြုပြီး update  လုပ်ပါ။

Step (3) Apache webserver/MySQL/PHP software ကို INSTALL လုပ်ခြင်း

  • တစ်ပြိုင်နက်တည်း software packages ေတွေနဲ့ သက်ဆိုင်ရာ dependencies တွေအားလုံးကို INSTALL လုပ်ဖို့အတွက် yum install ကို command အသုံးပြုရမှာဖြစ်ပါတယ်။

Step (4) Apache web server ကို စတင် ခြင်း

  • Apache server ကို Install လုပ်ပြီးတဲ့အခါမှာတော့ ထို server ကို စတင္ run ဖို့ရန် အတွက် start လုပ်ပေးရပါတယ်။

Step (5) Apache server ရဲ႔ system boot တစ်ခုခြင်းစီတွက် configure လုပ်ခြင်း

  • chkconfig command ကို အသုံးပြုပြီး system boot တစ်ခုခြင်းစီတိုင်းမှာ Apache web server ကို config လုပ်ရမှာဖြစ်ပါတယ်။

  • server running ဖြစ်လား မဖြစ်လား ဆိုတာကို အောက်ပါပုံအတိုင်းဖြစ်နေလား ဆိုတာကို စစ်ဆေးပါ။

  • httpd ရဲ့ runlevels 2,3,4,5 မှာ on ဖြစ်နေတာကိုမြင်တွေ့ရမှာပါ။

Step (6) Web Server ကို စစ်ဆေးခြင်း

  • Web browser ထဲမှာ instance ၏ public DNS address (the public IP address) ကို စမ်းရမှာဖြစ်ပါတယ်။လောလောဆယ်မှာ content directory ထဲမှာ content မရှိသေးတဲ့အတွက် အောက်ပါပုံအတိုင်းတွေ့မြင်ရမှာပါ။

Step (7) File Permissions ပေးခြင်း

  • Apache group directory (/var/www) ထဲမှာ ec2-user account အနေနဲ့ group ကို ownership ကော write permission ကော ပေးဖို့ရန် လိုပါတယ်။
  • Apache group ကို ec2-user account ကို ပေါင်းထည့်ရမှာပါ။

  • exit command ကို အသုံးပြုပြီး terminal window ကို ပိတ်လိုက်ပါမယ်။

  • Apache group ထဲမှာ စောနက add ခဲ့တဲ့ ec2-user ၏ membership ရှိမရှိကို  groups command ကို အသုံးပြုပြီး စစ်ဆေးရပါမယ်။အောက်ဖော်ပြပါ ပုံအတိုင်းဖြစ်ရင် apache group မှာ ec2-user အနေနဲ့ membership ဖြစ်သွားကြောင်းသိနိုင်ပါတယ်။

  • apache group (/var/www) ရဲ့ contents  တွေကိုလဲ group ownership ပြောင်းလဲပေးရမှာဖြစ်ပါတယ်။

  • ထပ်ပြီး group ကို write permission ပေးဖို့ရန် လိုပါတယ်။ group (/var/www) directory နဲ့ subdirectories တွေကို ပြောင်းလဲပေးရပါမယ်။

  • ခုဆိုရင် ec2-user apache group ကနေ Apache document root အောက်မှာ ရှိတဲ့ files တွေကို add/delete/edit လုပ်နိုင်သလို static website/PHP application တွေလိုမျိုး content အသစ်တွေ ထပ်ပေါင်းထည့်နိုင်ပါတယ်။

Step (8)  LAMP web server ကို စစ်ဆေးခြင်း

  • install လုပ်ခဲ့ပြီး running ဖြစ်နေတဲ့ server ဟာ file permissions တွေထည့်သွင်းခြင်းလဲ မှန်ကန်နေရင် ec2-user account ကနေ /var/www/html directory ထဲမှာ PHP file တစ်ခုကို create လုပ်လိုက်ပါ။

Note: “permission denied” ဖြစ်နေခဲ့ရင်တော့ logout ပြန်ထွက်ပြီး group permission ကို ပြန်ပြီး ထည့်ပါ။

  • web browser ထဲမှာ instance ရဲ့ public DNS address နှင့် create လုပ်ခဲ့တဲ့ phpinfo.php ဆိုတဲ့ file name ကို URL မှာ ထည့်ပြီး run လိုက်ပါ။

  • URL active ဖြစ်တာကို အောက်ပါအတိုင်းတွေ့ရမှာပါ။

  • create လုပ်ခဲ့တဲ့ phpinfo.php file ကို ပြန်ဖျက်ဖို့ရန်လိုပါတယ်။ဘာလို့ဆို security ကြောင့်ဖြစ်ပါတယ်။တကယ်လို့သာ မဖျက်မိရင် မိမိ ရဲ့ page demand ဖြစ်နိုင်ပါတယ်။

Step (9) Database server ကို လုံခြုံစိတ်ချစေခြင်း

  • MySQL server ၏ default installation မှာ test/development လုပ်ဖို့အတွက် several features တွေရှိပါတယ်။ ဒါပေမဲ့ production server တွေတွက်တော့ disable/remove လုပ်သင့်ပါတယ်။ mysql_secure_installation command ဟာဆိုရင် root password ကို setup လုပ်ပြီး installation မှ insecure features ကို remove လုပ်လိုက်မှာဖြစ်ပါတယ်။ MySQL server ကို အသုံးမပြုရင်တောင်မှ secure installation ကိုတော့ run ထားသင့်ပါတယ်။
  •  MySQL server service ကို စတင် run ပါမယ်။

  • mysql_secure_installation ကို run ပါမယ်။

  • root account တြက္ password ပေးရပါမယ်။
  1. လက်ရှိ password ကိုရိုက်ထည့်ပါ။ default အနေနဲ့ root account မှာ password မရှိတဲ့အတွက်ကြောင့် Enter ကိုနှိပ်ပါ။
  2. “Set a password” ဆို Y ကို နှိပ်ပါ။ပြီးရင် secure password ကို ၂ကြိမ် ရိုက်ထည့်ပါ။
    “Remove the anonymous user accounts” ဆို Y ကို နှိပ်ပါ။ တခြား unknown account တွေကို ဖယ်ရှားပစ်ချင်တဲ့ အတွက်ကြောင့် ဖြစ်ပါတယ်။
  3. “Disable the remote root login” ဆို Y ကို နှိပ်ပါ။
  4. “Remove the test database” ဆို Y ကို နှိပ်ပါ။ အရင် က database ကိုဖျက်ပစ်ဖို့အတွက်ဖြစ်ပါတယ်။
  5. “Reload the privilege tables and save your changes” ဆို Y ကို နှိပ်ပါ။အပေါ်မှာချိန်းခဲ့သမျှကို save လုပ်ဖို့အတွက် ဖြစ်ပါတယ်။
  • (Optional) MySQL server ကို အသုံးပြုဖို့ရန် မရှိရင် server ကို stop လုပ်နိုင်သလို restart လုပ်နိုင်ပါတယ်။

  • (Optional)  MySQL server ကို boot တိုင်းမှာ start ပြန်လုပ်မယ်ဆိုရင် အောက်ပါ command ကို အသုံးပြုနိုင်ပါတယ်။

ခုဆိုရင် ပြီးပြည့်စုံတဲ့ LAMP web server တစ်ခုကို ရရှိပြီဖြစ်ပါတယ်။ Apache document root (/var/www/html) မှာ instance အတွက် public DNS address မှာ content တွေကိုလဲထပ်ပေါင်းထည့်နိုင်ပါတယ်။

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

Rebooting vs Stop/Start of Amazon EC2 Instance

AWS account တစ်ခု create လုပ်ပြီးရင် EC2 တွေဆောက်မယ် ကိုယ့်ရဲ့ app တွေ run မယ်ပေါ့ ။ ဒီနေရာမှာ အရင် ပိုစ့် တုန်းက EC2 instance type တွေ change တုန်းက အကြောင်းကို ပြောချင်ပါတယ်။ အဲ့တုန်းက Instance ကို stop လုပ်လို့ DNS link / EIP အစရှိသဖြင့် changes ဖြစ်သွားခြင်း နဲ့ ပတ်သက်ပြီးပြောခဲ့ပါတယ်။ user တို့ သိထားသင့်တဲ့ EC2 instance type ကို Stop / Start / Reboot / Terminate ဆိုတဲ့ action 4 မျိုးရှိပါတဲ့ အထဲကမှ Terminate ဆိုတဲ့ action ကတော့ user တို့ ရဲ့ create လုပ်ခဲ့ တဲ့ instance ကို အသုံးမလိုတော့ရင်  terminate လုပ်ခြင်းဖြင့် instance ကို delete လုပ်လိုက်ခြင်းဘဲဖြစ်ပါတယ် (မလိုအပ်ပဲ ငွေကြေးကုန်ကျခြင်းမှ တားဆီးပေးပါတယ်)။ user တို့ကို ထင်ယောင် ထင်မှားဖြစ်စေမဲ့ အရာကတော့ Stop နဲ့ Reboot ဆိုတဲ့ အရာဘဲဖြစ်ပါတယ်။ Stop လုပ်ခဲ့တဲ့ instance ကို Start ပြန်လုပ်နိုင်သလို Reboot ဆိုတဲ့ အရာကလဲ ကလဲ ထိုနည်းတူစွာဘဲ ဆိုပေမဲ့ ကွဲပြားခြားနားချက်များစွာ ရှိပါတယ်။ ဘယ်လိုတွေကွဲပြားတာလဲ?

ဥပမာ မိမိ computer ကို reboot လုပ်လိုက်တယ်ပေါ့ ဒါဟာ သာမန်အတိုင်း system ကို shutting down လုပ်ပြီး backup အနေနဲ့ boot ပြန်လုပ်တယ်ပေါ့။

Reboot Action

Amazon EC2 ကတော့ instance ကို rebooting လုပ်ရင်ဖြင့် ခုနက အပေါ်မှာ ပြောခဲ့တဲ့ computer ကို reboot လုပ်တဲ့ process way က အတူတူပါဘဲ။Instance တစ်ခုလုံးကို restart လုပ်ပြီး boot လုပ်တဲ့ အတွက် instance မှာ changes ဖြစ်တာမျိုးမရှိပါဘူး ။ဒါကတော့ reboot ပိုင်းပေါ့။

Stop/Start Action

Stop/Start process တွေကျတော့  reboot process နဲ့ လုံးဝကို ကွဲပြားသွားပါပြီ။ instance ကို Stop/Start လုပ်လိုက်ခြင်းကြောင့် မလိုလားအပ်တဲ့ cause effect တွေသက်ရောက်နိုင်ပါတယ်။

EC2 instance ရဲ့ storage ဖြစ်တဲ့ EBS volume ပေါ်မှာ server တွေ run ထားမယ်ပေါ့။ အဲ့ server တွေ running လုပ်နေတဲ့ instance ကို stop လုပ်လိုက်ရင် user တို့ ရဲ့ EBS volume မှာတော့ storage ကတော့ ရှိနေပေမဲ့ သူရဲ့ instance id ရဲ့ virtual server ဟာဆိုရင် running မလုပ်နိုင်တော့ပါဘူး။

Instance ကို ပြန်ပြီး စတင်ဖို့ Start လုပ်တဲ့အခါ အရင်ကရှိတဲ့ EBS volume ကိုထပ်ပြီး boot up လုပ်ပြီး running လုပ်မှာပါ ။ Stop လုပ်ထားတဲ့ instance ကို Start ပြန်လုပ်မယ်ဆို ဘယ်အရာတွေ ပြောင်းလဲသွားမလဲ ?

  • EC2 မှာ random IP address အသစ်တစ်ခု ဖြစ်သွားမှာ ဖြစ်ပါတယ်။                                  ( Note : instances ရဲ့ VPC ကတော့ ပြောင်းလဲမှုမရှိပါဘူး )
  • Instance ကို stop မလုပ်ခင် Elastic IP address နဲ့သာ connect လုပ်ထားမယ်ဆိုရင် instance ကို start ပြန်လုပ်တဲ့ အခါမှာ ပြန်ပြီး EIP ကို connect လုပ်ဖို့လိုပါတယ်။          (Note : VPC instance ဟာဆိုရင် stop/start တိုင်း connect လုပ်ခဲ့တဲ့ Elastic IP addresses ကို keep လုပ်ထားပါတယ်)
  • အရင် instance ကို ပြန်လည်သုံးစွဲလို့ မရတော့ပါဘူး။ အသစ် storage တစ်ခုအနေနဲ့သာ instance ကို run မှာဖြစ်ပါတယ်။
  • instance stopped လုပ်ထားချိန်မှာ ကိုယ့်စိတ်ကြိုက်ပြောင်းလဲ ပြင်ဆင်နိုင်ပါတယ်။အဲ့အချိန်မှာဆိုရင် instance သုံးစွဲမှုကို charges ပေးစရာမလိုပါဘူး။ဒါပေမဲ့ EBS volume storage မှာသိမ်းဆည်းထားတဲ့ amount တွက်တော့ ပေးဆောင်ရမှာ ဖြစ်ပါတယ်။
  • instance ကို ပြန်ပြီး start လုပ်တဲ့အခါမှာတော့ billing hour နဲ့ စတင် ပေးဆောင်ရမှာ ဖြစ်ပါတယ်။ ဥပမာ instance အသစ်တစ်ခုကို start လုပ်ပြီး ပထမ မိနစ် 60 အတွင်း stop/start လုပ်တဲ့ အကြိမ် ၃ကြိမ် ဖြစ်သွားမယ်ဆိုရင် instance ၁ခု၏ 4hr စာ ပေးဆောင်ရမှာ ဖြစ်ပါတယ်။
  • Instance ကို ပြန်ပြီး start လုပ်ချိန်မှာ EC2 က slot နှစ်ခု ကို run ဖို့ ဆိုတာကတော့ ဖြစ်နိုင်ခြေနညး်ပါတယ်။ ပြန်ပြီး running လုပ်လိုက်တဲ့ instance ဟာ ယာယီပြောင်းလဲမှုများ ရှိပါတယ်။
အကျဉ်းချုပ်

Instance ကို Reboot လုပ်လိုက်ချိန်မှာ ပုံမှန် OS ကို reboot လုပ်လိုက်ခြင်းဘဲ ဖြစ်ပါတယ်။ အဲ့ဒါကြောင့် instance ဟာ hardware ပိုင်းကော private/public IP address ကော ပြောင်းလဲမှုမရှိပါဘူး။ EIP နဲ့ ချိတ်ထားမယ်ဆိုရင်လဲ အရင် EIP အတိုင်းရှိနေမှာပါ။ Storage ပိုင်းလဲ ပြောင်းလဲမရှိပါဘူး။ Reboot လုပ်ပြီး Instance running ဖြစ်ရင် billing hour က stop/start လုပ်သလိုလဲ အသစ်တဖန် ပြောင်းလဲမှု မရှိနိုင်ပါ။

Instance ကို stopped လုပ်နေစဉ် မိမိရဲ့ instance ကို ပြောင်းလဲ ပြင်ဆင်နိုင်ပါတယ်။ ဘယ်လိုပြောင်းလဲ ပြင်ဆင်ရမလဲ ဆိုတာ ကိုလဲ အရင် artical ရဲ့ link ကိုအောက်မှာဖော်ပြထားပါတယ်။ How to change the instance type from Smaller to Higher ?

Warning: “Stopping” လုပ်ခြင်းဟာ Instance ကို “terminating” လုပ်တာနဲ့ မတူပါဘူး။EC2 instance ကို terminate လုပ်လိုက်တဲ့အခါ EC2 ထဲမှာ run ထားတဲ့ အရာတွေအပြင် EBS volumes တွေပါအကုန် delete လုပ်လိုက်ခြင်းဖြစ်ပါတယ်။ ဒါကိုလဲ ကွဲပြားစွာနားလည်သင့်ပါတယ်။

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

How to change the instance type from Smaller to Higher ?

ခု လုပ်မဲ့ article ဟာဆိုရင် မိမိ တို့ ec2 နဲ့ instance တစ်ခုကို အရင် launching လုပ်ခဲ့ ပြီးသူများအနေနဲ့ အကယ်လို့ မိမိတို့ ec2 instance မှာ app တွေအများကြီး run ထားမယ်ဆိုပါစို့။ အဲ့သလိုဆိုရင် မိမိတို့ ec2 instance type ရဲ့ CPU / Memory limit ကို ကျော်နေပြီ RUN ရတာလဲ နှေးလာပြီ။ အဲ့ဒါဆိုရင် Type ထပ်တိုးဖို့လိုလာပြီ။ဘယ်လိုတိုးရမလဲ ???

​အောက်ပါပုံ ကတော့ Instance type-t2.micro ကို အသုံးပြုထားတဲ့ EC2 ဖြစ်ပါတယ်။

How to change instance type?

Step1. Instance ကိုတိုးဖို့ကို Instance Setting > Change Instance Type ကနေပြောင်းရမှာပါ။ အောက်မှာပြထားတဲ့ပုံမှာဆိုရင် လုပ်လို့မရတာကို တွေ့ရမှာပါ။

  • အရင်ဆုံး change မလုပ်ခင် မိမိတို့ run ထားတဲ့ EC2 ကို အရင် stop ထားရပါမယ်။

  • Stop ဆိုတဲ့ button ကို နှိပ်ပြီး မိမိတို့ရဲ့ running instance ကို ပိတ်လိုက်ပါ။

  • Instance State က stopping လုပ်နေတာကို မြင်တွေ့ရမှာပါ။

  • ခုဆိုရင် Instance Type-t2.micro /Instance State-Stopped ဖြစ်နေပြီး Public IP active မဖြစ်တော့တာကိုလဲ တွေ့မြင်ရမှာပါ။

Step2. Instance Type ကိုချိန်းပါမယ်။ Instance Setting> Change Instance Type ကို ရွေးလိုက်ပါ။

  • ခုအသုံးပြုနေတဲ့ t2.micro ကနေ CPU/Memory ပိုများတဲ့ Instance type ကို ပြောင်းဖို့ကို ဘေးက up/down arrow ကို နှိပ်လိုက်ပါ။

  • Instance type-m3.medium ကိုတိုးလိုက်ပါမယ်။မိမိလိုအပ်တဲ့ space/time ပေါ်မူတည်ပြီးရွေးချယ်နိုင်ပါတယ်။ ဒီနေရာမှာ time ဆိုတဲ့အရာကို ရှင်းပြချင်ပါတယ်။ မိမိလိုအပ်တာ ၁နာရီနဲ့ Load 100 လောက်ပြီးချင်တာလား ? ဒါမှမဟုတ် ၂နာရီ နဲ့ Load 100 ပြီးမှာလား ? ဆိုတာ user ရဲ့ လိုအပ်ချက်ပေါ်မူတည်ပြီးကွဲပြားပါတယ်။

  • အောက်ပါပုံဟာဆိုရင် မိမိ ရွေးချယ်တဲ့ instance type ကို တွေ့ရမှာပါ။ပြီးရင် အသုံးပြုဖို့ confirm ဖြစ်ပြီဆိုရင် Apply button ကို နှိပ်ပြီး ဆက်သွားပါမယ်။

  • ခုဆိို တိုးလိုက်တဲ့ instance type ဟာ stopped အနေနဲ့ရှိနေပါပြီ။

Step3. ဒီအဆင့်ကတော့ တိုးခဲ့တဲ့ instance ကို stopped အခြေနေကနေ Active လုပ်တဲ့ အဆင့်ဘဲဖြစ်ပါတယ်။

  • Instance ကို Start လုပ်မှာ confirm ဖြစ်တာကြောင့် Yes,Start ကို နှိပ်လိုက်ပါမယ်။ အကယ်လို့ ထပ်ပြောင်းမယ်ဆိုရင် Cancel နှိပ်ပြီး ပြင်ဆင်လို့ရပါတယ်။

  • Instance ဟာဆိုရင် Pending State မှာရှိတာကို တွေ့ရမှာပါ။

  • တိုးလိုက်တဲ့ Instance ဟာဆိုရင် Running State အခြေနေမှာရှိပြီး Public IP ဟာဆိုရင် Changes ဖြစ်နေတာကိုတွေ့မြင်ရမှာပါ။ဒီနေရာမှာဆိုရင် လူကြီးမင်းတို့အနေနဲ့ မေးစရာရှိလာပါပြီ။အရင် EC2 ကို Launching လုပ်တဲ့ article မှာဆိုရင် EIP နဲ့ Instance ကိုချိတ်ခဲ့ပါတယ်။ EIP ထားခြင်းဖြစ် IP changes တဲ့ event ဖြစ်ခြင်းမှ မိမိရဲ့ webserver link ကို protect လုပ်နိုင်ပါတယ်။

Step4. အပေါ်က အဆင့်ထိကတော့ instance ကို upgrade လုပ်ခဲ့တာဘဲဖြစ်ပါတယ်။ ကိုယ့် instance ဟာ အပေါ်မှာတိုးခဲ့တဲ့ Space အများကြီးသုံးဖို့မလိုတော့ရင် ပုံမှန် EC2 (free tier state) ကို ပြန်ချိန်းဖို့လိုပါတယ်။ဘာလို့ဆို user အနေနဲ့ Charges အများကြီးမကုန်ဖို့ရန်ဘဲဖြစ်ပါတယ်။

  • အရင် t2.micro (free of charges) ကို ပြန်ပြောင်းဖို့ဆိုရင် အပေါ်မှာပြောခဲ့တဲ့ အတိုငး် အရင်ဆုံး instance state ကို stop လုပ်မှသာ instance type ကိုပြောင်းနိုင်မှာဖြစ်ပါတယ်။

  • Instance ကို Stop လုပ်မှာဖြစ်တဲ့ အတွက် Yes,Stop ကို နှိပ်ပါမယ်။

  • အောက်ပါပုံဟာဆိုရင် Instance State ကို Stop လုပ်တာ Pending state ဖြစ်တာကိုတွေ့ရမှာပါ။

  • အောက်ကပုံအတိုင်း Instance State ဟာ Stopped ဖြစ်သွားပြီ ဆိုရင်တော့ Instance ကို Stop လုပ်တဲ့ process အောင်မြင်ပါပြီ။

Step5. Instance Stop လုပ်ပြီးရင် Type ကို ချိ်န်းပါမယ်။

  • အောက်မှာမြင်တွေ့ရတဲ့ပုံမှာဆိုရင် အရင်က တိုးခဲ့တဲ့ Type ဖြစ်ပါတယ်။ခုက လက်ရှိ ရှိနေတဲ့ Type ထက် နည်းတဲ့ Type ကိုချိန်းမှာဖြစ်တဲ့ အတွက် up/down arrow ကိုနှိပ်ပါ။

  • t2.micro (free of charge) type ကို ပြောင်းမှာဖြစ်ပါတယ်။

  • ခုဆို t2.micro ကို ရွေးထားပြီးကြောင်းတွေ့မြင်ရမှာ ဖြစ်ပါတယ်။Confirm ဖြစ်ရင် Apply နှိပ်ပြီး ဆက်သွားပါမယ်။ ထပ်ပြင်ဆင်မယ်ဆိုရင် Cancel နှိပ်ပြီး ဆက်လက်ပြင်ဆင်နိုင်ပါတယ်။

  • ခုဆို ( Instance Type-t2.micro/Instance State-stopped ) ဖြစ်တာကို တွေ့မြင်ရမှာဖြစ်ပါတယ်။

Step6. Instance လဲ ချိန်းပြီးပြီ ဖြစ်တဲ့ Instance run ဖို့အတွက် Instance ကို Start လုပ်ပါမယ်။

  • Yes,Start ကိုနှိပ်ပြီး ဆက်သွားပါမယ်။

  • Instance State-pending ကနေ Running ဖြစ်ရင် (free of charge)type ကိုအောင်မြင်စွာ ပြောင်းလဲ ပြီးပါပြီ။

  • မိမိရဲ့ normal state ကို ပြန်လည်ရောက်ရှိပါပြီ။

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