การเปลี่ยนตัวจัดสรรภาระงานเครือข่ายจากพูลเป้าหมายเป็นบริการแบ็กเอนด์ระดับภูมิภาค

1. บทนำ

คู่มือนี้จะอธิบายวิธีเปลี่ยนตัวจัดสรรภาระงานของเครือข่ายที่มีอยู่จากแบ็กเอนด์พูลเป้าหมายเป็นบริการแบ็กเอนด์ระดับภูมิภาค

สิ่งที่คุณจะได้เรียนรู้

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

สิ่งที่ต้องมี

  • ประสบการณ์เกี่ยวกับตัวจัดสรรภาระงาน

2. ภาพรวมบริการแบ็กเอนด์ระดับภูมิภาคสําหรับการจัดสรรภาระงานของเครือข่าย

การจัดสรรภาระงานของเครือข่ายช่วยให้ลูกค้าของ Google Cloud มีเครื่องมือที่มีประสิทธิภาพสำหรับการกระจายการรับส่งข้อมูลภายนอกในหมู่เครื่องเสมือนในภูมิภาค Google Cloud เมื่อเร็วๆ นี้เราได้เพิ่มการรองรับบริการแบ็กเอนด์ไปยังระบบจัดสรรภาระงานของเครือข่ายเพื่อให้ลูกค้าจัดการการเข้าชมขาเข้าและควบคุมลักษณะการทำงานของตัวจัดสรรภาระงานได้ง่ายขึ้น ซึ่งช่วยให้ลูกค้าสามารถปรับขนาด ความเร็ว ประสิทธิภาพ และความยืดหยุ่นในการใช้งานได้ดีขึ้น ทั้งหมดนี้จัดการได้ง่าย

ตอนนี้เรารองรับบริการแบ็กเอนด์ด้วยระบบจัดสรรภาระงานของเครือข่าย ซึ่งเป็นการปรับปรุงที่สำคัญกว่าแนวทางก่อนหน้าอย่างพูลเป้าหมาย บริการแบ็กเอนด์จะกำหนดวิธีที่ตัวจัดสรรภาระงานกระจายการรับส่งข้อมูลขาเข้าไปยังแบ็กเอนด์ที่แนบอยู่ และมอบการควบคุมแบบละเอียดสำหรับลักษณะการทำงานของตัวจัดสรรภาระงาน

3. ประโยชน์ของบริการแบ็กเอนด์ระดับภูมิภาค

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

267db35a58145be.png

บริการแบ็กเอนด์ระดับภูมิภาคมีบริการต่อไปนี้ตั้งแต่เริ่มต้น

  • การตรวจสอบประสิทธิภาพการทำงานที่แม่นยำสูงด้วยการตรวจสอบประสิทธิภาพการทำงานแบบรวม - บริการแบ็กเอนด์ระดับภูมิภาคช่วยให้คุณใช้ประโยชน์จากฟีเจอร์การตรวจสอบประสิทธิภาพการทำงานของการจัดสรรภาระงานได้อย่างเต็มที่ ซึ่งจะช่วยคุณหลุดพ้นจากข้อจำกัดของการตรวจสอบประสิทธิภาพการทำงาน HTTP แบบเดิม การตรวจสอบประสิทธิภาพการทำงาน TCP ที่รองรับสตริงคำขอและการตอบกลับที่กำหนดเองหรือ HTTPS เป็นคำขอที่พบบ่อยสำหรับลูกค้าที่ใช้ตัวจัดสรรภาระงานของเครือข่ายเนื่องด้วยเหตุผลด้านข้อกำหนด
  • ความยืดหยุ่นที่ดีขึ้นด้วยกลุ่มสํารอง - เมื่อใช้กลุ่มสํารอง คุณจะกําหนดกลุ่มอินสแตนซ์เป็นกลุ่มหลักและอีกกลุ่มหนึ่งเป็นกลุ่มรอง รวมถึงเปลี่ยนเส้นทางการรับส่งข้อมูลได้เมื่อประสิทธิภาพของอินสแตนซ์ในกลุ่มที่ใช้งานอยู่ต่ำกว่าเกณฑ์ที่กำหนด หากต้องการควบคุมกลไกการทดแทนมากขึ้น คุณสามารถใช้ตัวแทน เช่น keepalived หรือ pacemaker และแสดงการตรวจสอบประสิทธิภาพการทำงานที่ทำงานได้หรือทำงานไม่ได้โดยอิงตามการเปลี่ยนแปลงสถานะของอินสแตนซ์แบ็กเอนด์
  • ความสามารถในการปรับขนาดและความพร้อมใช้งานสูงด้วยกลุ่มอินสแตนซ์ที่มีการจัดการ - บริการแบ็กเอนด์ระดับภูมิภาครองรับกลุ่มอินสแตนซ์ที่มีการจัดการเป็นแบ็กเอนด์ ตอนนี้คุณระบุเทมเพลตสำหรับอินสแตนซ์เครื่องเสมือนแบ็กเอนด์และใช้ประโยชน์จากการปรับขนาดอัตโนมัติตามการใช้งาน CPU หรือเมตริกการตรวจสอบอื่นๆ ได้แล้ว

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

โทโพโลยีเครือข่ายของ Codelab

คู่มือนี้จะอธิบายวิธีเปลี่ยนตัวจัดสรรภาระงานของเครือข่ายที่มีอยู่จากแบ็กเอนด์พูลเป้าหมายเป็นบริการแบ็กเอนด์ระดับภูมิภาค

การเปลี่ยนไปใช้บริการแบ็กเอนด์ระดับภูมิภาคจะช่วยให้คุณใช้ประโยชน์จากฟีเจอร์ต่างๆ เช่น การตรวจสอบประสิทธิภาพการทำงานที่ไม่ใช่แบบเดิม (สำหรับ TCP, SSL, HTTP, HTTPS และ HTTP/2), อินสแตนซ์ที่มีการจัดการ, การระบายการเชื่อมต่อ และนโยบายเฟลโอเวอร์

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

b2ac8a09e53e27f8.png

ก่อน: การจัดสรรภาระงานของเครือข่ายที่มีพูลเป้าหมาย

การติดตั้งใช้งานตัวจัดสรรภาระงานเครือข่ายตามบริการแบ็กเอนด์ที่ได้จะมีลักษณะดังนี้

f628fdad64c83af3.png

หลังจาก: การจัดสรรภาระงานของเครือข่ายที่มีบริการแบ็กเอนด์ระดับภูมิภาค

ตัวอย่างนี้สมมติว่าคุณมีตัวจัดสรรภาระงานของเครือข่ายแบบกลุ่มเป้าหมายแบบดั้งเดิมที่มีอินสแตนซ์ 2 รายการในโซน us-central-1a และ 2 รายการในโซน us-central-1c

ขั้นตอนระดับสูงที่จำเป็นสำหรับการเปลี่ยนแปลงดังกล่าวมีดังนี้

  1. จัดกลุ่มอินสแตนซ์พูลเป้าหมายเป็นกลุ่มอินสแตนซ์ บริการแบ็กเอนด์ใช้ได้กับกลุ่มอินสแตนซ์ที่มีการจัดการหรือไม่มีการจัดการเท่านั้น โปรดทราบว่าแม้จะไม่มีการจํากัดจํานวนอินสแตนซ์ที่วางไว้ในพูลเป้าหมายกลุ่มเดียว แต่กลุ่มอินสแตนซ์ก็มีขนาดสูงสุด หากพูลเป้าหมายมีอินสแตนซ์มากกว่าจำนวนสูงสุดนี้ คุณจะต้องแยกแบ็กเอนด์ของพูลนั้นไปยังกลุ่มอินสแตนซ์หลายกลุ่ม หากการใช้งานที่มีอยู่มีพูลเป้าหมายสํารอง ให้สร้างกลุ่มอินสแตนซ์แยกต่างหากสําหรับอินสแตนซ์เหล่านั้น ระบบจะกำหนดค่าอินสแตนซ์นี้เป็นกลุ่มเฟลโอเวอร์
  2. สร้างบริการแบ็กเอนด์ระดับภูมิภาค หากการทําให้ใช้งานได้มีกลุ่มเป้าหมายสํารอง คุณจะต้องระบุอัตราส่วนการทดแทนขณะสร้างบริการแบ็กเอนด์ ซึ่งควรตรงกับอัตราส่วนการทดแทนที่กำหนดค่าไว้ก่อนหน้านี้สำหรับการทำให้พูลเป้าหมายใช้งานได้
  3. เพิ่มกลุ่มอินสแตนซ์ (ที่สร้างไว้ก่อนหน้านี้) ไปยังบริการแบ็กเอนด์ หากการทำให้ใช้งานได้มีพูลเป้าหมายสำรอง ให้ทำเครื่องหมายอินสแตนซ์เฟลโอเวอร์ที่เกี่ยวข้องด้วยแฟล็ก –failover เมื่อเพิ่มลงในบริการแบ็กเอนด์
  4. กำหนดค่ากฎการส่งต่อที่ชี้ไปยังบริการแบ็กเอนด์ใหม่ คุณมี 2 ตัวเลือกดังนี้
  • (แนะนำ) อัปเดตกฎการส่งต่อที่มีอยู่ให้ชี้ไปยังบริการแบ็กเอนด์ หรือ
  • สร้างการส่งต่อใหม่ซึ่งชี้ไปยังบริการแบ็กเอนด์ คุณจำเป็นต้องสร้างที่อยู่ IP ใหม่สำหรับฟรอนท์เอนด์ของตัวจัดสรรภาระงาน จากนั้นแก้ไขการตั้งค่า DNS เพื่อเปลี่ยนจากที่อยู่ IP ของโปรแกรมโหลดบาลานซ์ที่อิงตามพูลเป้าหมายเดิมเป็นที่อยู่ IP ใหม่อย่างราบรื่น

การตั้งค่าสภาพแวดล้อมด้วยตนเอง

  1. ลงชื่อเข้าใช้ Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

โปรดจดจำรหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมด (ชื่อด้านบนมีผู้ใช้แล้วและจะใช้ไม่ได้ ขออภัย) ซึ่งจะเรียกว่า PROJECT_ID ในโค้ดแล็บนี้

  1. ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร Google Cloud

การทำงานในโค้ดแล็บนี้แทบจะไม่เสียค่าใช้จ่ายใดๆ เลย โปรดทําตามวิธีการในส่วน "การล้างข้อมูล" ซึ่งจะแนะนําวิธีปิดใช้ทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินหลังจากบทแนะนํานี้ ผู้ใช้ใหม่ของ Google Cloud มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD

เริ่มต้น Cloud Shell

แม้ว่า Google Cloud จะทำงานจากระยะไกลจากแล็ปท็อปได้ แต่ในโค้ดแล็บนี้ คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์

จากคอนโซล GCP ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

เครื่องเสมือนนี้โหลดเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักขนาด 5 GB ที่ใช้งานได้ต่อเนื่องและทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพของเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณทํางานทั้งหมดในแท็บนี้ได้โดยใช้เพียงเบราว์เซอร์

เข้าสู่ระบบ Cloudshell และตั้งค่า projectid

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]

Perform setting your projectID:
projectid=YOUR-PROJECT-ID

echo $projectid

4. สร้างเครือข่าย VPC

เครือข่าย VPC

จาก Cloud Shell

gcloud compute networks create network-lb --subnet-mode custom

สร้างซับเน็ต

จาก Cloud Shell

gcloud compute networks subnets create network-lb-subnet \
        --network network-lb --range 10.0.0.0/24 --region us-central1

สร้างกฎไฟร์วอลล์

จาก Cloud Shell

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

สร้างอินสแตนซ์ที่ไม่มีการจัดการ

สร้างอินสแตนซ์ 2 อินสแตนซ์ต่อโซน ได้แก่ us-central1-a และ us-central1-c

สร้างอินสแตนซ์ 1 จาก Cloud Shell

gcloud compute instances create www1 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"

จาก Cloud Shell ให้สร้างอินสแตนซ์ 2

gcloud compute instances create www2 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"

จาก Cloud Shell ให้สร้างอินสแตนซ์ 3

gcloud compute instances create www3 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"

จาก Cloud Shell ให้สร้างอินสแตนซ์ 4

gcloud compute instances create www4 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"

สร้างกฎไฟร์วอลล์เพื่ออนุญาตให้มีการรับส่งข้อมูลภายนอกไปยังอินสแตนซ์ VM เหล่านี้

จาก Cloud Shell

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

สร้างที่อยู่ IP ภายนอกแบบคงที่สำหรับตัวจัดสรรภาระงาน

จาก Cloud Shell

gcloud compute addresses create network-lb-ip-1 \
    --region us-central1

เพิ่มทรัพยากรการตรวจสอบประสิทธิภาพการทำงานของ HTTP เดิม

จาก Cloud Shell

gcloud compute http-health-checks create basic-check

5. สร้างกฎการส่งต่อและพูลเป้าหมาย

สร้างพูลเป้าหมาย

gcloud compute target-pools create www-pool \
            --region us-central1 --http-health-check basic-check

เพิ่มอินสแตนซ์ลงในพูลเป้าหมาย us-central1-a

gcloud compute target-pools add-instances www-pool \
--instances www1,www2 \
--instances-zone us-central1-a

เพิ่มอินสแตนซ์ของคุณลงในพูลเป้าหมาย us-central1-c

gcloud compute target-pools add-instances www-pool \
--instances www3,www4 \
--instances-zone us-central1-c

เพิ่มกฎการส่งต่อ

gcloud compute forwarding-rules create www-rule \
--region us-central1 \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool

ตรวจสอบฟังก์ชันการทำงานของพูลเป้าหมาย

ระบุที่อยู่ IP ของฟรอนต์เอนด์โดยเลือก "ตัวจัดสรรภาระงาน" → "ฟรอนต์เอนด์" (www-rule)

ใช้คำสั่ง curl จากเทอร์มินัลของเวิร์กสเตชันเพื่อเข้าถึงที่อยู่ IP ภายนอกและสังเกตการจัดสรรภาระงานในอินสแตนซ์เป้าหมาย 4 รายการ ปิดเทอร์มินัลเมื่อตรวจสอบแล้ว

while true; do curl -m1 IP_ADDRESS; done

6. เปลี่ยนตัวจัดสรรภาระงานของเครือข่ายจากพูลเป้าหมายเป็นบริการแบ็กเอนด์

สร้างการตรวจสอบประสิทธิภาพการทำงานแบบรวมสำหรับบริการแบ็กเอนด์

gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1

สร้างกลุ่มอินสแตนซ์จากอินสแตนซ์ที่มีอยู่จากพูลเป้าหมาย

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2

สร้างกลุ่มอินสแตนซ์จากอินสแตนซ์ที่มีอยู่จากพูลเป้าหมาย

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4

สร้างบริการแบ็กเอนด์และเชื่อมโยงกับการตรวจสอบประสิทธิภาพการทำงานที่สร้างขึ้นใหม่

gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external

กำหนดค่าบริการแบ็กเอนด์และเพิ่มกลุ่มอินสแตนซ์

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1

อัปเดตกฎการส่งต่อที่มีอยู่เพื่อรองรับบริการแบ็กเอนด์

จดชื่อกฎการส่งต่อ "www-rule" และที่อยู่ IP ที่เชื่อมโยงโดยทําดังนี้

เลือกตัวจัดสรรภาระงาน → หน้าเว็บ

และสังเกตพูลเป้าหมาย 4 รายการ

เลือกตัวจัดสรรภาระงาน → เลือก "www-pool"

กำหนดเส้นทางการรับส่งข้อมูลไปยังบริการแบ็กเอนด์โดยการอัปเดตกฎการส่งต่อที่มีอยู่

gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1

ยืนยันว่าไม่ได้กำหนดค่าตัวจัดสรรภาระงาน "www-pool" กับฟรอนต์เอนด์ "www-rule" อีกต่อไป (ดูภาพหน้าจอด้านล่าง)

เลือกตัวจัดสรรภาระงาน → www-pool

9a393b3ca4e0942c.png

ตรวจสอบว่ากฎการส่งต่อของฟรอนต์เอนด์เชื่อมโยงกับตัวจัดสรรภาระงาน "my-backend-service" แล้ว

เลือกตัวจัดสรรภาระงาน → หน้าเว็บ

โปรดทราบว่าระบบจะเก็บที่อยู่ IP ของชื่อกฎ "www-rule" ไว้และกำลังใช้ตัวจัดสรรภาระงาน "my-backend-service"

ใช้คําสั่ง curl จากเทอร์มินัลของเวิร์กสเตชันเพื่อเข้าถึงที่อยู่ IP ภายนอกและดูการจัดสรรภาระงานในบริการแบ็กเอนด์ที่เชื่อมโยงใหม่ ปิดเทอร์มินัลเมื่อตรวจสอบแล้ว

while true; do curl -m1 IP_ADDRESS; done

7. ขั้นตอนการล้างข้อมูล

gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet
 
gcloud compute backend-services delete my-backend-service --region us-central1 --quiet
 
gcloud compute target-pools delete www-pool --region us-central1 --quiet
 
gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet

gcloud compute firewall-rules delete www-firewall-network-lb --quiet
 
gcloud compute instances delete www4 --zone us-central1-c --quiet
 
gcloud compute instances delete www3 --zone us-central1-c --quiet
 
gcloud compute instances delete www2 --zone us-central1-a --quiet

gcloud compute instances delete www1 --zone us-central1-a --quiet
 
gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet

gcloud compute networks delete network-lb --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet

8. ยินดีด้วย

ยินดีด้วยที่ทํา Codelab จนเสร็จสมบูรณ์

สิ่งที่เราได้พูดถึง

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