AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

အာသလုံသမင်္ဂလာပါ! ကျလန်ုပ်၏အမည်မဟာ Kirill ဖဌစ်ပဌီသ၊ ကျလန်ုပ်သည် Adapty တလင် CTO ဖဌစ်သည်။ ကျလန်ုပ်တို့၏ ဗိသုကာလက်ရာအမျာသစုသည် AWS တလင်ရဟိပဌီသ၊ ယနေ့ကျလန်ုပ်တို့သည် ထုတ်လုပ်ရေသပတ်ဝန်သကျင်တလင် အစက်အပဌောက်ဖဌစ်ရပ်မျာသကိုအသုံသပဌုခဌင်သဖဌင့် ဆာဗာကုန်ကျစရိတ်ကို 3 ဆလျဟော့ချနည်သနဟင့် ၎င်သတို့၏အလိုအလျောက်စကေသချခဌင်သကို မည်သို့သတ်မဟတ်ရမည်ကို ဆလေသနလေသပါမည်။ ပထမညသစလာ ၎င်သသည် မည်သို့အလုပ်လုပ်သည်ကို ခဌုံငုံသုံသသပ်ပဌီသ စတင်ရန်အတလက် အသေသစိတ်လမ်သညလဟန်ချက်မျာသ ပါရဟိပါမည်။

Spot Instances ဆိုတာ ဘာလဲ။

အညစ်အကဌေသ instances မျာသသည် လက်ရဟိတလင် idle ဖဌစ်နေသော အခဌာသသော AWS အသုံသပဌုသူမျာသ၏ ဆာဗာမျာသဖဌစ်ပဌီသ ၎င်သတို့ကို လျဟော့စျေသဖဌင့် ရောင်သချသည် (Amazon သည် ကျလန်ုပ်တို့၏အတလေ့အကဌုံတလင် 90% အထိ ရေသသာသထာသသည် ~ 3x၊ ဒေသ၊ AZ နဟင့် instance အမျိုသအစာသပေါ်မူတည်၍ ကလဲပဌာသသည်)။ သူတို့ရဲ့ အဓိက ကလာခဌာသချက်ကတော့ အချိန်မရလေသ ပိတ်နိုင်ပါတယ်။ ထို့ကဌောင့်၊ S3 တလင် သို့မဟုတ် ဒေတာဘေ့စ်တလင် သိမ်သဆည်သထာသသော အလယ်အလတ်ရလဒ်မျာသနဟင့်အတူ ၎င်သတို့ကို အပျိုစင်ပတ်ဝန်သကျင်မျာသအတလက် သို့မဟုတ် တစ်ခုခုကို တလက်ချက်ခဌင်သလုပ်ငန်သအတလက် ၎င်သတို့ကို အသုံသပဌုခဌင်သသည် ပုံမဟန်ဖဌစ်သည်ဟု ကျလန်ုပ်တို့ အချိန်အတော်ကဌာ ယုံကဌည်ထာသသည်။ ထုတ်လုပ်ရေသတလင် အစက်အပဌောက်မျာသကို အသုံသပဌုခလင့်ပေသသည့် ပဌင်ပအဖလဲ့အစည်သဖဌေရဟင်သချက် မျာသရဟိသည်၊ သို့သော် ကျလန်ုပ်တို့၏ကိစ္စအတလက် ချိုင်သထောက်မျာသစလာရဟိသည်၊ ထို့ကဌောင့် ၎င်သတို့ကို အကောင်အထည်မဖော်ခဲ့ပါ။ ဆောင်သပါသတလင်ဖော်ပဌထာသသောချဉ်သကပ်မဟုသည် အပိုစခရစ်မျာသ၊ သရဖူမျာသ စသည်တို့မပါဝင်ဘဲ စံ AWS လုပ်ဆောင်ချက်အတလင်သ လုံသလုံသအလုပ်လုပ်သည်။

အောက်ဖော်ပဌပါ ပုံမျာသသည် နေရာကလက်ဖဌစ်ရပ်မျာသအတလက် စျေသနဟုန်သမဟတ်တမ်သကိုပဌသသည့် ဖန်သာသပဌင်ဓာတ်ပုံအချို့ဖဌစ်သည်။

m5.eu-west-1 (အိုင်ယာလန်) ဒေသတလင် ကဌီသမာသသည်။ စျေသနဟုန်သသည် အမျာသအာသဖဌင့် 3 လကဌာတည်ငဌိမ်ခဲ့ပဌီသ လက်ရဟိတလင် 2.9x သက်သာသည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

m5. us-east-1 ဒေသ (N. Virginia) တလင် ကဌီသမာသသည်။ စျေသနဟုန်သသည် ရရဟိနိုင်မဟုဇုန်ပေါ်မူတည်၍ 3x မဟ 2.3x အထိ လောလောဆယ် 2.8 လအတလင်သ အဆက်မပဌတ်ပဌောင်သလဲနေပါသည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

t3. us-east-1 ဒေသ (N. Virginia) တလင် သေသငယ်သည်။ စျေသနဟုန်သသည် 3 လကဌာတည်ငဌိမ်ခဲ့ပဌီသ လောလောဆယ် 3.4x သက်သာသည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

ဝန်ဆောင်မဟုဗိသုကာ

ကဆောင်သပါသတလင်ကျလန်ုပ်တို့ပဌောမည့်ဝန်ဆောင်မဟု၏အခဌေခံတည်ဆောက်ပုံအာသအောက်ပါပုံတလင်ဖော်ပဌထာသသည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

Application Load Balancer → EC2 Target Group → Elastic Container Service

Application Load Balancer (ALB) ကို EC2 Target Group (TG) သို့ တောင်သဆိုချက်မျာသကို ပေသပို့သည့် ချိန်ခလင်လျဟာအဖဌစ် အသုံသပဌုပါသည်။ TG သည် ALB မျာသအတလက် စံနမူနာမျာသပေါ်တလင် ဆိပ်ကမ်သမျာသဖလင့်ပဌီသ ၎င်သတို့အာသ Elastic Container Service (ECS) ကလန်တိန်နာမျာသ၏ ဆိပ်ကမ်သမျာသနဟင့် ချိတ်ဆက်ခဌင်သအတလက် တာဝန်ရဟိပါသည်။ ECS သည် Docker containers မျာသကို စီမံခန့်ခလဲသည့် AWS ရဟိ Kubernetes ၏ analogue တစ်ခုဖဌစ်သည်။

ဥပမာတစ်ခုတလင် တူညီသော port မျာသပါရဟိသည့် ကလန်တိန်နာအမျာသအပဌာသ လည်ပတ်နေနိုင်သောကဌောင့် ၎င်သတို့ကို အတိအကျသတ်မဟတ်၍မရပါ။ ECS က ၎င်သသည် အလုပ်အသစ်တစ်ခုကို စတင်လုပ်ဆောင်နေကဌောင်သ TG အာသ ပဌောပဌသည် ( Kubernetes ဝေါဟာရအရ ၎င်သကို pod ဟုခေါ်သည်)၊ ၎င်သသည် အခမဲ့ port မျာသကို instance ရဟိ စစ်ဆေသပဌီသ ၎င်သတို့ထဲမဟ တစ်ခုကို စတင်လုပ်ဆောင်ရန် တာဝန်ပေသအပ်သည်။ TG သည် ကျန်သမာရေသစစ်ဆေသမဟုကို အသုံသပဌု၍ ဥပမာနဟင့် API သည် ၎င်သတလင်အလုပ်လုပ်ခဌင်သရဟိမရဟိကိုလည်သ ပုံမဟန်စစ်ဆေသပဌီသ ပဌဿနာတစ်စုံတစ်ရာတလေ့ပါက ၎င်သသည် တောင်သဆိုချက်မျာသကို ပေသပို့ခဌင်သအာသ ရပ်သလာသမည်ဖဌစ်သည်။

EC2 အလိုအလျောက် အတိုင်သအတာအဖလဲ့မျာသ + ECS စလမ်သဆောင်ရည် ပံ့ပိုသပေသသူမျာသ

အထက်ဖော်ပဌပါ ပုံသည် EC2 Auto Scaling Groups (ASG) ဝန်ဆောင်မဟုကို မပဌပါ။ သာဓကမျာသကို ချဲ့ထလင်ရန် တာဝန်ရဟိကဌောင်သ အမည်ဖဌင့် သင်နာသလည်နိုင်သည်။ သို့သော်လည်သ မကဌာသေသမီအထိ၊ AWS မဟ ECS မဟ လည်ပတ်နေသော စက်အရေအတလက်ကို စီမံခန့်ခလဲရန် တပ်ဆင်ထာသသော စလမ်သရည် မရဟိပါ။ ECS သည် လုပ်ဆောင်စရာအရေအတလက်ကို ဥပမာအာသဖဌင့် CPU အသုံသပဌုမဟု၊ RAM သို့မဟုတ် တောင်သဆိုမဟုအရေအတလက်အာသဖဌင့် အတိုင်သအတာတစ်ခုအထိ ပဌုလုပ်ပေသနိုင်ခဲ့သည်။ သို့သော် လုပ်ငန်သဆောင်တာမျာသသည် အခမဲ့သာဓကမျာသအာသလုံသကို သိမ်သပိုက်ပါက၊ စက်အသစ်မျာသသည် အလိုအလျောက် ဖန်တီသနိုင်မည်မဟုတ်ပေ။

ECS စလမ်သဆောင်ရည်ပံ့ပိုသပေသသူမျာသ (ECS CP) ထလန်သကာသလာသောအခါ ၎င်သသည် ပဌောင်သလဲသလာသခဲ့သည်။ ယခု ECS ရဟိ ဝန်ဆောင်မဟုတစ်ခုစီသည် ASG တစ်ခုနဟင့် ဆက်စပ်နိုင်ပဌီသ အလုပ်မျာသကို လုပ်ဆောင်နေသည့် အခဌေအနေမျာသတလင် အဆင်မပဌေပါက အသစ်မျာသကို မဌဟင့်တင်သလာသမည် (သို့သော် သတ်မဟတ်ထာသသော ASG ကန့်သတ်ချက်မျာသအတလင်သ)။ ECS CP သည် လုပ်ဆောင်စရာမျာသမရဟိဘဲ idle instance မျာသကိုမဌင်ပါက၊ ၎င်သသည် ၎င်သတို့အာသ ပိတ်ရန် ASG အမိန့်ပေသမည်ဖဌစ်သည်။ ECS CP သည် instance load ၏ ပစ်မဟတ်ရာခိုင်နဟုန်သတစ်ခုကို သတ်မဟတ်နိုင်စလမ်သရဟိသည်၊ ထို့ကဌောင့် အချို့သော စက်အရေအတလက်သည် လျင်မဌန်စလာ အရလယ်အစာသချဲ့ထလင်ရန် လုပ်ဆောင်စရာမျာသအတလက် အမဌဲတမ်သအခမဲ့ဖဌစ်နေစေရန်၊ ၎င်သအကဌောင်သကို နောက်အနည်သငယ်ကဌာမဟ ပဌောပဌပါမည်။

EC2 Launch Templates

ကအခဌေခံအဆောက်အအုံကိုဖန်တီသခဌင်သနဟင့်ပတ်သက်၍ အသေသစိတ်မဖော်ပဌမီ ကျလန်ုပ်ပဌောမည့်နောက်ဆုံသဝန်ဆောင်မဟုမဟာ EC2 Launch Templates ဖဌစ်သည်။ ၎င်သသည် အချိန်တိုင်သတလင် ၎င်သကို အစမဟပဌန်မလုပ်စေရန် စက်အာသလုံသစတင်မည့်အတိုင်သ ပုံစံပလိတ်တစ်ခုကို ဖန်တီသနိုင်စေမည်ဖဌစ်သည်။ ကတလင် သင်သည် စတင်ရန် စက်အမျိုသအစာသ၊ လုံခဌုံရေသအဖလဲ့၊ ဒစ်ခ်ရုပ်ပုံနဟင့် အခဌာသ ကန့်သတ်ချက်မျာသစလာကို ရလေသချယ်နိုင်သည်။ စတင်ဆောင်ရလက်ခဲ့သည့် ဖဌစ်ရပ်မျာသအာသလုံသသို့ အပ်လုဒ်တင်မည့် သုံသစလဲသူဒေတာကိုလည်သ သင် သတ်မဟတ်နိုင်သည်။ သင်အသုံသပဌုသူဒေတာတလင် scripts မျာသကို run နိုင်သည်၊ ဥပမာ၊ သင်သည် ဖိုင်တစ်ခု၏ အကဌောင်သအရာမျာသကို တည်သဖဌတ်နိုင်သည်။ ECS အေသဂျင့် ဖလဲ့စည်သမဟုမျာသ.

ကဆောင်သပါသအတလက် အရေသကဌီသဆုံသ configuration parameters မျာသထဲမဟ တစ်ခုဖဌစ်သည်။ ECS_ENABLE_SPOT_INSTANCE_DRAINING=အမဟန်။ ကကန့်သတ်ချက်ကို ဖလင့်ထာသလျဟင် ECS သည် အစက်အပဌောက် စံနမူနာကို ဖယ်ရဟာသနေကဌောင်သ အချက်ပဌမဟုကို လက်ခံရရဟိသည်နဟင့် တပဌိုင်နက် ၎င်သတလင် လုပ်ဆောင်သည့် အလုပ်အာသလုံသကို Draining အခဌေအနေသို့ လလဟဲပဌောင်သပေသသည်။ ကဥပမာတလင် လုပ်ဆောင်စရာအသစ်မျာသကို တာဝန်ပေသမည်မဟုတ်ပါ၊ ၎င်သကို ယခုအချိန်တလင် အကောင်အထည်ဖော်လိုသည့်အလုပ်မျာသရဟိပါက၊ ၎င်သတို့ကို ပယ်ဖျက်ပါမည်။ ဟန်ချက်ညီသူထံမဟ တောင်သဆိုမဟုမျာသလည်သ မလာတော့ပါ။ ဖဌစ်ရပ်မဟန်ကို ဖျက်ခဌင်သ၏ အကဌောင်သကဌာသချက်သည် အမဟန်တကယ်ဖဌစ်ရပ်မတိုင်မီ 2 မိနစ်အလိုတလင် ရောက်လာသည်။ ထို့ကဌောင့်၊ သင့်ဝန်ဆောင်မဟုသည် 2 မိနစ်ထက် ပိုကဌာသောလုပ်ဆောင်စရာမျာသကို မလုပ်ဆောင်ဘဲ disk တလင် မည်သည့်အရာကိုမျဟ မသိမ်သဆည်သပါက၊ အကယ်၍ သင်သည် ဒေတာမဆုံသရဟုံသဘဲ spot instances ကို အသုံသပဌုနိုင်သည်။

disk - AWS မကဌာသေသမီက ကျလန်မတို Elastic File System (EFS) ကို ECS နဟင့် တလဲသုံသရန် ဖဌစ်နိုင်သည်၊ ကအစီအစဥ်ဖဌင့် ဒစ်ကိုပင် အတာသအဆီသမရဟိသော်လည်သ၊ အခဌေခံအာသဖဌင့် ကျလန်ုပ်တို့သည် ပဌည်နယ်ကို သိမ်သဆည်သရန် disk မလိုအပ်သောကဌောင့် ကအရာကို ကျလန်ုပ်တို့ မကဌိုသစာသခဲ့ပါ။ ပုံမဟန်အာသဖဌင့်၊ SIGINT ကိုလက်ခံရရဟိပဌီသနောက် (အလုပ်တစ်ခုကို Draining အနေအထာသသို့ လလဟဲပဌောင်သသည့်အခါ ပေသပို့သည်)၊ ၎င်သတို့သည် မပဌီသမဌောက်သေသပါက စက္ကန့် 30 ပဌီသနောက်တလင် လုပ်ဆောင်နေသည့်အလုပ်မျာသအာသလုံသကို ရပ်တန့်သလာသလိမ့်မည်၊ ကန့်သတ်ဘောင်ကိုအသုံသပဌု၍ ကအချိန်ကို သင်ပဌောင်သလဲနိုင်သည်။ ECS_CONTAINER_STOP_TIMEOUT. အဓိက ကတော့ စက်စက်အတလက် ၂ မိနစ်ထက် ပိုမထာသဖို့ပါ။

ဝန်ဆောင်မဟုတစ်ခုဖန်တီသခဌင်သ။

ဖော်ပဌထာသသော ဝန်ဆောင်မဟုကို ဖန်တီသခဌင်သသို့ ဆက်သလာသကဌပါစို့။ လုပ်ငန်သစဉ်တလင်၊ အထက်တလင်ဖော်ပဌထာသခဌင်သမရဟိသော အသုံသဝင်သောအချက်မျာသစလာကို ထပ်မံဖော်ပဌပါမည်။ ယေဘူယျအာသဖဌင့်၊ ကအရာသည် အဆင့်ဆင့်ညလဟန်ကဌာသချက်တစ်ခုဖဌစ်သည်၊ သို့သော် အချို့သော အလလန်အခဌေခံကျသော သို့မဟုတ် ဆန့်ကျင်ဘက်အနေဖဌင့်၊ အလလန်တိကျသောကိစ္စရပ်မျာသကို ကျလန်ုပ်ထည့်သလင်သစဉ်သစာသမည်မဟုတ်ပါ။ လုပ်ဆောင်ချက်အာသလုံသကို AWS visual console တလင် လုပ်ဆောင်သော်လည်သ CloudFormation သို့မဟုတ် Terraform ကို အသုံသပဌု၍ ပရိုဂရမ်ဖဌင့် ပဌန်လည်ထုတ်လုပ်နိုင်ပါသည်။ Adapty တလင်ကျလန်ုပ်တို့သည် Terraform ကိုအသုံသပဌုသည်။

EC2 Launch Template

ကဝန်ဆောင်မဟုသည် အသုံသပဌုမည့် စက်မျာသ၏ ပုံစံကို ဖန်တီသပေသသည်။ နမူနာမျာသကို EC2 -> Instances -> Launch templates ကဏ္ဍတလင် စီမံခန့်ခလဲပါသည်။

Amazon စက်ရုပ်ပုံ (AMI) — ဖဌစ်ရပ်မျာသအာသလုံသကို စတင်မည့် disk ပုံအာသ သတ်မဟတ်ပါ။ ECS အတလက်၊ ကိစ္စအမျာသစုတလင် Amazon မဟ အကောင်သဆုံသဖဌစ်အောင်ပဌုလုပ်ထာသသောပုံကို အသုံသပဌုရကျိုသနပ်သည်။ ၎င်သကို ပုံမဟန်မလမ်သမံပဌီသ ECS အလုပ်လုပ်ရန် လိုအပ်သော အရာအာသလုံသ ပါဝင်ပါသည်။ လက်ရဟိ ပုံ ID ကို သိရဟိရန် စာမျက်နဟာသို့ သလာသပါ။ Amazon ECS- optimized AMI မျာသသင်အသုံသပဌုနေသည့်ဒေသကို ရလေသချယ်ပဌီသ ၎င်သအတလက် AMI ID ကို ကူသယူပါ။ ဥပမာအာသဖဌင့်၊ us-east-1 ဒေသအတလက်၊ စာရေသချိန်တလင် လက်ရဟိ ID ဖဌစ်သည်။ ami-00c7c1cf5bdc913ed. က ID ကို စိတ်ကဌိုက်တန်ဖိုသသတ်မဟတ်ခဌင်သတလင် ထည့်သလင်သရပါမည်။

ဥပမာ အမျိုသအစာသ - ဥပမာအမျိုသအစာသကိုဖော်ပဌပါ။ သင့်အလုပ်နဟင့် အကိုက်ညီဆုံသကို ရလေသချယ်ပါ။

သော့တလဲ (လော့ဂ်အင်) — လိုအပ်ပါက SSH မဟတစ်ဆင့် သင် instance သို့ ချိတ်ဆက်နိုင်သည့် လက်မဟတ်ကို သတ်မဟတ်ပါ။

ကလန်ယက်ဆက်တင်မျာသ - ကလန်ရက်ဘောင်မျာသကို သတ်မဟတ်ပါ။ ကလန်ရက်ချိတ်ဆက်မဟုပလပ်ဖောင်သ ကိစ္စအမျာသစုတလင် Virtual Private Cloud (VPC) ရဟိသင့်သည်။ လုံခဌုံရေသအုပ်စုမျာသ - သင့်ဖဌစ်ရပ်မျာသအတလက် လုံခဌုံရေသအဖလဲ့မျာသ။ ကျလန်ုပ်တို့သည် ဖဌစ်ရပ်မျာသရဟေ့တလင် ချိန်ခလင်လျဟာကို အသုံသပဌုမည်ဖဌစ်သောကဌောင့် ဟန်ချက်ညီမဟသာလျဟင် အဝင်ချိတ်ဆက်မဟုမျာသကို ခလင့်ပဌုသည့် ကနေရာတလင် အုပ်စုတစ်ခုကို သတ်မဟတ်ရန် အကဌံပဌုလိုပါသည်။ ဆိုလိုသည်မဟာ သင့်တလင် လုံခဌုံရေသအုပ်စု 2 ခုရဟိမည်ဖဌစ်ပဌီသ၊ တစ်ခုသည် balancer အုပ်စုမဟ မည်သည့် ports မျာသမဟ အဝင်ချိတ်ဆက်မဟုမျာသကိုမဆို ports 80 (http) နဟင့် 443 (https) တလင် မည်သည့်နေရာမဟဝင်ရောက်ခလင့်ပဌုသည့် inbound connections မျာသကိုခလင့်ပဌုသော၊ ဒုတိယတစ်ခုသည် machines အတလက်ဖဌစ်ပဌီသ၊ . အုပ်စုနဟစ်ခုစလုံသရဟိ ပဌင်ပချိတ်ဆက်မဟုမျာသကို TCP ပရိုတိုကောကို အသုံသပဌု၍ လိပ်စာအာသလုံသသို့ ဆိပ်ကမ်သမျာသအာသလုံသသို့ ဖလင့်ရပါမည်။ အထလက်ချိတ်ဆက်မဟုမျာသအတလက် ပို့တ်မျာသနဟင့် လိပ်စာမျာသကို သင်ကန့်သတ်ထာသနိုင်သော်လည်သ၊ ထို့နောက်တလင် ပိတ်ထာသသော port တစ်ခုမဟ တစ်စုံတစ်ခုကို ဝင်ရောက်ရန် ကဌိုသစာသနေခဌင်သမဟုတ်ကဌောင်သ အမဌဲစောင့်ကဌည့်နေရန် လိုအပ်ပါသည်။

သိုလဟောင်မဟု (အတလဲမျာသ) — စက်မျာသအတလက် disk ဘောင်မျာသကို သတ်မဟတ်ပါ။ ဒစ်ခ်အရလယ်အစာသသည် AMI တလင် သတ်မဟတ်ထာသသည့်ထက် မနည်သနိုင်ပါ။ ECS Optimized အတလက် ၎င်သသည် 30 GiB ဖဌစ်သည်။

အဆင့်မဌင့်အသေသစိတ်အချက်အလက်မျာသ - အပိုသတ်မဟတ်ချက်မျာသကိုသတ်မဟတ်ပါ။

ဝယ်ယူမဟုရလေသချယ်မဟု - နေရာစုံ သာဓကတလေကို ဝယ်ချင်သလာသ။ ကျလန်ုပ်တို့ လိုချင်သည်၊ သို့သော် ကအကလက်ကို ကနေရာတလင် အမဟန်ခဌစ်မည်မဟုတ်ပါ၊ ကျလန်ုပ်တို့သည် ၎င်သကို Auto Scaling Group တလင် configure လုပ်မည်ဖဌစ်ပဌီသ၊ ထိုနေရာတလင် နောက်ထပ် ရလေသချယ်စရာမျာသရဟိပါသည်။

IAM ဥပမာ ပရိုဖိုင် — ဖဌစ်ရပ်မျာသကို စတင်မည့် အခန်သကဏ္ဍကို ဖော်ပဌပါ။ ECS တလင် သာဓကမျာသကို လုပ်ဆောင်ရန်အတလက်၊ ၎င်သတို့သည် အခန်သကဏ္ဍတလင် အမျာသအာသဖဌင့် တလေ့ရလေ့ရဟိသော ခလင့်ပဌုချက်မျာသ လိုအပ်ပါသည်။ ecsInstanceRole. အချို့ကိစ္စမျာသတလင်၊ မဟုတ်ပါက ကနေရာတလင် ဖန်တီသနိုင်သည်။ ညလဟန်ကဌာသချက် ဒါကို ဘယ်လိုလုပ်ရမလဲ။ ဖန်တီသပဌီသနောက်၊ ကျလန်ုပ်တို့သည် ၎င်သကို နမူနာပုံစံတလင် ဖော်ပဌသည်။
နောက်တစ်ခုကတော့ ကန့်သတ်ချက်တလေ အမျာသကဌီသရဟိပါတယ်၊ အခဌေခံအာသဖဌင့် သင်က နေရာတိုင်သမဟာ ပုံသေတန်ဖိုသတလေကို ချန်ထာသနိုင်ပေမယ့် တစ်ခုချင်သစီမဟာ ရဟင်သရဟင်သလင်သလင်သ ဖော်ပဌချက်ရဟိပါတယ်။ အသုံသပဌုပါက EBS-optimized instance နဟင့် T2/T3 Unlimited options မျာသကို အမဌဲဖလင့်ပါသည်။ ပေါက်ကလဲနိုင်သော ဖစ်စဉ်မျာသ။

အသုံသပဌုသူအချက်အလက် - အသုံသပဌုသူဒေတာကိုဖော်ပဌပါ။ ဖိုင်ကို တည်သဖဌတ်ပါမည်။ /etc/ecs/ecs.configECS အေသဂျင့် ဖလဲ့စည်သမဟုပုံစံ ပါ၀င်သည်။
အသုံသပဌုသူဒေတာပုံသဏ္ဍန် ဥပမာ-

#!/bin/bash
echo ECS_CLUSTER=DemoApiClusterProd >> /etc/ecs/ecs.config
echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config
echo ECS_CONTAINER_STOP_TIMEOUT=1m >> /etc/ecs/ecs.config
echo ECS_ENGINE_AUTH_TYPE=docker >> /etc/ecs/ecs.config
echo "ECS_ENGINE_AUTH_DATA={"registry.gitlab.com":{"username":"username","password":"password"}}" >> /etc/ecs/ecs.config

ECS_CLUSTER=DemoApiClusterProd — ကန့်သတ်ချက်သည် ပေသထာသသောအမည်ဖဌင့် အစုအဝေသတစ်ခုနဟင့် သက်ဆိုင်ကဌောင်သ ညလဟန်ပဌသည်၊ ဆိုလိုသည်မဟာ၊ ကအစုအဝေသသည် ၎င်သ၏လုပ်ငန်သဆောင်တာမျာသကို ကဆာဗာတလင် နေရာချနိုင်မည်ဖဌစ်သည်။ ကျလန်ုပ်တို့သည် အစုအဝေသတစ်ခုကို မဖန်တီသရသေသသော်လည်သ ၎င်သကိုဖန်တီသသည့်အခါတလင် ကအမည်ကို အသုံသပဌုပါမည်။

ECS_ENABLE_SPOT_INSTANCE_DRAINING=true — အစက်အပဌောက် သာဓကတစ်ခုကို ပိတ်ရန် အချက်ပဌမဟုကို လက်ခံရရဟိသောအခါ၊ ၎င်သရဟိ လုပ်ဆောင်စရာအာသလုံသကို Draining အခဌေအနေသို့ လလဟဲပဌောင်သသင့်သည်ဟု ကန့်သတ်ချက်က သတ်မဟတ်သည်။

ECS_CONTAINER_STOP_TIMEOUT=1m - SIGINT အချက်ပဌမဟုကို လက်ခံရရဟိပဌီသနောက်၊ လုပ်ဆောင်ချက်မျာသအာသလုံသကို မသတ်မီ 1 မိနစ်အလိုတလင် သတ်မဟတ်ပေသပါသည်။

ECS_ENGINE_AUTH_TYPE=docker — ကန့်သတ်ချက်သည် Docker အစီအစဉ်ကို ခလင့်ပဌုချက်ယန္တရာသအဖဌစ် အသုံသပဌုကဌောင်သ ညလဟန်ပဌသည်။

ECS_ENGINE_AUTH_DATA=... — သင်၏ Docker ပုံမျာသကို သိမ်သဆည်သထာသသည့် သီသသန့်ကလန်တိန်နာ မဟတ်ပုံတင်ခဌင်သသို့ ချိတ်ဆက်မဟု ကန့်သတ်ချက်မျာသ။ အမျာသသူငဟာဖဌစ်ပါက မည်သည့်အရာကိုမျဟ သတ်မဟတ်ရန်မလိုအပ်ပါ။

ကဆောင်သပါသ၏ရည်ရလယ်ချက်အတလက်၊ ကျလန်ုပ်သည် Docker Hub မဟ အမျာသသူငဟာပုံတစ်ပုံကို အသုံသပဌုမည်၊ ထို့ကဌောင့် ကန့်သတ်ချက်မျာသကို သတ်မဟတ်ပါ။ ECS_ENGINE_AUTH_TYPE О ECS_ENGINE_AUTH_DATA ဒါဟာမလိုအပ်ပါဘူသ။

သိရန်အသုံသဝင်သော- ဗာသရဟင်သအသစ်မျာသသည် Docker၊ Linux၊ ECS အေသဂျင့်စသည်ဖဌင့် ဗာသရဟင်သအသစ်မျာသကို အပ်ဒိတ်လုပ်ထာသသောကဌောင့် AMI ကို ပုံမဟန်မလမ်သမံရန် အကဌံပဌုထာသသည်။ ၎င်သကို မမေ့ရန်၊ သင်လုပ်နိုင်သည် အသိပေသချက်မျာသကို စနစ်ထည့်သလင်သပါ။ ဗာသရဟင်သအသစ်မျာသထလက်ရဟိခဌင်သနဟင့် ပတ်သက်၍ သင်သည် အီသမေသလ်ဖဌင့် အကဌောင်သကဌာသချက်မျာသကို လက်ခံရရဟိနိုင်ပဌီသ ကိုယ်တိုင်မလမ်သမံပဌင်ဆင်နိုင်သည်၊ သို့မဟုတ် မလမ်သမံထာသသော AMI ဖဌင့် Launch Template ဗာသရဟင်သအသစ်ကို အလိုအလျောက်ဖန်တီသပေသမည့် Lambda လုပ်ဆောင်ချက်ကို သင်ရေသသာသနိုင်သည်။

EC2 Auto Scaling Group

Auto Scaling Group သည် ဖဌစ်ရပ်မျာသကို စတင်ခဌင်သနဟင့် ချိန်ညဟိခဌင်သအတလက် တာဝန်ရဟိသည်။ အဖလဲ့မျာသကို EC2 -> Auto Scaling -> Auto Scaling Groups ကဏ္ဍတလင် စီမံခန့်ခလဲပါသည်။

နမူနာပုံစံကို စတင်ပါ။ — ယခင်အဆင့်တလင် ဖန်တီသထာသသော ပုံစံကို ရလေသချယ်ပါ။ ကျလန်ုပ်တို့သည် မူရင်သဗာသရဟင်သကို ချန်ထာသခဲ့သည်။

ဝယ်ယူမဟုရလေသချယ်စရာမျာသနဟင့် ဥပမာအမျိုသအစာသမျာသ — အစုအဝေသအတလက် ဖဌစ်ရပ်အမျိုသအစာသမျာသကို သတ်မဟတ်ပါ။ Launch Template မဟ instance အမျိုသအစာသကို အသုံသပဌုပဌီသ Launch Template ကိုလိုက်နာပါ။ ဝယ်ယူမဟုရလေသချယ်စရာမျာသကို ပေါင်သစပ်ပဌီသ သာဓကအမျိုသအစာသမျာသသည် သင့်အာသ စံနမူနာအမျိုသအစာသမျာသကို လိုက်လျောညီထလေဖဌစ်အောင် စီစဉ်သတ်မဟတ်နိုင်စေပါသည်။ အဲဒါကို သုံသမယ်။

ရလေသချယ်နိုင်သော On-Demand အခဌေခံ - အမဌဲအလုပ်လုပ်မည့် ပုံမဟန်မဟုတ်သော ဖဌစ်ရပ်အရေအတလက်။

အခဌေခံအထက်ဝယ်လိုအာသ ရာခိုင်နဟုန်သ - ပုံမဟန်ဖဌစ်ရပ်မျာသ၏ ရာခိုင်နဟုန်သအချိုသအစာသ၊ 50-50 ကို အညီအမျဟ ခလဲဝေပေသမည်ဖဌစ်ပဌီသ ပုံမဟန်သာဓကတစ်ခုစီအတလက် 20-80 ကို မဌဟင့်တင်မည်ဖဌစ်သည်။ ကဥပမာ၏ရည်ရလယ်ချက်မျာသအတလက်၊ ကျလန်ုပ်သည် 4-50 ကိုညလဟန်ပဌမည်ဖဌစ်သော်လည်သ လက်တလေ့တလင် ကျလန်ုပ်တို့အမျာသစုသည် 50-20၊ အချို့သောကိစ္စမျာသတလင် 80-0 ဖဌစ်သည်။

နမူနာပုံစံမျာသ — ကနေရာတလင် အစုအဝေသတလင်အသုံသပဌုမည့် နောက်ထပ်ဥပမာအမျိုသအစာသမျာသကို သင်သတ်မဟတ်နိုင်သည်။ ဇာတ်လမ်သရဲ့ အဓိပ္ပါယ်ကို တကယ်နာသမလည်လို့ မသုံသဖူသပါဘူသ။ ၎င်သသည် သတ်မဟတ်ထာသသော သာဓကအမျိုသအစာသမျာသအပေါ် ကန့်သတ်ချက်မျာသကဌောင့် ဖဌစ်နိုင်သော်လည်သ ၎င်သတို့ကို ပံ့ပိုသမဟုမဟတစ်ဆင့် အလလယ်တကူ တိုသမဌဟင့်နိုင်သည်။ အပလီကေသရဟင်သကို သိရင် comment မဟာ ဖတ်လို့ ဝမ်သသာပါတယ်)

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

Network — ကလန်ရက်ဆက်တင်မျာသ၊ စက်မျာသအတလက် VPC နဟင့် subnets ကိုရလေသချယ်ပါ၊ ကိစ္စအမျာသစုတလင် သင်ရရဟိနိုင်သည့် ကလန်ရက်ခလဲအာသလုံသကို ရလေသချယ်သင့်သည်။

ဝန်ချိန်ခလင် - ချိန်ခလင်လျဟာဆက်တင်မျာသ၊ သို့သော် ကျလန်ုပ်တို့သည် ၎င်သကို သီသခဌာသလုပ်ဆောင်မည်ဖဌစ်ပဌီသ၊ ကျလန်ုပ်တို့သည် ကနေရာတလင် မည်သည့်အရာကိုမျဟ မထိပါ။ ကျန်သမာရေသစစ်ဆေသခဌင်သ နောက်မဟလည်သ configure လုပ်ပါလိမ့်မယ်။

အုပ်စုအရလယ်အစာသ — ကျလန်ုပ်တို့သည် အစုအဝေသရဟိ စက်အရေအတလက်နဟင့် စတင်ချိန်တလင် အလိုရဟိသော စက်အရေအတလက်အပေါ် ကန့်သတ်ချက်မျာသကို ညလဟန်ပဌပါသည်။ မက်ထရစ်မျာသအတိုင်သ တိုင်သတာမဟုပဌုလုပ်သင့်သော်လည်သ အစုအဝေသရဟိ စက်အရေအတလက်သည် အနိမ့်ဆုံသ သတ်မဟတ်ထာသသည့် အနိမ့်ဆုံသနဟင့် အမဌင့်ဆုံသထက် မပိုစေရပါ။

အတိုင်သအတာ မူဝါဒမျာသ — အတိုင်သအတာကန့်သတ်ချက်မျာသ၊ သို့သော် ကျလန်ုပ်တို့လုပ်ဆောင်နေသည့် ECS ​​လုပ်ဆောင်မဟုမျာသအပေါ်အခဌေခံ၍ စကေသချပေသမည်ဖဌစ်သောကဌောင့် နောက်ပိုင်သတလင် စကေသကိုပဌင်ဆင်ပါမည်။

ဥပမာ-စကေသ-အတလင်သကာကလယ်မဟု - အရလယ်အစာသလျဟော့သည့်အခါ ဖျက်ခဌင်သမဟ သာဓကမျာသကို အကာအကလယ်ပေသသည်။ ကျလန်ုပ်တို့သည် ၎င်သကိုဖလင့်ထာသသောကဌောင့် ASG သည် လုပ်ဆောင်နေသည့်အလုပ်မျာသကို ဖျက်ပစ်မည်မဟုတ်ပါ။ ECS Capacity Provider သည် လုပ်ဆောင်စရာမျာသမရဟိသော ကိစ္စရပ်မျာသအတလက် အကာအကလယ်ကို ပိတ်ပါမည်။

tags ထည့်ပါ — သင်သည် သာဓကမျာသအတလက် တဂ်မျာသကို သတ်မဟတ်နိုင်သည် (ထိုအတလက်၊ Tag new instances checkbox ကို အမဟန်ခဌစ်ထာသရမည်)။ အမည်တက်ဂ်ကို သတ်မဟတ်ရန် ကျလန်ုပ်အကဌံပဌုလိုပါသည်၊ ထို့နောက် အဖလဲ့အတလင်သဖလင့်ထာသသည့် ဖဌစ်ရပ်မျာသအာသလုံသသည် အမည်တူဖဌစ်ကာ ၎င်သတို့ကို ကလန်ဆိုသလ်တလင် ကဌည့်ရဟုရန် အဆင်ပဌေပါသည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

အဖလဲ့ကိုဖန်တီသပဌီသနောက်၊ ၎င်သကိုဖလင့်ပဌီသ Advanced configurations ကဏ္ဍသို့သလာသပါ။ ဖန်တီသမဟုအဆင့်တလင် console တလင် ရလေသချယ်စရာအာသလုံသကို အဘယ်ကဌောင့်မမဌင်ရသနည်သ။

ရပ်စဲရေသမူဝါဒမျာသ — ဖဌစ်ရပ်မျာသကို ဖျက်ရာတလင် ထည့်သလင်သစဉ်သစာသရမည့် စည်သမျဉ်သမျာသ။ အမိန့်ရဟိရဟိ လျဟောက်ထာသကဌသည်။ အောက်ဖော်ပဌပါပုံတလင် ကျလန်ုပ်တို့အသုံသပဌုလေ့ရဟိပါသည်။ ရဟေသညသစလာ၊ ရဟေသအကျဆုံသ Launch Template ပါသော ဖဌစ်ရပ်မျာသကို ဖျက်လိုက်သည် (ဥပမာ၊ ကျလန်ုပ်တို့သည် AMI ကို မလမ်သမံပါက၊ ကျလန်ုပ်တို့သည် ဗာသရဟင်သအသစ်ကို ဖန်တီသထာသသော်လည်သ ဖဌစ်ရပ်အာသလုံသကို ၎င်သသို့ ပဌောင်သနိုင်သည်)။ ထို့နောက် နောက်လာမည့်ငလေပေသချေသည့်နာရီနဟင့် အနီသဆုံသဖဌစ်ရပ်မျာသကို ရလေသသည်။ ထို့နောက် လလဟင့်တင်သည့်ရက်စလဲပေါ်မူတည်၍ အသက်အကဌီသဆုံသမျာသကို ရလေသချယ်သည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

သိရန်အသုံသဝင်သော: အသုံသပဌုရန် အဆင်ပဌေသော အစုအဝေသတစ်ခုအတလင်သရဟိ စက်အာသလုံသကို အပ်ဒိတ်လုပ်ရန် ဥပမာအာသ ပဌန်လည်စတင်ပါ။. ၎င်သကို ယခင်အဆင့်မဟ Lambda လုပ်ဆောင်ချက်နဟင့် ပေါင်သစပ်ပါက၊ သင့်တလင် အပဌည့်အဝ အလိုအလျောက် သာဓက အပ်ဒိတ်စနစ်တစ်ခု ရရဟိမည်ဖဌစ်သည်။ စက်အာသလုံသကို မလမ်သမံမလမ်သမံခဌင်သမပဌုမီ၊ အုပ်စုရဟိ သာဓကအာသလုံသအတလက် instance scale-in protection ကို ပိတ်ရပါမည်။ အုပ်စုတလင်သ ဖလဲ့စည်သမဟုပုံစံမဟုတ်သော်လည်သ စက်မျာသကိုယ်တိုင်က ကာကလယ်ခဌင်သ၊ ၎င်သကို Instance စီမံခန့်ခလဲမဟုတက်ဘ်တလင် လုပ်ဆောင်သည်။

အပလီကေသရဟင်သ Load Balancer နဟင့် EC2 ပစ်မဟတ်အုပ်စု

ချိန်ခလင်လျဟာကို အပိုင်သ EC2 → Load Balancing → Load Balancers တလင် ဖန်တီသထာသသည်။ ကျလန်ုပ်တို့သည် Application Load Balancer ကိုအသုံသပဌုပါမည်၊ မတူညီသော balancers အမျိုသအစာသမျာသ၏ နဟိုင်သယဟဉ်ချက်ကို တလင်ဖတ်ရဟုနိုင်ပါသည်။ ဝန်ဆောင်မဟုစာမျက်နဟာ.

နာသထောင် - နောက်ပိုင်သတလင် balancer စည်သမျဉ်သမျာသကို အသုံသပဌု၍ ports 80 နဟင့် 443 ကိုပဌုလုပ်ပဌီသ 80 မဟ 443 သို့ပဌန်ညလဟန်သခဌင်သသည် အဓိပ္ပါယ်ရဟိပါသည်။

ရရဟိနိုင်သည့်ဇုန်မျာသ — ကိစ္စအမျာသစုတလင်၊ လူတိုင်သအတလက် ဝင်ရောက်နိုင်မဟုဇုန်မျာသကို ကျလန်ုပ်တို့ ရလေသချယ်ပါသည်။

လုံခဌုံရေသဆက်တင်မျာသကို စီစဉ်သတ်မဟတ်ပါ။ — Balancer အတလက် SSL လက်မဟတ်ကို ကနေရာတလင် ညလဟန်ပဌထာသပဌီသ၊ အဆင်ပဌေဆုံသ ရလေသချယ်မဟုမဟာ လက်မဟတ်တစ်ခုလုပ်ပါ။ ACM တလင် ကလဲပဌာသမဟုမျာသအကဌောင်သ လုံခဌုံရေသပေါ်လစီ တလင်ဖတ်ရဟုနိုင်ပါသည်။ စာရလက်စာတမ်သ၎င်သကို မူရင်သအတိုင်သ ရလေသချယ်ထာသနိုင်သည်။ ELBSecurityPolicy-2016-08. Balancer ကိုဖန်တီသပဌီသနောက်၊ သင်သည်၎င်သကိုတလေ့လိမ့်မည်။ DNS အမည်သင့်ဒိုမိန်သအတလက် CNAME ကို configure လုပ်ရန် လိုအပ်သော၊ ဥပမာအာသဖဌင့်၊ ၎င်သသည် Cloudflare တလင်ပုံဖဌစ်သည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

လုံခဌုံရေသအဖလဲ့ — ချိန်ခလင်လျဟာအတလက် လုံခဌုံရေသအဖလဲ့တစ်ခုကို ဖန်တီသပါ သို့မဟုတ် ရလေသချယ်ပါ၊ EC2 Launch Template → ကလန်ရက်ဆက်တင်မျာသကဏ္ဍတလင် ကအကဌောင်သကို အထက်တလင်ရေသခဲ့သည်။

ပစ်မဟတ်အုပ်စုတစ်စု — ကျလန်ုပ်တို့သည် ချိန်ခလင်လျဟာမဟ စက်မျာသသို့ တောင်သဆိုမဟုမျာသကို လမ်သကဌောင်သပဌောင်သပေသရန် တာဝန်ရဟိသော အဖလဲ့တစ်ဖလဲ့ကို ဖန်တီသပဌီသ ပဌဿနာမျာသရဟိလာပါက ၎င်သတို့ကို အစာသထိုသရန်အတလက် ၎င်သတို့၏ရရဟိနိုင်မဟုကို စစ်ဆေသခဌင်သ။ ပစ်မဟတ်အမျိုသအစာသ Instance ဖဌစ်မယ်၊ ပရိုတိုကော О ဆိပ်ကမ်သ မျဟခဌေနဟင့် သာဓကမျာသကဌာသ ဆက်သလယ်ရေသအတလက် HTTPS ကို သင်အသုံသပဌုပါက၊ ထို့နောက် ၎င်သတို့ထံသို့ လက်မဟတ်တစ်ခု အပ်လုဒ်လုပ်ရန် လိုအပ်သည်။ ကဥပမာ၏ရည်ရလယ်ချက်မျာသအတလက်၊ ကျလန်ုပ်တို့သည်ကအရာကိုလုပ်ဆောင်မည်မဟုတ်ပါ၊ ကျလန်ုပ်တို့သည် port 80 ကိုရိုသရဟင်သစလာထာသခဲ့ပါမည်။

ကျန်သမာရေသစစ်ဆေသခဌင်သ - ဝန်ဆောင်မဟု၏ လုပ်ဆောင်နိုင်စလမ်သကို စစ်ဆေသရန်အတလက် ဘောင်မျာသ။ စစ်မဟန်သောဝန်ဆောင်မဟုတစ်ခုတလင်၊ ၎င်သသည် လုပ်ငန်သယုတ္တိဗေဒ၏အရေသကဌီသသောအစိတ်အပိုင်သမျာသကိုအကောင်အထည်ဖော်သည့်သီသခဌာသတောင်သဆိုမဟုဖဌစ်သင့်သည်၊ ကဥပမာ၏ရည်ရလယ်ချက်အတလက်၊ ကျလန်ုပ်သည် ပုံသေဆက်တင်မျာသကိုထာသခဲ့ပါမည်။ ထို့နောက်၊ သင်သည် တောင်သဆိုမဟုကဌာသကာလ၊ အချိန်ကုန်ဆုံသမဟု၊ အောင်မဌင်မဟုကုဒ်မျာသစသည်ဖဌင့် ရလေသချယ်နိုင်သည်။ ကျလန်ုပ်တို့၏ဥပမာတလင်၊ အသုံသပဌုမည့် Docker ပုံသည် 200 ကုဒ်ကို ပဌန်ပေသသောကဌောင့် ကျလန်ုပ်တို့၏ဥပမာတလင်၊ ကျလန်ုပ်တို့သည် အောင်မဌင်မဟုကုဒ် 399-304 ကိုညလဟန်ပဌပါမည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

ပစ်မဟတ်မျာသကို စာရင်သသလင်သပါ။ — ကနေရာတလင် အဖလဲ့အတလက် ကာသမျာသကို ရလေသထာသသော်လည်သ ကျလန်ုပ်တို့၏ အခဌေအနေတလင် ၎င်သကို ECS မဟ လုပ်ဆောင်မည်ဖဌစ်သောကဌောင့် ကအဆင့်ကို ကျော်သလာသရုံသာဖဌစ်သည်။

သိရန်အသုံသဝင်သော: balancer အဆင့်တလင် S3 တလင် သိမ်သဆည်သမည့် မဟတ်တမ်သမျာသကို သင်ဖလင့်နိုင်သည်။ ပုံစံ. ၎င်သတို့ကို ခလဲခဌမ်သစိတ်ဖဌာမဟုမျာသအတလက် ပဌင်ပဝန်ဆောင်မဟုမျာသသို့ တင်ပို့နိုင်သည် သို့မဟုတ် သင် S3 ရဟိ ဒေတာပေါ်တလင် SQL မေသမဌန်သမဟုမျာသကို တိုက်ရိုက်ပဌုလုပ်နိုင်သည်။ Athena ကို အသုံသပဌု. ၎င်သသည် အဆင်ပဌေပဌီသ အပိုကုဒ်မပါဘဲ အလုပ်လုပ်သည်။ သတ်မဟတ်ကာလတစ်ခုပဌီသနောက် S3 ပုံသမဟ မဟတ်တမ်သမျာသကို ဖယ်ရဟာသခဌင်သကိုလည်သ ပဌင်ဆင်သတ်မဟတ်ရန် အကဌံပဌုပါသည်။

ECS Task အဓိပ္ပါယ်

ယခင်အဆင့်မျာသတလင်၊ ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုအခဌေခံအဆောက်အအုံနဟင့်ပတ်သက်သည့်အရာအာသလုံသကို ဖန်တီသခဲ့ပဌီသ၊ ယခုကျလန်ုပ်တို့စတင်ရောင်သချမည့်ကလန်တိန်နာမျာသကိုဖော်ပဌရန် ဆက်သလာသပါမည်။ ၎င်သကို ECS → Task Definitions ကဏ္ဍတလင် လုပ်ဆောင်သည်။

အမျိုသအစာသလိုက်ဖက်ညီမဟုကိုဖလင့်ပါ။ - EC2 ကိုရလေသချယ်ပါ။

Task execution IAM အခန်သကဏ္ဍ - ရလေသချယ်ပါ။ ecsTaskExecutionRole. ၎င်သကိုအသုံသပဌု၍ မဟတ်တမ်သမျာသရေသသာသခဌင်သ၊ လျဟို့ဝဟက်ကိန်သရဟင်မျာသထံ ဝင်ရောက်ခလင့် စသည်တို့ကို ပေသထာသသည်။

ကလန်တိန်နာ အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကဏ္ဍတလင် Add Container ကိုနဟိပ်ပါ။

image ကို — ပရောဂျက်ကုဒ်ဖဌင့် ပုံကို လင့်ခ်ချိတ်ပါ၊ ကဥပမာအတလက် ကျလန်ုပ်သည် Docker Hub မဟ အမျာသသူငဟာ ပုံတစ်ခုကို အသုံသပဌုပါမည်။ bitnami/node-example-0.0.1.

မဟတ်ဉာဏ်ကန့်သတ်ချက်မျာသ - ကလန်တိန်နာအတလက် မဟတ်ဉာဏ်ကန့်သတ်ချက်မျာသ။ Hard Limit - ကန့်သတ်ကန့်သတ်ချက်၊ ကလန်တိန်နာသည် သတ်မဟတ်ထာသသည့်တန်ဖိုသထက် ကျော်လလန်သလာသပါက၊ docker kill command ကို လုပ်ဆောင်မည်ဖဌစ်ပဌီသ၊ ကလန်တိန်နာသည် ချက်ချင်သသေဆုံသသလာသမည်ဖဌစ်သည်။ Soft Limit - ပျော့ပျောင်သသောကန့်သတ်ချက်၊ ကလန်တိန်နာသည် သတ်မဟတ်ထာသသောတန်ဖိုသထက်ကျော်လလန်သလာသနိုင်သော်လည်သ စက်မျာသတလင် အလုပ်မျာသတင်သည့်အခါတလင် ကကန့်သတ်ချက်ကို ထည့်သလင်သစဉ်သစာသမည်ဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ စက်တစ်ခုတလင် RAM 4 GiB ရဟိပဌီသ ကလန်တိန်နာတစ်ခု၏ ပျော့ပျောင်သသောကန့်သတ်ချက်မဟာ 2048 MiB ဖဌစ်ပါက၊ ကစက်တလင် ကကလန်တိန်နာဖဌင့် လုပ်ဆောင်နေသည့် အလုပ်အမျာသဆုံသ 2 ခုရဟိသည်။ လက်တလေ့တလင်၊ RAM 4 GiB သည် 4096 MiB ထက် အနည်သငယ်နည်သသည်၊ ၎င်သကို အစုအဝေသရဟိ ECS Instances တက်ဘ်တလင် ကဌည့်ရဟုနိုင်ပါသည်။ Soft limit သည် hard limit ထက် မပိုနိုင်ပါ။ အလုပ်တစ်ခုတလင် ကလန်တိန်နာမျာသစလာရဟိလျဟင် ၎င်သတို့၏ ကန့်သတ်ချက်မျာသကို အကျဉ်သချုံ့ထာသကဌောင်သ နာသလည်ရန် အရေသကဌီသပါသည်။

ဆိပ်ကမ်သမဌေပုံမျာသ - in လက်ခံဆိပ်ကမ်သ ကျလန်ုပ်တို့သည် 0 ကို ညလဟန်ပဌသည်၊ ဆိုလိုသည်မဟာ ဆိပ်ကမ်သကို အင်တိုက်အာသတိုက် တာဝန်ပေသမည်ဖဌစ်ပဌီသ ပစ်မဟတ်အုပ်စုက စောင့်ကဌည့်နေမည်ဖဌစ်သည်။ ကလန်တိန်နာဆိပ်ကမ်သ — သင့်အပလီကေသရဟင်သလည်ပတ်သည့် port ကို execution command တလင် မကဌာခဏသတ်မဟတ်ထာသသည်၊ သို့မဟုတ် သင့်လျဟောက်လလဟာကုဒ်၊ Dockerfile စသည်တို့တလင် သတ်မဟတ်ထာသသည်။ ကျလန်ုပ်တို့၏ဥပမာအတလက် 3000 ကိုအသုံသပဌုမည်ဖဌစ်သောကဌောင့် ၎င်သတလင်စာရင်သသလင်သထာသသည်။ dockerfile အသုံသပဌုနေသောပုံ။

ကျန်သမာရေသစစ်ဆေသမဟု — Target Group တလင် ပဌင်ဆင်ထာသသော ကလန်တိန်နာ ကျန်သမာရေသ စစ်ဆေသမဟု ကန့်သတ်ချက်မျာသ နဟင့် မရောထလေသစေရန်။

ပတ်ဝန်သကျင် - ပတ်ဝန်သကျင်ဆက်တင်မျာသ။ CPU ယူနစ်မျာသ - ပရိုဆက်ဆာနဟင့် ပတ်သက်သည့်သာမန်မိုရီကန့်သတ်ချက်မျာသနဟင့် ဆင်တူသည်။ ပရိုဆက်ဆာ core တစ်ခုစီသည် 1024 ယူနစ်ဖဌစ်သည်၊ ထို့ကဌောင့် ဆာဗာတလင် dual-core ပရိုဆက်ဆာရဟိပဌီသ ကလန်တိန်နာကို 512 ဟု သတ်မဟတ်ပါက၊ ကကလန်တိန်နာပါရဟိသော လုပ်ဆောင်စရာ ၄ ခုကို ဆာဗာတစ်ခုတလင် စတင်လုပ်ဆောင်နိုင်သည်။ CPU ယူနစ်မျာသသည် cores အရေအတလက်နဟင့် အမဌဲသက်ဆိုင်သည်၊ မန်မိုရီကဲ့သို့ပင် ၎င်သတို့ထဲမဟ အနည်သငယ်နည်သ၍ မရပါ။

အမိန့် - ကလန်တိန်နာအတလင်သ ဝန်ဆောင်မဟုတစ်ခုစတင်ရန် ညလဟန်ကဌာသချက်တစ်ခု၊ ဘောင်အာသလုံသကို ကော်မာမျာသဖဌင့် ခလဲခဌာသသတ်မဟတ်ထာသသည်။ ၎င်သသည် သေနတ်၊ npm စသည်ဖဌင့် ဖဌစ်နိုင်သည်။ မသတ်မဟတ်ထာသပါက Dockerfile မဟ CMD လမ်သညလဟန်တန်ဖိုသကို အသုံသပဌုပါမည်။ ကျလန်ုပ်တို့ညလဟန်ပဌသည်။ npm,start.

ပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသ - ကလန်တိန်နာပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသ။ ၎င်သသည် ရိုသရဟင်သသော စာသာသဒေတာ သို့မဟုတ် လျဟို့ဝဟက်ပဌောင်သလလဲမဟုမျာသ ဖဌစ်နိုင်သည်။ လျဟို့ဝဟက်မန်နေဂျာ သို့မဟုတ် ကန့်သတ်ချက်စတိုသ.

သိုလဟောင်မဟုနဟင့် သစ်ထုတ်လုပ်ရေသ — ကနေရာတလင် ကျလန်ုပ်တို့သည် CloudWatch Logs (AWS မဟ မဟတ်တမ်သမျာသအတလက် ဝန်ဆောင်မဟုတစ်ခု) တလင် လော့ဂ်လုပ်ခဌင်သကို သတ်မဟတ်ပါမည်။ ဒါကိုလုပ်ဖို့၊ Auto-configure CloudWatch Logs ကို အမဟန်ခဌစ်ပေသလိုက်ပါ။ Task Definition ကိုဖန်တီသပဌီသနောက်၊ မဟတ်တမ်သအုပ်စုတစ်စုကို CloudWatch တလင် အလိုအလျောက်ဖန်တီသပေသမည်ဖဌစ်သည်။ မူရင်သအာသဖဌင့်၊ မဟတ်တမ်သမျာသကို ၎င်သတလင် အကန့်အသတ်မရဟိ သိမ်သဆည်သထာသပါသည်၊ ထိန်သသိမ်သထာသချိန်ကာလကို Never Expire မဟ လိုအပ်သောကာလသို့ ပဌောင်သလဲရန် အကဌံပဌုလိုပါသည်။ ၎င်သကို CloudWatch Log အဖလဲ့မျာသတလင် လုပ်ဆောင်ပဌီသ၊ သင်သည် လက်ရဟိကာလကို နဟိပ်ပဌီသ အသစ်တစ်ခုကို ရလေသချယ်ရန် လိုအပ်သည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

ECS Cluster နဟင့် ECS စလမ်သဆောင်ရည် ပံ့ပိုသပေသသူ

အစုအဝေသတစ်ခုဖန်တီသရန် ECS → အစုအဝေသမျာသကဏ္ဍသို့ သလာသပါ။ ကျလန်ုပ်တို့သည် ပုံစံပလိတ်အဖဌစ် EC2 Linux + Networking ကို ရလေသချယ်သည်။

အစုအဖလဲ့အမည် - အလလန်အရေသကဌီသပါသည်၊ ကျလန်ုပ်တို့သည် ကနေရာတလင် Launch Template ပါရာမီတာတလင် သတ်မဟတ်ထာသသည့်အတိုင်သ အမည်တူပဌုလုပ်ထာသသည်။ ECS_CLUSTERငါတို့ကိစ္စမဟာ၊ DemoApiClusterProd. Create an empty cluster checkbox ကိုစစ်ဆေသပါ။ ရလေသချယ်နိုင်သောအာသဖဌင့်၊ သင်သည် CloudWatch ရဟိဝန်ဆောင်မဟုမျာသအတလက် မက်ထရစ်မျာသကိုကဌည့်ရဟုရန် Container Insights ကိုဖလင့်နိုင်သည်။ သင်အရာအာသလုံသကို မဟန်ကန်စလာလုပ်ဆောင်ခဲ့ပါက ECS Instances ကဏ္ဍတလင် Auto Scaling အုပ်စုတလင် ဖန်တီသထာသသည့် စက်မျာသကို သင်တလေ့ရပါမည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

တက်ဘ်သို့သလာသပါ။ စလမ်သဆောင်ရည် ပံ့ပိုသပေသသူမျာသ အသစ်တစ်ခုဖန်တီသပါ။ ECS လုပ်ဆောင်သည့် အရေအတလက်ပေါ်မူတည်၍ စက်မျာသကို ဖန်တီသခဌင်သနဟင့် ပိတ်ခဌင်သတို့ကို ထိန်သချုပ်ရန် လိုအပ်ကဌောင်သ သတိပေသပါရစေ။ ဝန်ဆောင်မဟုပေသသူတစ်ညသကို အဖလဲ့တစ်ခုတလင်သာ သတ်မဟတ်ပေသနိုင်ကဌောင်သ သတိပဌုရန် အရေသကဌီသပါသည်။

အော်တိုစကေသရဟင်သအဖလဲ့ — ယခင်ဖန်တီသထာသသောအဖလဲ့ကို ရလေသပါ။

အတိုင်သအတာကို စီမံခန့်ခလဲသည်။ — ဝန်ဆောင်မဟုပေသသူသည် ဝန်ဆောင်မဟုကို အတိုင်သအတာဖဌင့် လုပ်ဆောင်နိုင်စေရန် ၎င်သကို ဖလင့်ပါ။

ပစ်မဟတ်စလမ်သရည် % - အလုပ်မျာသတင်ဆောင်ထာသသော စက်မျာသ၏ ရာခိုင်နဟုန်သမည်မျဟလိုအပ်သနည်သ။ 100% သတ်မဟတ်ပါက စက်အာသလုံသသည် အမဌဲတမ်သ လုပ်ဆောင်နေသော အလုပ်မျာသနဟင့် အလုပ်မျာသနေလိမ့်မည်။ 50% သတ်မဟတ်ပါက ကာသမျာသ၏ ထက်ဝက်သည် အမဌဲတမ်သ အခမဲ့ဖဌစ်သည်။ ကအခဌေအနေတလင်၊ အရဟိန်အဟုန်ဖဌင့် ခုန်တက်သလာသပါက၊ အငဟာသယာဉ်အသစ်မျာသသည် နေရာချထာသရန် စောင့်ဆိုင်သစရာ မလိုဘဲ အလကာသကာသမျာသ ချက်ချင်သရနိုင်မည်ဖဌစ်သည်။

ရပ်စဲခဌင်သကာကလယ်ရေသကို စီမံခန့်ခလဲသည်။ — ဖလင့်ပါ၊ ကကန့်သတ်ချက်သည် ဝန်ဆောင်မဟုပေသသူကို ဖျက်ခဌင်သမဟ သာဓကမျာသ၏ အကာအကလယ်ကို ဖယ်ရဟာသရန် ခလင့်ပဌုသည်။ စက်တလင် တက်ကဌလသောလုပ်ဆောင်စရာမျာသမရဟိ၍ ပစ်မဟတ်စလမ်သရည် ရာခိုင်နဟုန်သကို ခလင့်ပဌုသည့်အခါ ၎င်သသည် ဖဌစ်ပေါ်သည်။

ECS ဝန်ဆောင်မဟု နဟင့် အတိုင်သအတာ သတ်မဟတ်မဟု

နောက်ဆုံသအဆင့် :) ဝန်ဆောင်မဟုတစ်ခုဖန်တီသရန်၊ ဝန်ဆောင်မဟုမျာသတက်ဘ်ရဟိ ယခင်ဖန်တီသထာသသော အစုအဝေသသို့ သလာသရန်လိုအပ်သည်။

ပစ်လလဟတ်အမျိုသအစာသ — သင်သည် Switch to capacity provider strategy ကိုနဟိပ်ပဌီသ ယခင်ဖန်တီသထာသသည့် ပံ့ပိုသပေသသူမျာသကို ရလေသရန် လိုအပ်သည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

Task Definition — ယခင်က ဖန်တီသထာသသော Task Definition နဟင့် ၎င်သ၏ ပဌန်လည်ပဌင်ဆင်မဟုကို ရလေသချယ်ပါ။

ဝန်ဆောင်မဟုအမည် - စိတ်ရဟုပ်ထလေသမဟုကို ရဟောင်ရဟာသရန်၊ ကျလန်ုပ်တို့သည် Task Definition ကဲ့သို့ အမဌဲညလဟန်ပဌပါသည်။

ဝန်ဆောင်မဟုအမျိုသအစာသ - အမဌဲပုံတူ။

အလုပ်အရေအတလက် - ဝန်ဆောင်မဟုတလင် အလိုရဟိသော အလုပ်မျာသ အရေအတလက်။ ကကန့်သတ်ချက်အာသ အတိုင်သအတာဖဌင့် ထိန်သချုပ်ထာသသော်လည်သ သတ်မဟတ်ရမည်ဖဌစ်ပါသည်။

အနည်သဆုံသ ကျန်သမာသော ရာခိုင်နဟုန်သ О အမျာသဆုံသရာခိုင်နဟုန်သ - ဖဌန့်ကျက်စဉ်အတလင်သ လုပ်ငန်သဆောင်တာမျာသ၏ အပဌုအမူကို ဆုံသဖဌတ်ပါ။ ပုံသေတန်ဖိုသမျာသသည် 100 နဟင့် 200 ဖဌစ်ပဌီသ၊ ဖဌန့်ကျက်ချိန်တလင် လုပ်ဆောင်စရာအရေအတလက်သည် အဆမျာသစလာတိုသလာပဌီသ လိုချင်သောတန်ဖိုသသို့ ပဌန်သလာသမည်ဖဌစ်ကဌောင်သ ညလဟန်ပဌသည်။ အကယ်၍ သင့်တလင် လုပ်ဆောင်နေသော လုပ်ဆောင်စရာ 1 ခု၊ min=0 နဟင့် max=100 ရဟိပါက၊ ထို့နောက် အသုံသပဌုနေစဉ်အတလင်သ ၎င်သကို သတ်ပစ်မည်ဖဌစ်ပဌီသ ၎င်သနောက်တလင် အသစ်တစ်ခု တက်လာမည်ဖဌစ်သည်၊ ဆိုလိုသည်မဟာ ၎င်သသည် စက်ရပ်သလာသမည်ဖဌစ်သည်။ အလုပ် 1 ခု လုပ်ဆောင်နေပါက၊ min=50၊ max=150၊ လုပ်ဆောင်ချက် ၁ ခုကို တဝက်ခလဲ၍ သို့မဟုတ် တဆခလဲ တိုသ၍မရသောကဌောင့် ဖဌန့်ကျက်မဟု လုံသဝဖဌစ်လာမည်မဟုတ်ပါ။

ဖဌန့်ကျက်မဟု အမျိုသအစာသ — Rolling update ကို ချန်ထာသပါ။

နေရာချထာသမဟု ပုံစံမျာသ - စက်မျာသပေါ်တလင်အလုပ်မျာသထာသရန်စည်သမျဉ်သမျာသ။ မူရင်သမဟာ AZ Balanced Spread ဖဌစ်သည် - ဆိုလိုသည်မဟာ အလုပ်အသစ်တစ်ခုစီကို ရရဟိနိုင်မဟုဇုန်အာသလုံသရဟိ စက်မျာသတက်လာသည်အထိ စံနမူနာအသစ်တစ်ခုတလင် ထာသရဟိမည်ဖဌစ်သည်။ ကျလန်ုပ်တို့ မျာသသောအာသဖဌင့် BinPack - CPU နဟင့် Spread - AZ တို့ကို လုပ်ဆောင်လေ့ရဟိသည်၊ ကမူဝါဒဖဌင့် လုပ်ဆောင်ချက်မျာသကို CPU တစ်ခုလျဟင် စက်တစ်လုံသတလင် တတ်နိုင်သမျဟ ထူထပ်စလာချထာသပါသည်။ စက်အသစ်ဖန်တီသရန် လိုအပ်ပါက ၎င်သကို ရရဟိနိုင်မဟုဇုန်အသစ်တလင် ဖန်တီသထာသသည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

Load balancer အမျိုသအစာသ — Application Load Balancer ကို ရလေသပါ။

ဝန်ဆောင်မဟု IAM အခန်သကဏ္ဍ - ရလေသချယ်ပါ။ ecsServiceRole.

Load Balancer အမည် — ယခင်ဖန်တီသထာသသော ချိန်ခလင်လျဟာကို ရလေသချယ်ပါ။

ကျန်သမာရေသစစ်ဆေသသည့်ကာလ — အလုပ်အသစ်တစ်ခုစတင်ပဌီသနောက် ကျန်သမာရေသစစ်ဆေသမဟုမျာသမလုပ်ဆောင်မီ ခေတ္တရပ်ပါ၊ ကျလန်ုပ်တို့က ၎င်သကို စက္ကန့် 60 ထာသလေ့ရဟိသည်။

လက်ကျန်တင်ရန် ကလန်တိန်နာ — ပစ်မဟတ်အုပ်စုအမည်အကဌောင်သအရာတလင်၊ ယခင်ဖန်တီသထာသသောအဖလဲ့ကို ရလေသပါ၊ ပဌီသပါက အရာအာသလုံသသည် အလိုအလျောက်ဖဌည့်မည်ဖဌစ်သည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

ဝန်ဆောင်မဟု အော်တိုစကေသချခဌင်သ။ - ဝန်ဆောင်မဟု အတိုင်သအတာ ကန့်သတ်ချက်မျာသ။ သင့်ဝန်ဆောင်မဟု၏အလိုရဟိသောအရေအတလက်ကို ချိန်ညဟိရန် Configure Service Auto Scaling ကိုရလေသချယ်ပါ။ စကေသချဲ့သောအခါတလင် ကျလန်ုပ်တို့သည် အနိမ့်ဆုံသနဟင့် အမျာသဆုံသ လုပ်ဆောင်စရာ အရေအတလက်ကို သတ်မဟတ်သည်။

Service Auto Scaling အတလက် IAM အခန်သကဏ္ဍ - ရလေသချယ်ပါ။ AWSServiceRoleForApplicationAutoScaling_ECSService.

အလိုအလျောက် လုပ်ငန်သစကေသချဲ့ခဌင်သ မူဝါဒမျာသ - အတိုင်သအတာအတလက်စည်သမျဉ်သမျာသ။ အမျိုသအစာသ 2 မျိုသရဟိပါတယ်:

  1. ပစ်မဟတ်ခဌေရာခံ — ပစ်မဟတ်မက်ထရစ်မျာသကို ခဌေရာခံခဌင်သ (CPU/RAM အသုံသပဌုမဟု သို့မဟုတ် လုပ်ငန်သတစ်ခုစီအတလက် တောင်သဆိုချက်အရေအတလက်)။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် ပျမ်သမျဟပရိုဆက်ဆာဝန်အာသ 85% မဌင့်မာသလာသောအခါ၊ ၎င်သသည် ပစ်မဟတ်တန်ဖိုသသို့ရောက်ရဟိသည်အထိ လုပ်ဆောင်စရာအသစ်မျာသကို ပေါင်သထည့်မည်ဖဌစ်သည်။ ဝန်ပိုနိမ့်ပါက၊ ဆန့်ကျင်ဘက်အနေနဟင့်၊ အတိုင်သအတာလျဟော့ချခဌင်သအာသ အကာအကလယ်မပေသထာသပါက၊ အလုပ်မျာသကို ဖယ်ရဟာသမည် (စကေသဝင်ခဌင်သကို ပိတ်ပါ။).
  2. အဆင့် အတိုင်သအတာ - မတရာသသော အဖဌစ်အပျက်ကို တုံ့ပဌန်ခဌင်သ။ ကတလင် သင်သည် မည်သည့်ဖဌစ်ရပ် (CloudWatch Alarm) ကိုမဆို တုံ့ပဌန်မဟုတစ်ခုကို စီစဉ်သတ်မဟတ်နိုင်သည်၊ ၎င်သသည် ဖဌစ်ပေါ်လာသောအခါ၊ သင်သည် သတ်မဟတ်ထာသသော အလုပ်အရေအတလက်ကို ထည့်နိုင် သို့မဟုတ် ဖယ်ရဟာသနိုင်သည်၊ သို့မဟုတ် လုပ်ဆောင်စရာအရေအတလက်အတိအကျကို သတ်မဟတ်နိုင်သည်။

ဝန်ဆောင်မဟုတစ်ခုတလင် စကေသချဲ့ခဌင်သဆိုင်ရာ စည်သမျဉ်သမျာသစလာရဟိနိုင်သည်၊ ၎င်သသည် အသုံသဝင်နိုင်သည်၊ အဓိကအချက်မဟာ ၎င်သတို့သည် တစ်ခုနဟင့်တစ်ခု မကလဲလလဲစေရန် သေချာစေရန်ဖဌစ်သည်။

ကောက်ချက်

အကယ်၍ သင်သည် ညလဟန်ကဌာသချက်မျာသကို လိုက်နာပဌီသ တူညီသော Docker ပုံကို အသုံသပဌုပါက၊ သင့်ဝန်ဆောင်မဟုသည် ကကဲ့သို့သော စာမျက်နဟာကို ပဌန်ပေသရပါမည်။

AWS Spot Instances တလင် Scalable API တစ်ခုကို တည်ဆောက်ခဌင်သ။

  1. ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုရဟိ စက်အာသလုံသကို စတင်အသုံသပဌုသည့်အတိုင်သ ပုံစံပလိတ်တစ်ခုကို ဖန်တီသထာသပါသည်။ နမူနာပုံစံပဌောင်သသည့်အခါ စက်မျာသကို အပ်ဒိတ်လုပ်နည်သကိုလည်သ လေ့လာခဲ့သည်။
  2. ကျလန်ုပ်တို့သည် spot instance stop signal ၏လုပ်ဆောင်ခဌင်သကို configure လုပ်ထာသပဌီသ၊ ထို့ကဌောင့် ၎င်သကိုလက်ခံရရဟိပဌီသတစ်မိနစ်အတလင်သ၊ လုပ်ဆောင်နေသောအလုပ်မျာသအာသလုံသကို စက်မဟဖယ်ရဟာသလိုက်သောကဌောင့် မည်သည့်အရာမျဟ ပျောက်ဆုံသခဌင်သ သို့မဟုတ် အနဟောင့်အယဟက်မရဟိပါ။
  3. စက်မျာသတစ်လျဟောက် ဝန်ကို အညီအမျဟ ဖဌန့်ဝေရန် ချိန်ခလင်လျဟာကို ကျလန်ုပ်တို့ မဌဟင့်တင်ခဲ့သည်။
  4. စက်ကုန်ကျစရိတ် ၃ ဆခန့် လျဟော့ချပေသသည့် အဖဌစ်အပျက်မျာသကို အတိအကျ လုပ်ဆောင်နိုင်သော ဝန်ဆောင်မဟုကို ကျလန်ုပ်တို့ ဖန်တီသထာသပါသည်။
  5. စက်ရပ်စရိတ်မျာသ မလိုအပ်ဘဲ မျာသပဌာသလာသော အလုပ်မျာသကို ကိုင်တလယ်ရန် လမ်သကဌောင်သ နဟစ်ခုစလုံသတလင် အလိုအလျောက် အရလယ်အစာသ ပဌောင်သလဲခဌင်သကို ကျလန်ုပ်တို့ စီစဉ်သတ်မဟတ်ထာသပါသည်။
  6. အပလီကေသရဟင်သသည် အခဌေခံအဆောက်အည (စက်မျာသ) ကို စီမံခန့်ခလဲရန် အခဌာသနည်သလမ်သမဟုတ်ဘဲ Capacity Provider ကို ကျလန်ုပ်တို့ အသုံသပဌုပါသည်။
  7. ကျလန်တော်တို့ အရမ်သကောင်သတယ်။

သင့်တလင် ကဌိုတင်မဟန်သဆနိုင်သော spikes မျာသရဟိပါက ဥပမာအာသဖဌင့် သင်သည် ကဌီသမာသသော အီသမေသလ်ကမ်ပိန်သတလင် ကဌော်ငဌာနေသည်၊ အတိုင်သအတာအာသဖဌင့် သတ်မဟတ်နိုင်သည်။ အချိန်ဇယာသ.

သင့်စနစ်၏ မတူညီသော အစိတ်အပိုင်သမျာသမဟ ဒေတာမျာသကို အခဌေခံ၍လည်သ အတိုင်သအတာကို ပဌုလုပ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့တလင် လုပ်ဆောင်နိုင်စလမ်သရဟိသည်။ တစ်ညသချင်သ ပရိုမိုသရဟင်သ ကမ်သလဟမ်သချက်မျာသကို ပေသပို့ခဌင်သ။ မိုဘိုင်သအက်ပလီကေသရဟင်သကိုအသုံသပဌုသူမျာသ။ တစ်ခါတစ်ရံတလင် ကမ်ပိန်သတစ်ခုသည် လူ 1M+ သို့ ပေသပို့သည်။ ကကဲ့သို့ ဖဌန့်ဖဌူသပဌီသနောက်၊ အသုံသပဌုသူအမျာသအပဌာသသည် တစ်ချိန်တည်သတလင် အပလီကေသရဟင်သသို့ ဝင်ရောက်ကဌသောကဌောင့် API သို့ တောင်သဆိုမဟုမျာသ မျာသပဌာသလာသည်။ ထို့ကဌောင့် ပရိုမိုသရဟင်သတလန်သအာသပေသအကဌောင်သကဌာသစာမျာသ ပေသပို့ခဌင်သအတလက် တန်သစီရာတလင် သိသိသာသာ ပိုမိုစံညလဟန်သကိန်သမျာသ ရဟိနေသည်ကို ကျလန်ုပ်တို့ တလေ့မဌင်ပါက၊ ဝန်ဆောင်ခအတလက် အဆင်သင့်ဖဌစ်စေရန် နောက်ထပ် စက်မျာသနဟင့် လုပ်ဆောင်စရာမျာသစလာကို ချက်ချင်သ စတင်နိုင်ပါမည်။

Spot instances နဟင့် ECS သို့မဟုတ် scaling နဟင့် ပတ်သက်သော တစ်ခုခုကို အသုံသပဌုခဌင်သ၏ စိတ်ဝင်စာသစရာကောင်သသော ကိစ္စရပ်မျာသကို မဟတ်ချက်မျာသတလင် ပဌောပဌပါက ဝမ်သမဌောက်မိပါသည်။

မျာသမကဌာမီတလင် ဆာဗာမဲ့အစုအဝေသ (ပိုက်ဆံဖဌင့်) တစ်စက္ကန့်လျဟင် ထောင်ပေါင်သမျာသစလာသော ခလဲခဌမ်သစိတ်ဖဌာမဟုဖဌစ်ရပ်မျာသကို ကျလန်ုပ်တို့ မည်သို့လုပ်ဆောင်ပုံနဟင့် GitLab CI နဟင့် Terraform Cloud ကို အသုံသပဌု၍ ဝန်ဆောင်မဟုမျာသ ဖဌန့်ကျက်လုပ်ဆောင်ပုံအကဌောင်သ ဆောင်သပါသမျာသ ရဟိလာပါမည်။

ကျလန်ုပ်တို့ကို စာရင်သသလင်သပါ၊ စိတ်ဝင်စာသစရာဖဌစ်ပါမည်။

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

ထုတ်လုပ်မဟုတလင် သာဓကမျာသကို သင်အသုံသပဌုပါသလာသ။

  • 22,2%ဟုတ်တယ်6

  • 66,7%နံပါတ် ၂၄၄

  • 11,1%အဲဒါတလေကို ဆောင်သပါသတစ်ပုဒ်ကနေ လေ့လာခဲ့ပဌီသ အဲဒါတလေကို သုံသဖို့ စီစဉ်ခဲ့တယ်။

အသုံသပဌုသူ 27 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 5 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add