ฟีเจอร์ 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 Name | Private 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 |
{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) คุณสามารถแก้ไขการตั้งค่าได้ทั้งหมด ยกเว้นการเลือกโหนด (เนื่องจากไม่สมเหตุสมผล – คุณสามารถเพิ่มจุดปลายที่คล้ายกันใหม่ให้กับอินสแตนซ์ที่ต้องการได้)
- Remove – หน้าต่างจะปรากฎขึ้นซึ่งคุณจะต้องยืนยันการลบ
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
ด้วยเหตุนี้ คุณจึงมีจุดเชื่อมต่อสองจุดกับสองโปรเจกต์ที่ช่วยให้คุณทำการทดสอบหรือการพัฒนาที่ต้องการได้จากสำเนาชุดใดชุดหนึ่งโดยไม่มีผลต่ออีกโปรเจกต์หนึ่ง นอกจากนี้ยังสามารถสลับเปลี่ยนได้ด้วยการคลิกเพียงไม่กี่ครั้ง