လက်တွေ့လမ်းညွှန် / အခမဲ့ Ubuntu VPS

အခမဲ့ Ubuntu VPS ကို Oracle တွင် ဖန်တီးပါ

Oracle Always Free တွင် eligible ဖြစ်သော Ubuntu instance ကို public Linux VPS အဖြစ် ဖန်တီးပြီး မိမိကွန်ပျူတာမှ SSH ချိတ်ဆက်မှုကို အတည်ပြုပါ။ ဒီလမ်းညွှန်သည် account အတည်ပြုပြီး၊ capacity ရှိကာ ရွေးမည့် resources အတွက် quota လုံလောက်သည်ဟု ယူဆသည်။

· ပြင်ဆင်ရက် · ဖတ်ရန် 8 မိနစ်ခန့်

စာမျက်နှာအကြောင်းအရာ

Account စစ်ပြီး instance ငယ်တစ်ခု ရွေးပါ

ဒီဥပမာတွင် account home region ရှိ AMD VM.Standard.E2.1.Micro၊ RAM 1 GB နှင့် Ubuntu 24.04 LTS x86 image ကို သုံးသည်။ Administration လေ့ကျင့်ရန် ပတ်ဝန်းကျင်ငယ်ဖြစ်ပြီး တိုင်းတာထားသော capacity အကြံပြုချက် မဟုတ်ပါ။ Oracle က Ubuntu ကို eligible ဟုဖော်ပြသော်လည်း exact image/shape ၏ အခမဲ့အကျုံးဝင်မှုကို Console တွင် အတည်ပြုပါ။

Instance၊ network နှင့် console connection စီမံခွင့်၊ မိမိကွန်ပျူတာတွင် OpenSSH လိုသည်။ Local command များသည် Linux၊ macOS သို့မဟုတ် WSL shell အတွက်ဖြစ်သည်။ Signup၊ capacity နှင့် ဆက်လက်ရရှိမှုကို မအာမခံပါ။ Idle instance ပြန်သိမ်းခံရနိုင်သည်။ အခမဲ့ VPS နှင့် trial နှိုင်းယှဉ်မှု ကို အရင်ဖတ်ပါ။

Instance မဖန်တီးမီ SSH key ကို သိမ်းပါ

မိမိကွန်ပျူတာတွင် command များကို ရိုက်ပါ။ နာမည်တူဖိုင်ရှိလျှင် မရေးအစားထိုးဘဲ နာမည်အသစ်ကို အဆင့်တိုင်းတွင် သုံးပါ။ Passphrase သတ်မှတ်ပါ။

mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 3072 -f ~/.ssh/oci-ubuntu-free
chmod 600 ~/.ssh/oci-ubuntu-free
cat ~/.ssh/oci-ubuntu-free.pub

Private file ကို လုံခြုံစွာသိမ်းပြီး instance ဖန်တီးရာတွင် .pub ကိုသာ တင်ပါ။ Public key က ဘယ်သူဝင်ခွင့်ရှိသလဲ သတ်မှတ်သည်။ နောက်တွင်စစ်မည့် host key က ဘယ်ဆာဗာသို့ချိတ်နေသလဲ သတ်မှတ်သည်။ Key နှစ်မျိုး မတူပါ။

Compartment၊ region၊ instance name နှင့် IDs ပါသော inventory လုပ်ပါ။ ubuntu-free-ssh ကို ဒီစမ်းသပ်ချက်အသစ်အတွက်သာ သုံးပါ။ နာမည်တစ်ခုတည်းက OCI resource ကို တိတိကျကျ မခွဲနိုင်ပါ။

Public subnet နှင့် ကန့်သတ်ထားသော SSH ကို ပြင်ပါ

Networking တွင် သီးခြား VCN၊ ဥပမာ 10.20.0.0/16 နှင့် regional public subnet 10.20.1.0/24 ဖန်တီးပါ။ ရှိပြီးသား network နှင့် ချိတ်မည်ဆိုလျှင် မထပ်သော ranges ရွေးပါ။ ထို VCN တွင် internet gateway ဖန်တီးပြီး ဖွင့်ပါ။

Subnet နှင့်ဆက်ထားသော route table တွင် destination 0.0.0.0/0၊ target ကို ထို internet gateway သတ်မှတ်ပါ။ Instance တွင် public IPv4 လည်း လိုသည်။ Route တစ်ခုတည်းက IP မပေးပါ။

Subnet security list တွင် stateful ingress rule ထည့်ပါ။ Source CIDR သည် လက်ရှိ မိမိ public IPv4 နှင့် /32၊ protocol TCP၊ source ports All၊ destination port 22 ဖြစ်သည်။ Private Wi-Fi address မဟုတ်ဘဲ internet မှမြင်သော IP သုံးပါ။ လိုအပ်သော default egress နှင့် ICMP rules ကို ထိန်းပါ။

ဒီသီးခြား list တွင် world-open SSH rule ရှိလျှင် အစားထိုးပါ။ ကျဉ်းသော rule က အခြား permissive rule ကို မပယ်ဖျက်ပေးပါ။ ချိတ်ထားသော security lists နှင့် NSGs အားလုံး စစ်ပါ။ ဒီဥပမာတွင် NSG၊ NAT gateway၊ load balancer မထည့်ပါ။ Workstation public IP ပြောင်းလျှင် /32 rule ကို ပြန်ပြင်ပါ။

Eligible Ubuntu instance ဖန်တီးပါ

Home region တွင် Compute → Instances → Create instance ကို ဖွင့်ပါ။ ubuntu-free-ssh ဟု နာမည်ပေးပြီး compartment မှန်ကို ရွေးပါ။ မဖန်တီးမီ setting များကို စစ်ပါ။

မျက်နှာပြင်ငယ်တွင် ကော်လံအားလုံးကြည့်ရန် ဇယားကို ဘေးတိုက်ရွှေ့ပါ။

Settingဒီလမ်းညွှန်တွင် ရွေးရန်
Imagex86/amd64 အတွက် eligible Canonical Ubuntu 24.04 LTS platform image
ShapeVM.Standard.E2.1.Micro၊ AMD၊ RAM 1 GB
Boot volume50 GB၊ eligible performance နှင့် လက်ကျန် quota စစ်ရန်
Networkသီးခြား public subnet နှင့် assigned public IPv4
SSH keyoci-ubuntu-free.pub public key တင်ရန်
ExtrasVolume အပို၊ paid image software သို့မဟုတ် managed services မပါ

Oracle home region တွင် Always Free boot/block storage စုစုပေါင်း 200 GB ရှိသည်။ ရှိပြီးသား volumes ကိုပါ ထည့်တွက်ပါ။ Resource တိုင်း၏ eligibility နှင့် estimate ကို စစ်ပါ။ Trial credit က စရိတ်ဖုံးနေခြင်းသည် ဆက်လက်အခမဲ့ရကြောင်း မပြပါ။ မရှင်းလျှင် quota နှင့် ငွေစာရင်းစစ်ဆေးနည်း ကို ဖတ်ပါ။

အောက်ပါစာသားကို local file အဖြစ် သိမ်းပြီး Advanced options → Management → Initialization script တွင် တင်ပါ။ နောက်စစ်ရန် cloud-init မှ public host keys/fingerprints ကို console တွင် ပြစေခြင်းဖြစ်ပြီး private key မပါပါ။

#cloud-config
ssh:
  emit_keys_to_console: true

Settings စစ်ပြီးမှ ဖန်တီးပါ။ Eligible capacity မရှိလျှင် paid shape ကို မှားရွေးမည့်အစား ရပ်ပြီး ပြန်စဉ်းစားပါ။ Running ဖြစ်လျှင် instance OCID၊ boot-volume OCID နှင့် public IPv4 ကို မှတ်ပါ။

OCI console history မှ guest host key ကို အတည်ပြုပါ

ပထမ SSH prompt လက်မခံမီ OCI Console တွင် ဒီ instance အတိအကျကို ဖွင့်ပါ။ OS Management သို့မဟုတ် Resources အောက်မှ Console connection → Launch Cloud Shell connection ကို ရွေးပါ။ Console history ရယူရန်လိုသော connection ဖြစ်ပြီး account permissions လိုသည်။

Console history → View current history မှ first-boot output ကို သိမ်းပါ။ cloud-init ထုတ်သော SSH HOST KEY FINGERPRINTS အပိုင်းတွင် guest host key ၏ SHA256 fingerprint နှင့် key type ကို မှတ်ပါ။ Authorized user key fingerprint နှင့် မရောပါနှင့်။

Console connection resource တွင်ပြသော fingerprint သည် OCI console endpoint အတွက်ဖြစ်ပြီး guest ၏ ပုံမှန် SSH endpoint မဟုတ်ပါ။ နောက်အဆင့်အတွက် boot output ထဲက guest host key ကိုသာ သုံးပါ။ မတွေ့လျှင် OCI documented console recovery ကို သုံးပါ။ အတည်မပြုထားသော ssh-keyscan ရလဒ်ဖြင့် မအစားထိုးပါနှင့်။

မိမိကွန်ပျူတာမှ ချိတ်ပြီး Ubuntu ကို စစ်ပါ

Workstation terminal တွင် 203.0.113.20 ကို instance public IPv4 ဖြင့် အစားထိုးပါ။ ဒီ IP သည် documentation example ဖြစ်သည်။ Prompt မှ key type နှင့် SHA256 ကို boot record နှင့် တိုက်ပြီး တူမှ လက်ခံပါ။

ssh -o StrictHostKeyChecking=ask -i ~/.ssh/oci-ubuntu-free ubuntu@203.0.113.20

Ubuntu platform-image username သည် ubuntu ဖြစ်ပြီး opc မဟုတ်ပါ။ Login ပြီးလျှင် VPS တွင် read-only စစ်ဆေးချက်များ ရိုက်ပါ။

cloud-init status --wait
cat /etc/os-release
dpkg --print-architecture
free -h
df -h /
sudo ss -lntp
sudo iptables -S

Provisioning ပြီးခြင်း၊ Ubuntu 24.04၊ amd64၊ မျှော်လင့်ထားသော RAM/disk နှင့် SSH listener ကို စစ်ပါ။ Workstation မှ ဝင်ရခြင်းသည် public SSH လမ်းကြောင်းကိုသာ အတည်ပြုသည်။ Application capacity သက်သေမဟုတ်သကဲ့သို့ HTTP ဝက်ဘ်ဆိုက်လည်း မတင်ရသေးပါ။

Firewall မအစားထိုးဘဲ ဆာဗာအသစ်ကို update လုပ်ပါ

Cloud-init အောင်မြင်စွာပြီးမှ package metadata refresh လုပ်ပြီး upgrade စာရင်းကို လက်မခံမီ ဖတ်ပါ။

sudo apt update
sudo apt upgrade

မူလ session ထိန်းထားပြီး ဒုတိယ SSH login စမ်းပါ။ Reboot လိုလျှင် စမ်းသပ်ဆာဗာဖြစ်နေစဉ် sudo reboot လုပ်၊ ပြန်ဝင်ပြီး အခြေခံစစ်ဆေးချက် ထပ်လုပ်ပါ။ Reboot က SSH ကို ပိတ်သည်။

ဒီ OCI Ubuntu image တွင် UFW ကို မတပ်ဆင်/မဖွင့်ပါနှင့်။ Oracle နှင့် Canonical က persistent firewall နှင့် မရှိမဖြစ် iSCSI rules ပဋိပက္ခကို ဖော်ပြထားသည်။ Rules ကို ထိန်းပါ။ နောက်ဝက်ဘ်ဆိုက်တင်လျှင် OCI network နှင့် ကိုက်ညီသော guest rules နှစ်မျိုးလုံးတွင် port ခွင့်ပြုရမည်။

မျက်နှာပြင်ငယ်တွင် ကော်လံအားလုံးကြည့်ရန် ဇယားကို ဘေးတိုက်ရွှေ့ပါ။

ပြဿနာအရင်စစ်ရန်
SSH timeoutPublic IPv4၊ gateway route၊ လက်ရှိ /32 နှင့် network rules အားလုံး
Permission denied (publickey)ubuntu username၊ private key နှင့် တင်ထားသော public key
Host key မတူInstance ID နှင့် trusted boot record၊ known_hosts ကို မျက်စိမှိတ်မဖျက်ရန်
Provisioning/package errorConsole history၊ cloud-init status၊ repository connectivity

မဝင်ရသေးလျှင် error အတိအကျနှင့် trusted console ကို သုံးပြီး SSH ကို စုံစမ်းပါ။ Image firewall ကို ထိန်းထားပါ။ နောက်အဆင့် ဝက်ဘ်ဆိုက်တင်နည်း တွင်လည်း provider-specific firewall အချက်များကို လိုက်နာပါ။

Recovery copy ထားပါ သို့မဟုတ် ဒီစမ်းသပ်ချက်ကိုသာ ဖယ်ပါ

အားမကိုးမီ app data နှင့် rebuild notes ကို ပြင်ပတွင် သိမ်းပြီး restore စမ်းပါ။ Free instance ပျောက်လျှင် ပြန်ရနိုင်ရမည်။ အထက်ပါစစ်ဆေးချက်သည် administrator access သာဖြစ်ပြီး production readiness မဟုတ်ပါ။ Website files ရှိလာလျှင် ဖိုင် backup restore ကို အခြားကွန်ပျူတာတွင် စမ်းပါ။ အခြား application data အတွက် recovery plan လည်း လိုသည်။

ပြီးလျှင် လိုအပ်သမျှ export လုပ်ပါ။ မှတ်ထားသော compartment ထဲတွင် exact ubuntu-free-ssh instance ကို OCID ဖြင့် ရွေးပြီး Terminate လုပ်ပါ။ Boot volume ကို default အနေဖြင့် ထိန်းထားသည်။ ထို volume မလိုတော့ဘဲ export အတည်ပြုပြီးမှသာ permanent deletion ရွေးပါ။

Retained volumes၊ backups၊ addresses နှင့် console connections ကို inventory နှင့် တိုက်ပါ။ Dedicated subnet/gateway ကို အခြား resource မသုံးကြောင်း အတည်ပြုပြီးမှ ဖယ်ပါ။ စမ်းသပ်ချက်တစ်ခုအတွက် account အားလုံးဖျက်ခြင်း မလုပ်ပါနှင့်။ လက်ကျန် resources နှင့် usage ကို ပြန်စစ်ပါ။

အမေးအဖြေ

Public VPS လား၊ local Ubuntu VM လား။

Provider ပေါ်ရှိ public address ပါသော VM ဖြစ်သည်။ SSH ကို မိမိ workstation public IP သို့ ရည်ရွယ်ချက်ရှိရှိ ကန့်သတ်ထားသည်။ မိမိကွန်ပျူတာကို အမြဲဖွင့်ထားရန် မလိုပါ။

Free shape မရှိလျှင် ဘာလုပ်မလဲ။

စောင့်ပါ သို့မဟုတ် အခြား documented programme ကို ပြန်သုံးသပ်ပါ။ အခြား shape၊ region သို့မဟုတ် ပိုကြီးသော allocation အခမဲ့ရမည်ဟု မယူဆပါနှင့်။ Account approval/capacity အာမခံမရှိပါ။

ဒီလမ်းညွှန်ကို မိမိပတ်ဝန်းကျင်နှင့် ကိုက်ညီအောင် စမ်းသပ်ပါ။ Provider ၏ လက်ရှိစည်းကမ်းနှင့် resource eligibility ကို အတည်ပြုပြီး အရေးကြီးသော data အတွက် စမ်းပြီးသား recovery လမ်းကြောင်း ထားပါ။

တရားဝင် ကိုးကားရင်းမြစ်များ

  1. ရင်းမြစ် 1 — docs.oracle.com
  2. ရင်းမြစ် 2 — docs.oracle.com
  3. ရင်းမြစ် 3 — docs.oracle.com
  4. ရင်းမြစ် 4 — docs.oracle.com
  5. ရင်းမြစ် 5 — docs.oracle.com
  6. ရင်းမြစ် 6 — docs.oracle.com
  7. ရင်းမြစ် 7 — docs.oracle.com
  8. ရင်းမြစ် 8 — docs.oracle.com
  9. ရင်းမြစ် 9 — docs.oracle.com
  10. ရင်းမြစ် 10 — docs.cloud-init.io
  11. ရင်းမြစ် 11 — docs.oracle.com
  12. ရင်းမြစ် 12 — documentation.ubuntu.com
  13. ရင်းမြစ် 13 — docs.oracle.com

ဆက်စပ်လမ်းညွှန်များ