Endpoints: A Direct Connection to the Cloud

ฟีเจอร์ Endpoints แสดงถึงความเป็นไปได้ของการแมป TCP/UDP ports ผ่าน Shared Load Balancer ซึ่งมีจุดมุ่งหมายเพื่อลดความซับซ้อนในการทำงานร่วมกันของอินสแตนซ์กับเครื่องมือและทรัพยากรของบุคคลที่สามโดยจะสามารถสร้างการเชื่อมต่อโดยตรง (ผ่านโปรโตคอล TCP หรือ UDP แบบ raw) กับโหนดที่เกี่ยวข้องโดยไม่ต้องแนบ Public IP address

การเชื่อมโยงดังกล่าวสามารถใช้เพื่อเปิดใช้งานงานต่างๆได้หลากหลาย เช่น การจัดการ remote database, การ deploy แอปโดยตรงจาก IDE (สำหรับ IIS) การรันหลายโปรเจกต์บนอินสแตนซ์เดียว, การเข้าถึงแผงดูแลระบบของเซิร์ฟเวอร์โดยไม่ผูกกับที่อยู่ภายนอก ฯลฯ

เคล็ดลับ: นอกจากความสะดวกที่เพิ่มขึ้นแล้ว Endpoint ยังช่วยลดค่าใช้จ่ายของคุณสำหรับการใช้งาน IP ภายนอกซึ่งจำเป็นสำหรับการดำเนินการดังกล่าว จะเห็นได้ชัดว่าปลายทางไม่สามารถแทนที่ได้อย่างสมบูรณ์ แต่อาจมีประโยชน์ในงานบางประเภทและเมื่อทำงานร่วมกับฟีเจอร์อื่นๆ (เช่น การปรับขนาดแนวตั้งและแนวนอนอัตโนมัติ, ระดับส่วนลด ฯลฯ) วิธีการดังกล่าวสามารถช่วยให้คุณประหยัดค่าใช้จ่ายได้มาก

การจัดการ Endpoints

รายการของ endpoints สามารถเข้าถึงได้ผ่าน environment โดยคลิกที่เมนู Settings

เมื่อแท็บปรากฎขึ้นสลับไปที่เมนู endpoints ตอนนี้คุณสามารถเริ่มต้นทำงานกับรายการ mapping ของคุณได้:

  • เพิ่ม endpoint ใหม่
  • แก้ไข/ลบ endpoint ที่มีอยู่
การเพิ่ม Endpoints

ในการสร้างปลายทางใหม่ คลิกปุ่ม Add ด้านบนของแผงควบคุมและและกรอกข้อมูล Add Endpoint ที่ปรากฏขึ้นพร้อมข้อมูลที่เกี่ยวข้อง:

  • Node – เลือกอินสแตนซ์ที่คุณต้องการตั้งค่า endpoint (ในที่นี้จะแสดงเฉพาะ environment และโหนดที่เลือกเท่านั้น)
  • Name – พิมพ์ชื่อสำหรับปลายทางใหม่หรือเลือกตัวเลือกที่กำหนดค่าไว้ล่วงหน้าตัวใดตัวหนึ่ง (รายการที่เกี่ยวข้องจัดเตรียมไว้ด้านล่างนี้)
  • Private port – ระบุพอร์ตของโหนดที่ต้องการเพื่อใช้สำหรับการแมป (จะถูกแทนที่โดยอัตโนมัติในกรณีที่เลือกชื่อที่กำหนดไว้ล่วงหน้าแล้ว)
  • Protocol – เลือก TCP หรือ UDP

ช่องที่เหลือ เช่น Public port และ Access URL จะได้รับการกำหนดค่าจาก Ruk-Com Cloud โดยอัตโนมัติ

กดปุ่ม Add เมื่อพร้อมใช้งาน

เพื่อความสะดวกยิ่งขึ้นเราได้จัดเตรียมรายการที่กำหนดค่าไว้แล้วแบบฝังโดยอิงตามโปรโตคอล:

Connection NamePrivate Port
Remote Desktop 3389
PowerShell 5986
SMTP 25
FTP 21
DNS 53
HTTP 80
POP3 110
IMAP 143
LDAP 389
HTTPS 443
SMTPS 587
POP3S 995
IMAPS 993
Optional*
{database_name} {database_port}
RDP 3389
DEPLOY 8172

*Optional ค่าที่พร้อมใช้งานขึ้นอยู่กับประเภทของโหนดที่เลือก:

  • database nodes จัดเตรียมข้อมูลปลายทางเริ่มต้น ตั้งชื่อตามตัวเองและระบุพอร์ตที่เหมาะสม
  • Windows-based containers มีการเชื่อมต่อ RDP (3389) เพิ่มเติม
  • IIS application server มีการเชื่อมต่อ DEPLOY (8172) สำหรับการ deploy โปรเจกต์โดยตรงจาก IDE

ในที่นี้คุณจะเห็น Public port และ Access URL แสดงอยู่ในหน้านี้ คุณสามารถใช้พารามิเตอร์เหล่านี้เพื่อดำเนินการตามต้องการเพียงคลิกที่สตริงและคัดลอกได้อย่างง่ายดาย

เพิ่มเติม: สำหรับการเชื่อมโยงฟังก์ชันให้ทำงานอย่างถูกต้องกับคอนเทนเนอร์ VPS และ Docker® คุณควรเปิด Private ports ที่เกี่ยวข้อง (ระบุไว้ในระหว่างการเพิ่ม endpoints) ที่โหนดเหล่านี้ด้วยตนเอง

การแก้ไข/ลบ endpoint ที่มีอยู่

Endpoint ที่มีอยู่สามารถแก้ไขหรือลบออกได้อย่างง่ายดายในกรณีที่ไม่จำเป็นแล้ว สำหรับสิ่งนั้นเพียงคลิกปุ่ม Edit (ไม่ว่าจะใช้ดับเบิลคลิกบนบรรทัดที่ต้องการ) หรือปุ่ม Remove ซึ่งอยู่ที่บานหน้าต่างเครื่องมือด้านบน

  • Edit – ในรูปแบบ Edit Endpoint (ซึ่งคล้ายกับ Add) คุณสามารถแก้ไขการตั้งค่าได้ทั้งหมด ยกเว้นการเลือกโหนด (เนื่องจากไม่สมเหตุสมผล – คุณสามารถเพิ่มจุดปลายที่คล้ายกันใหม่ให้กับอินสแตนซ์ที่ต้องการได้)
เมื่อทำการเปลี่ยนแปลงแล้วให้กดปุ่ม Apply
  • Remove – หน้าต่างจะปรากฎขึ้นซึ่งคุณจะต้องยืนยันการลบ
รอซักครู่ endpoint นั้นจะถูกลบออกจากรายการ

Endpoints Use-Cases

เมื่อกำหนดค่าแมปที่ต้องการแล้วคุณสามารถใช้แมปเพื่อเรียกใช้งานต่างๆได้ เพื่อการทำงานที่ง่ายขึ้นเราจะอธิบายการใช้งาน endpoints ที่พบบ่อยด้านล่างนี้:

ตัวอย่างเราใช้ Apache application server และ MySQL database (คุณสามารถสร้าง environment ที่คล้ายกันได้ตามคู่มือนี้):

ตอนนี้มาเรียนรู้วิธีการใช้ endpoints สำหรับ:

การจัดการ Database

การเข้าถึง DB instance จากระยะไกลจะกลายเป็นเรื่องง่ายเนื่องจากฟีเจอร์นี้จะช่วยลดความจำเป็นในการใช้ตัวเลือกเพิ่มเติม เช่น Public IP การดำเนินการจะมีสองวิธีง่ายๆดังนี้: ผ่าน embedded OS terminal และ DB client ของบุคคลที่สาม

การเชื่อมต่อผ่านเทอร์มินอล

แนวทางที่พบบ่อยที่สุดคือการใช้เทอร์มินอลในเครื่องของคุณ เนื่องจากไม่จำเป็นต้องติดตั้งหรือกำหนดค่าเพิ่มเติมและมีฟังก์ชันการทำงานที่เพียงพอสำหรับการสร้างการเชื่อมต่ออย่างง่าย – ใช้เพียงคำสั่งเดียว:

mysql -h {host} -P {port} -u {user} -p

โดยที่:

  • {host} – URL การเข้าถึงปลายทางโดยไม่ระบุส่วนต่อท้ายพอร์ต (ในกรณีของเรา node30292-env-with-endpoints.jelastic.com)
  • {port} – กำหนดหมายเลขพอร์ต (ตัวอย่างเช่น 10011)
  • {user} – ชื่อผู้ใช้ database (ระบบจะส่งให้คุณผ่านทางอีเมลในระหว่างการสร้าง environment) – โดยค่าเริ่มต้น root สำหรับ MySQL servers ใหม่ทั้งหมด

หลังจากตรวจสอบความถูกต้องของการเชื่อมต่อ คุณจะถูกขอรหัสผ่านผู้ใช้ DB (สามารถพบได้ที่อีเมลที่กล่าวข้างต้น) เพื่อเข้าถึง database ของคุณ

เพียงเท่านี้คุณก็สามารถเริ่มทำงานกับ database ผ่านการดำเนินการ SQL queries ที่ต้องการได้แล้ว

การเชื่อมต่อผ่าน Local Client

ในกรณีที่คุณต้องการฟังก์ชันเพิ่มขึ้นหรือถ้าคุณคุ้นเคยกับการจัดการข้อมูลที่เก็บไว้ใน database ที่สะดวกยิ่งขึ้นประเภทของ database desktop client จะมีส่วนของกราฟิกที่ใช้งานง่ายและฟีเจอร์ที่หลากหลายเพื่องานเร่งของคุณ

ยกตัวอย่างของลูกค้าดังกล่าวที่ช่วยในการสร้างการเชื่อมต่อระยะไกลกับ database ของเราผ่าน endpoint ที่สร้างขึ้นโดยเราจะใช้เครื่องมือจัดการ database ที่ได้รับความนิยมสูง – MySQL Workbench

1. รันแอปพลิเคชัน MySQL Workbench แล้วคลิกปุ่ม New Connection

2. ในกรอบ Setup New Connection ที่ปรากฏขึ้น ให้กรอกข้อมูลในช่องต่อไปนี้ที่ด้านบน:

  • Connection Name – ตั้งค่าชื่อสำหรับการเชื่อมต่อของคุณ (เช่น jelastic-db)
  • Connection Method – เลือกวิธีมาตรฐาน (TCP/IP)

จากนั้น ระบุข้อมูล DB ที่จำเป็นภายในแท็บพารามิเตอร์ด้านล่าง:

  • Hostname – URL ปลายทางที่ไม่มีหมายเลขพอร์ตระบุในตอนท้าย (เช่น node30292-endpoints.jelastic.com)
  • Port – public port ปลายทาง (เช่นพอร์ต 10011 ที่เราได้รับในระหว่างการเพิ่ม)
  • Username – ชื่อผู้ดูแลระบบ DB ผู้ใช้ (ระบบได้ส่งให้คุณทางอีเมลระหว่างการสร้าง environment – โดยค่าเริ่มต้นคือ root สำหรับ MySQL servers ใหม่ทั้งหมด
  • Password – คลิก Store in Keychain เพื่อป้อนและบันทึกรหัสผ่านของคุณ (ซึ่งสามารถพบได้ในอีเมลเดียวกัน) หรือข้ามฟิลด์นี้เพื่อระบุในระหว่างการเชื่อมต่อแต่ละครั้ง
  • Default Schema – database schema ที่ใช้โดยค่าเริ่มต้น (สามารถเว้นว่างไว้ได้) จากนั้นคลิก OK

3. ดับเบิ้ลคลิกที่ connection record เพื่อเริ่มต้นการสร้างและระบุรหัสผ่านของคุณในเฟรมที่ปรากฏ (หากคุณยังไม่เคย save มาก่อน)

คุณยังสามารถทำเครื่องหมายบันทึกรหัสผ่านใน keychain ได้หากคุณไม่ต้องการป้อนด้วยตนเองทุกครั้งที่ต้องการเข้าถึง database ของคุณคลิกปุ่ม OK เพื่อดำเนินการต่อ

4. รอซักครู่คุณจะเชื่อมต่อกับ DB

ตอนนี้คุณสามารถเริ่มจัดการข้อมูลของคุณโดยใช้สิทธิประโยชน์ทั้งหมดที่มีให้ของฟีเจอร์การจัดการไคลเอ็นต์ที่ครบถ้วน

เช่นเดียวกับที่คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลอื่นๆหรือสำรองและกู้คืนข้อมูลของคุณภายในไฟล์ dump

ขั้นตอนพัฒนาหลายขั้นตอนในแอปเซิร์ฟเวอร์เดียว

นอกเหนือจากการดำเนินการจัดการ DB เบื้องต้นแล้ว endpoints ยังมีความสามารถในการใช้โซลูชันที่มีประโยชน์และน่าสนใจหลายอย่างสำหรับเซิร์ฟเวอร์อื่น ในส่วนด้านล่างนี้เราจะพิจารณาความเป็นไปได้ของฟีเจอร์อย่างหนึ่งที่เป็นประโยชน์ – วิธีนี้มี environment เป็นแอปพลิเคชันเซิร์ฟเวอร์เดียวเป็นการผลิตและพัฒนาไปพร้อมๆกัน (โดยใช้ Apache Instance จาก environment ของเราเป็นตัวอย่าง)

1. แมป endpoint กับ Apache server ของคุณโดยเปิด private port ที่ไม่ได้ใช้ไว้

เพิ่มเติม: อย่าเลือกพอร์ต 80 เป็น private port สำหรับงานนนี้เนื่องจาก Apache ใช้เป็นค่าเริ่มต้นสำหรับการจัดการคำขอ HTTP ขาเข้ามิฉะนั้นกระบวนการทั้งหมดที่อธิบายไว้ด้านล่างจะไม่มีประโยชน์

2. ตอนนี้ deploy แอปพลิเคชันของคุณสองครั้งกับ context ที่ต่างกัน (เช่น prod และ dev)

3. ขั้นตอนต่อไปคือการกำหนดค่า Apache เอง – ดังนั้นให้คลิกปุ่ม Config ถัดจากเซิร์ฟเวอร์นี้และเปิดไฟล์การกำหนดค่าหลัก (conf > httpd.conf)

4. ในไฟล์ httpd.conf เลื่อนลงมาประมาณบรรทัดที่ 160 และเพิ่มสตริงต่อไปนี้ใน registry ของพอร์ตที่ listen:

Listen 0.0.0.0:{port}

ในที่นี้ {port} พารามิเตอร์ควรแทนที่ด้วยหมายเลข private port ที่คุณระบุไว้ในระหว่างการเพิ่ม endpoint (เช่นเราเพิ่มหมายเลข 81)

5. หลังจากนั้นย้ายไปที่ส่วนท้ายของไฟล์และทำซ้ำส่วน VirtualHost โดยระบุหมายเลขพอร์ตที่เกี่ยวข้อง (เหมือนกับในขั้นตอนด้านบน – หมายเลข 81 ในกรณีของเรา)

จากนั้นปรับตำแหน่ง DocumentRoot ให้เหมาะสมสำหรับทั้ง virtual hosts ที่มีโปรเจ็กต์ที่เกี่ยวข้อง (prod – สำหรับค่าเริ่มต้นและ dev – สำหรับส่วนที่กำหนดเองด้านล่าง)

6. กดปุ่ม Save บันทึกการเปลี่ยนแปลงที่ดำเนินการแล้วรีสตาร์ท Apache server เพื่อใช้งาน

7. ตอนนี้คุณสามารถเชื่อมต่อกับโปรเจ็กต์ prod ของคุณได้ตามปกติ เช่น โดยกดปุ่ม Open in Browser (หรือป้อนโดเมนที่กำหนดเองภายนอกหากมีการผูกไว้กับแอปของคุณเพิ่มเติม) และสำหรับการเข้าถึงเวอร์ชัน dev คุณเพียงแค่ระบุ endpoint’s Access URL

ด้วยเหตุนี้ คุณจึงมีจุดเชื่อมต่อสองจุดกับสองโปรเจกต์ที่ช่วยให้คุณทำการทดสอบหรือการพัฒนาที่ต้องการได้จากสำเนาชุดใดชุดหนึ่งโดยไม่มีผลต่ออีกโปรเจกต์หนึ่ง นอกจากนี้ยังสามารถสลับเปลี่ยนได้ด้วยการคลิกเพียงไม่กี่ครั้ง