#ECS คืออะไร

Huawei Cloud Elastic Cloud Server (ECS) คือบริการเครื่องเสมือน (Virtual Machine) บนคลาวด์ สามารถเลือก vCPU, RAM, ระบบปฏิบัติการ, ดิสก์ และเครือข่ายได้ตามความต้องการ เหมาะสำหรับโฮสต์เว็บไซต์ API ฐานข้อมูลสำหรับทดลอง และระบบพัฒนา/ทดสอบ

#องค์ประกอบสำคัญ

  • Region / Availability Zone (AZ): ที่ตั้งศูนย์ข้อมูลและโซนให้บริการ
  • ECS Flavor: ขนาด vCPU และ RAM
  • Image: อิมเมจระบบปฏิบัติการ เช่น Ubuntu Linux (ขึ้นอยู่กับ Region)
  • EVS: Elastic Volume Service สำหรับเก็บข้อมูลแบบบล็อก
  • VPC / Subnet: เครือข่ายส่วนตัวสำหรับ ECS
  • Security Group: กฎควบคุมทราฟฟิกขาเข้าและขาออก
  • EIP: Elastic IP สำหรับเข้าถึงจากอินเทอร์เน็ต
  • Key Pair: กุญแจ SSH สำหรับล็อกอินอย่างปลอดภัย

#สถาปัตยกรรมตัวอย่าง

flowchart LR
    U[ผู้ใช้ / Developer] -->|HTTPS 443| EIP[Elastic IP]
    EIP --> SG[Security Group]
    SG --> ECS[ECS Ubuntu VM]
    ECS --> EVS[EVS System Disk]
    ECS --> APP[Docker / Nginx / API]
    VPC[VPC + Subnet] -.-> ECS

#Workshop: สร้าง Ubuntu ECS และ Deploy Nginx ด้วย Docker

#1. สร้าง ECS

  1. เข้าสู่ Huawei Cloud Console และเลือก Region ที่ต้องการ
  2. ไปที่ Elastic Cloud Server (ECS) แล้วเลือกสร้าง ECS
  3. เลือก AZ และ Flavor ตามงบประมาณและโหลดงาน
  4. เลือก Ubuntu image ที่รองรับ และกำหนดขนาด system disk (EVS)
  5. เลือก VPC/Subnet หรือสร้างใหม่
  6. สร้าง Security Group โดยเปิด TCP 22 เฉพาะ Public IP ของผู้ดูแล และ TCP 80/443 ตามการใช้งาน
  7. เลือกผูก EIP และกำหนดรูปแบบการคิดค่าใช้จ่าย/แบนด์วิดท์
  8. ตั้งค่า SSH key pair ตรวจสอบราคา แล้วสร้าง ECS

ชื่อเมนูและตัวเลือกอาจแตกต่างกันตาม Region, ประเภทบัญชี และการปรับปรุง Console

#2. เชื่อมต่อผ่าน SSH

chmod 600 ~/keys/huawei-ecs.pem
ssh -i ~/keys/huawei-ecs.pem ubuntu@<EIP>

ชื่อผู้ใช้เริ่มต้นขึ้นอยู่กับ image ที่เลือก หาก SSH ไม่ได้ ให้ตรวจสอบ Security Group, EIP, ชื่อผู้ใช้ และ key pair

#3. ติดตั้ง Docker Engine (Ubuntu)

ตัวอย่างใช้ repository อย่างเป็นทางการของ Docker:

sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
. /etc/os-release
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<DOCKERREPO
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: ${UBUNTU_CODENAME:-$VERSION_CODENAME}
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
DOCKERREPO
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

#4. Deploy Nginx

sudo docker run -d --name web --restart unless-stopped -p 80:80 nginx:stable-alpine
sudo docker ps
curl -I http://localhost

เปิดเบราว์เซอร์ที่ http://<EIP> เพื่อทดสอบ โดยต้องอนุญาต TCP 80 ใน Security Group

#5. ใช้ Docker Compose

# compose.yaml
services:
  web:
    image: nginx:stable-alpine
    restart: unless-stopped
    ports:
      - "80:80"
sudo docker rm -f web
sudo docker compose up -d
sudo docker compose ps

#ความปลอดภัยและการใช้งานจริง

  • จำกัด SSH ให้เฉพาะ IP ผู้ดูแล; พิจารณา VPN/Bastion Host แทนการเปิด SSH สู่สาธารณะ
  • ใช้ HTTPS พร้อมโดเมนและใบรับรอง TLS สำหรับ Production
  • เปิดพอร์ตเฉพาะที่จำเป็น และอัปเดตแพ็กเกจ/อิมเมจอย่างสม่ำเสมอ
  • ตั้งค่าการสำรองข้อมูลและ Snapshot ตามนโยบายกู้คืน
  • ติดตาม CPU, RAM, Disk, Network, Log และแจ้งเตือนผ่านบริการ Monitoring ที่รองรับ
  • ตรวจสอบค่าใช้จ่าย ECS, EVS, EIP, Bandwidth และทรัพยากรที่ยังคงคิดเงินเมื่อหยุด VM

#ลบทรัพยากรหลัง Workshop

หยุดและลบ ECS พร้อมตรวจสอบการลบ EVS, EIP และทรัพยากรที่ไม่ใช้งานตามตัวเลือกใน Console เพื่อหลีกเลี่ยงค่าใช้จ่ายต่อเนื่อง

#ECS เทียบกับบริการอื่น

บริการ ผู้ใช้ดูแล เหมาะกับ
ECS (VM) OS, runtime, แอปพลิเคชัน ต้องการควบคุมเซิร์ฟเวอร์
Container service Container และแอป (ขึ้นกับบริการ) Deploy container แบบจัดการง่ายขึ้น
Serverless โค้ดและการกำหนดค่า งานตามเหตุการณ์และโหลดผันแปร

#เอกสารอ้างอิง

หมายเหตุ: ตรวจสอบราคา, quota, flavor, image และฟีเจอร์ใน Region ที่ใช้งานจริงก่อนเริ่ม Workshop