အားလုံးပဲ မဂ်လာပါ ကျတော်ဒီနေ့ကတော့ AWS နဲ့ပတ်သတ်တဲ့ core services အကြောင်းတွေကို သိသလောက်လေး ဆွေးနွေးပေးသွားပါမယ်...အဲ့ထဲမှာမှ Amazon EC2 ဆိုတာဘာလဲ Amzon S3 ဆိုတာဘာလဲ စသဖြင့် AWS Cloud Environment မှာရှိတဲ့ services တွေအကြောင်းသိသလောက်လေး share ပေးသွားပါမယ်...အမှားများပါခဲ့ရင်လည်း ဖြည့်စွက်ပြီးနားလည်ပေးစေလိုပါတယ်...
Amazon EC2
တစ်နည်းအားဖြင့် Amazon EC2ဆိုတာ Virtual Machine တစ်မျိုးပဲဖြစ်ပါတယ်... ကျတော်တို့
on-prime datacenter ပေါ်က Hyper-V Manager ပေါ်မှာ VM တွေ create လုပ်တဲ့ပုံစံနဲ့တူတူပဲဖြစ်ပါတယ်..ဥပမာ-ကိုယ်သုံးချင်တာက 1Core 1GB ubuntu 20ကိုသုံးမယ်ဆိုရင် သက်ဆိုင်ရာ ami တွေအလိုက်ရွေးပြီး create လုပ်လို့ရပါတယ်...ဆိုလိုချင်တာက ubuntu 1Core 1GB server တစ်ခုထဲ create လုပ်လို့ရတာမဟုတ်ပဲ တခြား centos တို့ amazon linux တို့ window server တို့လည်း CPU နဲ့ Memory တို့ ကိုယ်သုံးချင်သလောက်ရွေးပြီး create လုပ်လို့ရပါတယ်... ဒီနေရာမှာ limitation အနေနဲ့ကတော့ aws region တစ်ခုကို CPU core ဘယ်နှစ်လုံးပဲ ပေးသုံးမယ်ဆိုတာမျိုးတွေကတော့ရှိပါလိမ့်မယ်...နောက်ပြီး ကိုယ့် Project ကတော့ အစတုန်းက 1Core 1GB spec နဲ့ပဲလောက်သေးတယ်...
တကယ်တမ်း Production ပေါ်လည်းရောက်ရော server spec မြှင့်ဖို့လိုလာရင် အလွယ်တကူမြှင့်လို့ရပါတယ်...ဒီနေရာမှာ တစ်ခုရှိတာက ကျွန်တော်တို့ EC2 တစ်လုံး create လုပ်ပြီးသွားရင် Elastic IP တွဲထားဖို့လိုပါတယ်... တွဲမထားဘူးဆိုရင် instance ကို start လုပ်ပြီး stop ပြန်လုပ်တဲ့ အချိန်မှာ IP အသစ်ချိန်းသွားပါလိမ့်မယ်... Elastic IP attach လုပ်တဲ့နေရာမှာ create လုပ်ထားတဲ့ Instance ကို attached လုပ်ထားတယ်ဆိုရင်တော့ Elastic IP အတွက် charges ပေးရမှာမဟုတ်ပဲ Elastic IP ကို ကိုယ့်ရဲ့ instance တစ်ခုခုမှာ attached လုပ်မထားဘူးဆိုရင်တော့ charges ပေးရမှာပဲဖြစ်ပါတယ်...
EC2 insance ကို create လုပ်တဲ့နေရာမှာ ထားပါတော့ ကိုယ့် Organization ကကြီးတယ်ဆိုရင် UAT VPC မှာထားမှာလား Default VPC လား Production VPC လားစသဖြင့် ရွေးချယ်ပြီး create လုပ်လို့ရပါတယ်...virtual firewall လို့ခေါ်တဲ့ Security Group ဟာလည်း EC2 create လုပ်တဲ့နေရမှာမပါမဖြစ်ပါရပါတယ်...ကိုယ်က ကိုယ့် instance ကို public ကနေ 22,80 နဲ့ 443 ပဲ access ပေးမယ်ဆိုရင် Security Group မှာ ဘယ် port ကိုတော့ ဖွင့်မယ် ဘယ်port ကိုတော့ မဖွင့်ဘူး စသဖြင့်ရွေးချယ်လို့ရပါတယ်...
EC2 create လုပ်တဲ့နေရာမှာ ကိုယ့်ရဲ့ public keys နဲ့ access လုပ်လို့ရအောင် တစ်ခါထဲpublic key upload လုပ်ပေးလိုက်လို့ရသလို keyname တစ်ခုနဲ့ အသစ်လုပ်လိုက်လို့လည်းရပါတယ်...
ဒါ့အပြင် ကိုယ်က အခု create လုပ်လိုက်တဲ့ EC2 instanceက web-server အတွက်သုံးမယ်ဆိုပါဆို့ Tag မှာ web server ဆိုပြီး ပေးလိုက်လို့ရပါတယ်...ဥပမာ Key =>Project, Value=>webserver၊ Key=>Name,Value=>mgmg ဆိုပြီး ပေးလိုက်လို့ရပါတယ်...
Name မှာ mgmg လို့ဘာလို့ ပေးရလဲဆိုတော့ ကျတော်တို့ IAM user mgmg ကို ဒီ instance ကို full access ပေးမယ် ကျန်တဲ့ resources တွေကို ပေးမထိဘူးဆိုရင် Rules create လုပ်တဲ့အခါ ခုနပေးခဲ့တဲ့ Name=>mgmg ကိုသုံးပြီး implement လုပ်လို့ရပါတယ်...EC2 ကို Volume ကိုလည်း စစချင်း create လုပ်တုန်းကတော့ 8GB လောက်ပဲထားပြီးမှ နောက် project requirement အရတိုးချင်တယ်ဆိုလည်း တိုးလို့ရပါတယ်...EBS volumes ကိုရွေးတဲ့အခါမှာလည်း HDD ကိုပဲသုံးမလား SSD typeကိုသုံးမလားဆိုပြီး ကိုယ်ကြိုက်သလိုရွေးချယ်လို့ရပါတယ်...SSD Type ကိုရွေးခဲ့တယ်ဆိုရင်တော့ charges အနည်းငယ်ပိုကျနိုင်ပါတယ်...
EC2 ကို create လုပ်ပီးမှ အသုံးမလိုတော့ဘူး ပိတ်ထားလိုက်မယ်ဆိုရင် ပိတ်ထားလိုက်တဲ့ နာရီတွေအတွက် charges ကိုထည့်ပြီးတွက်မှာမဟုတ်ပါဘူး...ဒီလောက်ဆိုရင် Amazon EC2 အကြောင်းကို နည်းနည်းသဘောက်ပေါက်ပြီလို့ထင်ပါတယ်။
Amazon S3
နောက်တစ်ခုဆက်ပြောမှာကတော့ Amazon S3အကြောင်းပဲဖြစ်ပါတယ် ...Amazon S3 ဆိုတာကတော့ aws ရဲ့ object storage service တစ်ခုပဲဖြစ်ပါတယ်...
Amazon S3 Class အမျိုးအစား (7)မျိုးရှိပါတယ်...
S3 Standard
S3 Intelligent-Tiering
S3 Standard-IA
S3 One Zone-IA
Amazon S3 Glacier Instant Retrieval
Amazon S3 Glacier Flexible Retrieval
Amazon S3 Glacier Deep Archive
ကျွန်တော်အခုကတော့ အဲ့ဒီ (7)ချက်ကို အသေးစိတ်မရှင်းပြတော့ပါဘူး။ ဆိုတော့ s3 ကို ဘယ်လိုနေရာတွေမှာသုံးတယ် ဘာကြောင့်သုံးသင့်တယ်ဆိုတာ ကိုပဲ သိသလောက်လေးပြောပြသွားပါမယ်။ aws s3 bucket တစ်ခုကို create လုပ်တဲ့အခါမှာ ကျွန်တော်ပေးချင်သလို bucket name တွေကို ပေါက်တက်ကရ ပေးလို့ရမှာမဟုတ်ပါဘူး။
S3 bucket naming policy
ကျတော်အပေါ်က mentioned လုပ်လိုက်တဲ့ link လေးမှာသွားဖတ်လို့ရပါတယ်။ဥပမာ- bucket name က IP address နဲ့စလို့မရတာ၊ min 3 character ရှိရမယ်ဆိုတာမျိုးတွေရှိပါတယ်။
ဆိုတော့ s3 bucket တစ်ခု create လုပ်တော့မယ်ထားပါတော့ ကျတော်တို့က ဘယ် project အတွက်သုံးမှာလဲပေါ့နော်၊ ဥပမာ-bus ticket အတွက်ဆိုရင် mmbus-uat,mmbus-dev စတာမျိုးတွေပေးသင့်ပါတယ်၊ s3 ကိုအဓိက သုံးချင်တဲ့ ရည်ရွယ်ချက်ကတော့ ကိုယ့်ရဲ့ server ပေါ်မှာထားရမဲ့ images folder တွေ၊ log folder တွေကို avalability ကောင်းကောင်းနဲ့ cost သက်သက်သာသာ access လုပ်ချင်လို့ပဲ ဖြစ်ပါတယ်။ ဟုတ်ပြီ ဒါဆိုရင် s3 bucket တစ်ခုကို စလုပ်မယ်ဆိုရင် naming တွေပေးမယ်, ဒီ bucket က public ကနေ access လုပ်မှာလား specific instance ကနေပဲ access လုပ်မှာလား စတာမျိုးတွေ ရွေးချယ်ပြီးတစ်ခါတည်း s3 bucket ကို create လုပ်လို့ရပါတယ်၊ နောက်ပြီး ကိုယ့်က static website ကို host လုပ်ချင်တာလား စတာမျိုးတွေ ရွေးပြီး create လုပ်လို့ရပါသေးတယ်၊ ဒါ့အပြင် ကျတော်တို့က s3 bucket create လုပ်တဲ့နေရာမှာ versioning on ပေးလိုက်လို့ရပါသေးတယ်၊ versioning on တာက ဘာလုပ်တာလဲဆိုတော့ ကျတ်ောတို့ က ဒီ images folder ကြီး တစ်ခုခုကြောင့် မှားဖျက်မိတာပဲဖြစ်ဖြစ်, s3 ပေါ်မှာ save ထားတဲ့ logs တွေ မှားဖျက်မိတာပဲ အလွယ်တစ်ကူပြန်ပြီး bucketကို restoreလုပ်ဖို့ပဲ ဖြစ်ပါတယ်၊ တစ်ချို့နိုင်ငံခြားက company တွေဆိုရင် သူတို့ရဲ့ vue နဲ့ react project တွေကို server ပေါ်မှာမထားတော့ပဲ s3 ပေါ်မှာ ထားပြီး cloudfront နဲ့ bind ပြီး host လုပ်ကြပါသေးတယ်...vue နဲ့ react project တွေကို cloudfront နဲ့ bind ပြီး host လုပ်တဲ့အကြောင်းကို Topic တစ်ခု အနေနဲ့ ကျတော် သက်သက်ပြန်ရေးပေးပါဦးမယ်၊ဒီလို host လုပ်တဲ့နေရာမှာ SSR လိုမျိုး server side rendering တွေပါလာခဲ့ရင်တော့ s3 မှာ host လုပ်လို့ရမှာမဟုတ်ပါဘူး...
ဒီလောက်ဆိုရင် aws s3 bucket အကြောင်းကိုလည်း တီးမိခေါက်မိလေး ဖြစ်သွားပြီးလို့ ယူဆပါတယ်...
အားလုံးပဲ Have a Good Day & Let's start something today ပါ။