← กลับหน้า Dashboard PKDERIV Infrastructure Docs (Thai Edition)
📖 USER MANUAL & ARCHITECTURE GUIDE

คู่มือการใช้งาน PKDERIV Cloud Manager

ระบบจัดการ AWS EC2 แบบ Multi-Instance, กลไกประหยัดค่า Public IP (Dynamic IP On-Demand), การซิงค์ Cloudflare DNS อัตโนมัติ และการเชื่อมต่อ WinSCP / SSH ในคลิกเดียว

1. 💡 กลไกประหยัดค่า Public IP (Dynamic IPv4 On-Demand)

ตั้งแต่ 1 กุมภาพันธ์ 2024 ทาง AWS ได้เริ่มคิดเงินค่า Public IPv4 ทุกรูปแบบ ในอัตรา $0.005 / ชั่วโมง (ประมาณ 130 บาท / เดือน ต่อ 1 IP) โดยเฉพาะ Elastic IP (EIP) ที่แม้คุณจะปิดเครื่องเซิร์ฟเวอร์แล้ว AWS ก็ยังคิดเงินค่าจอง IP อยู่ตลอดเวลา 24 ชั่วโมง

💡
โซลูชันที่เรานำมาใช้ (แนวทาง A):
เราเปลี่ยนมาใช้ Dynamic Public IPv4 แทน Elastic IP โดยเมื่อคุณ Stop (ปิดเครื่อง) AWS จะดึง IP คืนทันทีทำให้ ค่าบริการ IP เป็น $0.00 ทันที และเมื่อคุณ Start (เปิดเครื่อง) AWS จะแจก IP ใหม่ให้ จากนั้นระบบ Dashboard ของเราจะนำ IP ใหม่นั้นไปอัปเดตบน Cloudflare DNS ให้เองอัตโนมัติ!
สถานะเครื่อง ใช้ Elastic IP แบบเดิม ใช้ Dynamic IP แบบใหม่ (Dashboard)
🟢 เปิดใช้งาน (Running) เสียค่า IP ($0.005/ชม.) เสียค่า IP เฉพาะช่วงที่เปิด ($0.005/ชม.)
🔴 ปิดเครื่อง (Stopped) เสียเงินค่าจองต่อไปเรื่อยๆ ($3.60/ด.) ฟรี 100%! ไม่เสียค่า IP ($0.00)

2. 🛑 วิธียกเลิก Elastic IP เพื่อหยุดเสียเงิน $3.60/เดือน

หากในบัญชี AWS ของคุณยังมี Elastic IP เดิม (เช่น 16.61.48.164) ค้างอยู่ จะต้องสั่ง Release คืน AWS 1 ครั้ง เพื่อให้ระบบหยุดคิดเงินค่าจองครับ

วิธีที่ 1: กดจากหน้า Dashboard (คลิกเดียว)

  1. เปิดหน้า Dashboard (http://localhost:3000/dashboard.html)
  2. มองที่การ์ดที่ 4 ด้านบน: Elastic IP Status
  3. คลิกปุ่มสีแดง: [Release Elastic IP ($0 hold fee)] แล้วกดยืนยัน

วิธีที่ 2: ดับเบิลคลิกไฟล์ Batch ในโฟลเดอร์โปรเจกต์

ดับเบิลคลิกที่ไฟล์ release-elastic-ip.bat พิมพ์ y แล้วกด Enter ระบบจะสั่ง Disassociate และ Release คืน AWS ให้ทันทีครับ

3. 🎮 หน้าที่ของปุ่มต่างๆ บน Dashboard

แต่ละ Instance จะมีแถบปุ่มควบคุมทางขวามือ ดังนี้ครับ:

ปุ่ม การทำงาน เมื่อไหร่ที่ควรใช้
▶ Start & Connect สั่งเปิดเครื่อง EC2 $\rightarrow$ รอรับ Public IP ใหม่ $\rightarrow$ อัปเดต DNS บน Cloudflare ให้ทันที $\rightarrow$ Copy IP ใหม่ลง Clipboard ใช้ตอนเครื่องอยู่ในสถานะ STOPPED เพื่อเริ่มใช้งาน
⏹ Stop ($0 IP) สั่งปิดเครื่อง EC2 $\rightarrow$ คืน Public IP ให้ AWS $\rightarrow$ ค่าใช้จ่าย IPv4 หยุดคิดทันที ($0.00) ใช้เมื่อเลิกใช้งานเซิร์ฟเวอร์ เพื่อประหยัดเงิน
📂 WinSCP เปิดโปรแกรม WinSCP บนเครื่อง Windows ของคุณ และล็อกอินเชื่อมต่อไปยังโฟลเดอร์เซิร์ฟเวอร์พร้อมแนบกุญแจ .ppk ให้อัตโนมัติ ใช้เมื่อต้องการ โอนไฟล์, ลากวางไฟล์, แก้ไขโค้ด
💻 SSH Copy คำสั่ง SSH Terminal ลง Clipboard เช่น ssh -i "path/key.pem" ubuntu@ip นำไปวางใน PowerShell / Terminal เพื่อรีโมทเข้าไปสั่งการระบบด้วยข้อความ
🌐 Set DNS สั่งให้อัปเดต Cloudflare A-Record โดเมน pkderiv.online ให้ชี้มาที่เครื่องนี้ทันที ใช้เมื่อมีหลาย Instance แล้วต้องการให้เว็บชี้มาที่เครื่องนี้
🗑️ Terminate Instance สั่งลบเครื่องทิ้งถาวรจาก AWS (มีระบบพิมพ์ ID ยืนยัน) ใช้เมื่อต้องการทำลายเครื่องทิ้ง ไม่ใช้งานอีกต่อไป

4. 🔍 WinSCP vs SSH ต่างกันอย่างไร?

ทั้ง 2 ตัวนี้เป็นวิธีเชื่อมต่อเข้าไปยังเครื่อง Ubuntu Linux บน AWS แต่มีจุดประสงค์ต่างกันอย่างชัดเจน:

📂 WinSCP (File Manager)

เน้นการ จัดการไฟล์ มีหน้าต่างเหมือน Windows Explorer:

  • ลากไฟล์จากคอมเราไปวางในเซิร์ฟเวอร์
  • ดาวน์โหลดไฟล์ Log, รูปภาพ, หรือโค้ดกลับมาที่คอม
  • ดับเบิลคลิกเพื่อเปิดแก้ไขข้อความในไฟล์บนเซิร์ฟเวอร์
  • ใช้ไฟล์กุญแจฟอร์แมต .ppk

💻 SSH (Command Shell)

เน้นการ สั่งการระบบ ผ่านหน้าจอดำตัวหนังสือ (CLI):

  • สั่งรันหรือรีสตาร์ทบอท: sudo systemctl restart tradeMultiplex
  • ดูหน้าจอการทำงานแบบเรียลไทม์: pm2 logs หรือ journalctl
  • เช็ค CPU และ RAM ในเครื่องด้วยคำสั่ง htop
  • ใช้ไฟล์กุญแจฟอร์แมต .pem

5. ➕ วิธีสร้าง Instance ใหม่ผ่านหน้าเว็บ (+ Launch)

หากคุณต้องการเพิ่มเครื่องเซิร์ฟเวอร์สำหรับรันงานอื่น สามารถกดเพิ่มได้ทันทีไม่ต้องเข้า AWS Console:

  1. คลิกปุ่ม ➕ Launch Instance ที่มุมบนขวาของ Dashboard
  2. Instance Name: ตั้งชื่อเครื่อง เช่น trade-bot-worker-2
  3. Instance Type: เลือกสเปกเครื่อง (แนะนำ t3.micro ⭐ Free Tier Eligible)
  4. Key Pair: เลือกว่าจะใช้กุญแจตัวไหน (ระบบเลือก aws-london ให้อัตโนมัติ)
  5. Security Group & Subnet: ระบบเลือกตัวมาตรฐานที่มีการเปิดพอร์ต 22, 80, 443 ให้เรียบร้อย
  6. กด 🚀 Launch Instance เครื่องใหม่จะปรากฏบน Dashboard ในสถานะ pending $\rightarrow$ running ทันที!

6. ❓ คำถามที่พบบ่อย & การแก้ปัญหา (FAQ)

Q1: เปิดเครื่องแล้ว เข้าเว็บโดเมนไม่ได้ทันที ทำไม?

ตอบ: เมื่อเปิดเครื่องใหม่ DNS บน Cloudflare จะอัปเดตภายใน 5-10 วินาที แต่ DNS Cache ของอินเทอร์เน็ตบางค่ายอาจใช้เวลาประมาณ 30-60 วินาทีในการจำค่าใหม่ หากรีบเข้า ให้ลองกด Ctrl + F5 (Hard Refresh) บนบราวเซอร์ครับ

Q2: WinSCP แจ้ง Error "Unable to use key file .pem"?

ตอบ: WinSCP บังคับใช้กุญแจฟอร์แมต .ppk เท่านั้น (ระบบของเราได้สร้างและตั้งค่าให้ชี้ไปที่ D:\aws\keypair-london\aws-london.ppk เรียบร้อยแล้ว หากใส่เองในโปรแกรมให้เลือกไฟล์ที่ลงท้ายด้วย .ppk เสมอ)

Q3: รัน npm start แล้วหน้าต่างเด้งปิดตัวเอง?

ตอบ: เกิดจากพอร์ต 3000 ชนกัน (มีโปรเซส Node ตัวอื่นเปิดค้างไว้) สามารถดับเบิลคลิกไฟล์ start-dashboard.bat หรือสั่งปิด Node ใน Task Manager แล้วเปิดใหม่ได้เลยครับ