Generating too many files under Code Deploy Agent Default Path
POC တစ်ခုစမ်းရင်းနဲ့ ကြုံတွေ့ရတဲ့ သတိထားစရာလေးတစ်ခုကို sharing လုပ်ပေးချင်လို့ပါ။
Windows မှာ Code deploy agent run လိုက်ပြီဆိုရင် C:\ProgramData\Amazon\CodeDeploy
folder လေး ပေါ်လာပါတယ်။ အဲ့ folder အောက်မှာ bin ဆိုတဲ့ folder လေးရှိပါတယ်။
Code Deploy Agent restart တစ်ခါချတိုင်း/ကျတိုင်း bin folder အောက်မှာ .tmp
files လေးတွေ generate ဖြစ်ပါတယ်။
ပုံမှန် Prod တွေကတော့များသောအားဖြင့် server restart ချတာမျိုး ရှားတာကြောင့် ဒီ tmp fileလေးတွေကနည်းပါလိမ့်မယ်။
အခုကြုံတွေ့ရတဲ့ case လေးကတော့ On-premises EC2ပေါ်မှာပါ။ On-premises ပေါ်မှာ Code Deploy Agent install ပြီး deployment လုပ်ဖို့ဆိုရင် Role တစ်ခု Create ထားပြီး Temporary Credentials ကို assume role ယူပြီး generate ဖို့လိုပါတယ်။ ဒါပေမဲ့ အဲ့ဒီရထားတဲ့ Temporary Credentials တွေက 1 hour နေရင် expire ဖြစ်တာပါ။ ဒါဆို deployment လုပ်တဲ့အချိန်မှ manual credentials ပြန်ထုတ်နေဖို့ဆိုတာက server အရေအတွက်များတဲ့အခါ မဖြစ်နိုင်ပါဘူး။
ဒါကြောင့် Powershell Script or SSM နဲ့ 1 hour တစ်ခါ credentials ပြန်တောင်းဖို့ ရေးထားလိုက်ပါတယ်။ Credentials fileတောင်းပြီးရင်တော့ Code Deploy Agent ကို restart ချဖို့လိုပါတယ်။
ပြဿနာက ဒီနေရာမှာစတာပါ။
Credentials ကို တစ်နာရီခြားတစ်ခါ ပြန်တောင်းဖို့ run ထားတာဖြစ်တဲ့အတွက်ကြောင့် Code Deploy Agent က တစ်နာရီခြားတစ်ခါ restart ချပေးထားရပါတယ်။ Restart ကျတိုင်းမှာ bin အောက်မှာ tmp file တွေပေါ်လာပါတယ်။ ဒီလိုနဲ့ bin folder အောက်မှာ tmp files တွေ အများကြီးဖြစ်ပြီး folder size ကအရမ်းကြီးလာတာ spaceတွေအရမ်းယူပြီး Partitionတွေပြည့်လာတာမျိုးဖြစ်လာပါတယ်။ ဒီ issueကို ဖြေရှင်းဖို့အတွက် ညီမ ကတော့ script မှာပဲ တစ်နာရီပြည့်လို့ credentials ပြန်တောင်းတဲ့ အခါမှာ Code Deploy Agent restart မချခင်မှာ previous tmp file ကို delete ဖို့ ရေးပေးထားလိုက်ပါတယ်။
Sharing လုပ်ပေးချင်တဲ့ အဓိက အကြောင်းရင်းကတော့ On-premises Windows VM ပေါ်မှာ Code Deploy Agent restart ချတိုင်း C:\ProgramData\Amazon\CodeDeploy\bin
အောက်မှာ tmp files တွေပေါ်လာတယ်ဆိုတာပါပဲ။
AWS EC2 ပေါ်မှာဆိုရင်တော့ restart ခဏခဏချစရာမလိုတဲ့အတွက် tmp files တွေကအရမ်းများလာမှာမဟုတ်ပါဘူး။
On-premises Windows VM တွေမှာ Code Deploy Agent နဲ့သုံးထားမယ်ဆိုရင်တော့ သတိထားစရာတစ်ခုဖြစ်ပါတယ်။