1. บทนำ
Private Service Connect ช่วยให้ผู้ผลิตบริการแสดงบริการแบบส่วนตัวจากเครือข่าย VPC หนึ่งไปยังอีกเครือข่ายหนึ่งได้ ผู้บริโภคสามารถเข้าถึงบริการของผู้ผลิตผ่านปลายทาง PSC หรือแบ็กเอนด์ PSC
Codelab นี้มุ่งเน้นที่แบ็กเอนด์ของ PSC แบ็กเอนด์ PSC ใช้ร่วมกับตัวจัดสรรภาระงานพร็อกซีของ Google Cloud (ทั้งแอปพลิเคชันหรือเครือข่าย) การใช้แบ็กเอนด์ PSC จะช่วยให้ควบคุมฝั่งผู้บริโภคได้ละเอียดยิ่งขึ้น เช่น
- การสังเกตการณ์และการบันทึกที่เจาะลึกยิ่งขึ้น
- การผสานรวม Cloud Armor
- URL ที่กำหนดเอง
- การจัดการการรับส่งข้อมูลขั้นสูง
- ใบรับรอง TLS ที่กำหนดเอง
ใน Codelab นี้ คุณจะได้เรียนรู้วิธีสร้างแบ็กเอนด์ Private Service Connect ด้วยตัวจัดสรรภาระงานของแอปพลิเคชันภายนอกส่วนกลางเพื่อเข้าถึงบริการของผู้ผลิตในเครือข่ายอื่นแบบส่วนตัว
สิ่งที่คุณจะได้เรียนรู้
- สร้างและกำหนดค่าแบ็กเอนด์ PSC ที่เชื่อมโยงกับตัวจัดสรรภาระงานของแอปพลิเคชันภายนอกส่วนกลาง
- กำหนดค่าบริการเว็บที่มีการจัดการของ Apache และเปิดเผยเป็นบริการ PSC ผ่านไฟล์แนบบริการ
- สร้างใบรับรอง SSL เพื่อสิ้นสุด SSL ใน Application Load Balancer ภายในและภายนอก
- กำหนดค่าโซนสาธารณะของ Cloud DNS เพื่อเข้าถึงบริการ PSC
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud ที่มีสิทธิ์เจ้าของ
2. สภาพแวดล้อมการทดสอบ
สภาพแวดล้อมที่คุณจะสร้างประกอบด้วย VPC ของผู้ใช้และ VPC ของผู้ให้บริการ ใน VPC ของผู้ผลิต คุณจะติดตั้งใช้งานกลุ่มอินสแตนซ์ที่มีการจัดการจากเทมเพลตอินสแตนซ์ที่สร้างบริการเว็บ Apache แบบโอเพนซอร์ส นอกจากนี้ คุณยังต้องติดตั้งใช้งาน VM ทดสอบเพื่อให้มั่นใจว่าบริการจะทำงานในเครื่องได้อย่างถูกต้อง คุณจะเปิดเผยบริการ Apache เป็นบริการผู้ผลิต PSC ผ่านการเชื่อมต่อบริการ
ใน VPC ของผู้ใช้ คุณจะทําการติดตั้งใช้งานตัวจัดสรรภาระงานแอปพลิเคชันภายนอกทั่วโลกที่มีบริการแบ็กเอนด์ PSC ซึ่งชี้ไปยังบริการ Apache จากนั้นคุณจะตั้งค่าโซน DNS สาธารณะเพื่อเข้าถึงบริการ PSC บนอินเทอร์เน็ตสาธารณะ

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



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
- จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จาก Google Cloud Console ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

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

เครื่องเสมือนนี้มาพร้อมเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร
4. ก่อนเริ่มต้น
เปิดใช้ API
ตรวจสอบว่าได้ตั้งค่ารหัสโปรเจ็กต์ใน Cloud Shell แล้ว
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export project=YOUR-PROJECT-NAME export region=us-central1 echo $project echo $region
เปิดใช้บริการทั้งหมดที่จำเป็น
gcloud services enable compute.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable dns.googleapis.com
5. การตั้งค่า VPC ของผู้ผลิต
สร้างเครือข่าย VPC
จาก Cloud Shell
gcloud compute networks create producer-vpc --subnet-mode custom
สร้างซับเน็ต
ระบบจะทําการติดตั้งใช้งานซับเน็ตอเนกประสงค์ 2 รายการใน producer-vpc ระบบจะใช้เครือข่ายย่อยของบริการเพื่อติดตั้งใช้งาน VM ของบริการเว็บ Apache รวมถึงกฎการส่งต่อตัวจัดสรรภาระงาน test-client-subnet จะอยู่ในภูมิภาคอื่นและจะใช้เพื่อติดตั้งใช้งาน VM เพื่อทดสอบบริการ Apache โดยเปิดใช้การเข้าถึงแบบสากล
จาก Cloud Shell
gcloud compute networks subnets create service-subnet \
--network=producer-vpc \
--range=10.0.0.0/28 \
--region=$region
จาก Cloud Shell
gcloud compute networks subnets create test-client-subnet \
--network=producer-vpc \
--range=10.0.1.0/28 \
--region=us-east4
นอกจากนี้ เรายังต้องติดตั้งใช้งานซับเน็ตเฉพาะพร็อกซีเพื่อใช้กับตัวจัดสรรภาระงานแอปพลิเคชันภายในระดับภูมิภาคด้วย
จาก Cloud Shell
gcloud compute networks subnets create central-proxy-subnet \
--network=producer-vpc \
--range=10.100.101.0/24 \
--region=$region \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE
เมื่อมีการติดตั้งใช้งานบริการ PSC แต่ละบริการที่ไม่ซ้ำกันจะต้องมีเครือข่ายย่อย NAT ของ PSC ที่สอดคล้องกันเพื่อเชื่อมโยงกับ Service Attachment ซับเน็ตนี้ควรมีขนาดที่เหมาะสมตามจำนวนอุปกรณ์ปลายทางที่คาดว่าจะเชื่อมต่อ
จาก Cloud Shell
gcloud compute networks subnets create psc-nat-subnet \
--network=producer-vpc \
--region=$region \
--range=10.100.100.0/24 \
--purpose=PRIVATE_SERVICE_CONNECT
สร้าง Cloud NAT
คุณต้องมี Cloud NAT เพื่อติดตั้งแพ็กเกจที่เหมาะสมสำหรับบริการของผู้ผลิต
จาก Cloud Shell
gcloud compute routers create central-cr \
--network=producer-vpc \
--region=$region
จาก Cloud Shell
gcloud compute routers nats create central-nat \
--router=central-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
สร้างนโยบายและกฎไฟร์วอลล์เครือข่าย
จาก Cloud Shell
gcloud compute network-firewall-policies create producer-vpc-policy --global
gcloud compute network-firewall-policies associations create \
--firewall-policy producer-vpc-policy \
--network producer-vpc \
--name network-producer-vpc \
--global-firewall-policy
หากต้องการอนุญาตให้ IAP เชื่อมต่อกับอินสแตนซ์ VM ให้สร้างกฎไฟร์วอลล์ที่มีลักษณะดังนี้
- มีผลกับอินสแตนซ์ VM ทั้งหมดที่คุณต้องการให้เข้าถึงได้โดยใช้ IAP
- อนุญาตการรับส่งข้อมูลขาเข้าจากช่วง IP 35.235.240.0/20 ช่วงนี้มีที่อยู่ IP ทั้งหมดที่ IAP ใช้สำหรับการส่งต่อ TCP
จาก Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "SSH with IAP" \
--direction INGRESS \
--src-ip-ranges 35.235.240.0/20 \
--layer4-configs tcp:22 \
--global-firewall-policy
คุณจะต้องมีกฎไฟร์วอลล์เพิ่มเติม 2 ข้อเพื่ออนุญาตการรับส่งข้อมูลขาเข้าไปยังแบ็กเอนด์ของตัวจัดสรรภาระงานซึ่งมาจากซับเน็ตเฉพาะพร็อกซีของตัวจัดสรรภาระงาน (2000) รวมถึงกฎที่อนุญาตการตรวจสอบสถานะของตัวจัดสรรภาระงานในอินสแตนซ์แบ็กเอนด์ (2001)
จาก Cloud Shell
gcloud compute network-firewall-policies rules create 2000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow traffic from load balancer proxy subnet" \
--direction INGRESS \
--src-ip-ranges 10.100.101.0/24 \
--layer4-configs tcp:443 \
--global-firewall-policy
gcloud compute network-firewall-policies rules create 2001 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow load balancer health checks" \
--direction INGRESS \
--src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
--layer4-configs tcp:443 \
--global-firewall-policy
6. สร้างบริการเว็บ Apache
เราจะสร้างบริการเว็บ Apache แบบง่ายที่แสดงข้อความ "บริการ PSC"
สร้างเทมเพลตอินสแตนซ์
จาก Cloud Shell
gcloud compute instance-templates create apache-service-template \
--network producer-vpc \
--subnet service-subnet \
--region $region \
--no-address \
--metadata startup-script='#! /bin/bash
sudo apt-get update
apt-get install apache2 -y
a2enmod ssl
sudo a2ensite default-ssl
echo "PSC Service" | \
tee /var/www/html/index.html
systemctl restart apache2'
สร้างการตรวจสอบประสิทธิภาพการทำงานสำหรับ MIG
จาก Cloud Shell
gcloud compute health-checks create https service-mig-healthcheck \
--port=443 \
--global
สร้างกลุ่มอินสแตนซ์ที่มีการจัดการ
จาก Cloud Shell
gcloud compute instance-groups managed create psc-service-mig \
--region $region \
--size=2 \
--template=apache-service-template \
--health-check=service-mig-healthcheck
gcloud compute instance-groups managed set-named-ports psc-service-mig \
--named-ports=https:443 \
--region=$region
7. สร้างใบรับรองที่ลงนามด้วยตนเอง
ทำตามขั้นตอนที่ 1 ของวิธีการที่นี่เพื่อสร้างใบรับรองแบบ Self-signed คุณเรียกใช้คำสั่งทั้งหมดใน Cloud Shell ได้ กลับมาที่นี่เมื่อขั้นตอนที่ 1 เสร็จสมบูรณ์ คุณต้องกำหนดค่าชื่อทั่วไปด้วย EXAMPLE.COM
สร้างทรัพยากรใบรับรองเพื่อเชื่อมโยงกับตัวจัดสรรภาระงาน แทนที่พารามิเตอร์ใบรับรองและคีย์ส่วนตัวด้วยชื่อไฟล์ที่เฉพาะเจาะจงของคุณ
จาก Cloud Shell
gcloud compute ssl-certificates create producer-service-cert \
--certificate=<your-producer-certfile.cert> \
--private-key=<your-producer-keyfile.pem> \
--region=$region
8. สร้าง Application Load Balancer ภายในระดับภูมิภาค
จากนั้นเราจะสร้างคอมโพเนนต์ของตัวจัดสรรภาระงานสำหรับบริการ เราใช้ตัวจัดสรรภาระงานของแอปพลิเคชันภายในระดับภูมิภาค แต่คุณมีตัวเลือกในการใช้ตัวจัดสรรภาระงานภายในของ Google Cloud โปรดดูเอกสารประกอบของตัวจัดสรรภาระงานที่เหมาะสมสำหรับการจัดการ TLS
สร้างที่อยู่ IP ภายในที่จะใช้สำหรับกฎการส่งต่อของตัวจัดสรรภาระงาน และจดบันทึก IP ที่จะใช้ในภายหลังเมื่อคุณโทรทดสอบไปยังบริการ
จาก Cloud Shell
gcloud compute addresses create apache-service-ip \ --region=$region \ --subnet=service-subnet gcloud compute addresses describe apache-service-ip \ --format="get(address)" \ --region=$region
สร้างการตรวจสอบประสิทธิภาพการทำงานของตัวจัดสรรภาระงาน
จาก Cloud Shell
gcloud compute health-checks create https lb-apache-service-hc \
--region=$region \
--port-name=https
สร้างบริการแบ็กเอนด์
จาก Cloud Shell
gcloud compute backend-services create apache-bes\ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --port-name=https \ --health-checks=lb-apache-service-hc \ --health-checks-region=$region \ --region=$region gcloud compute backend-services add-backend apache-bes \ --balancing-mode=UTILIZATION \ --instance-group=psc-service-mig \ --region=$region
สร้างแมป URL
จาก Cloud Shell
gcloud compute url-maps create producer-url-map \ --default-service=apache-bes \ --region=$region
สร้างพร็อกซี HTTPS เป้าหมาย
จาก Cloud Shell
gcloud compute target-https-proxies create https-proxy \ --url-map=producer-url-map \ --region=$region \ --ssl-certificates=producer-service-cert
สร้างกฎการส่งต่อ
จาก Cloud Shell
gcloud compute forwarding-rules create apache-fr \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=producer-vpc \ --subnet=service-subnet \ --address=apache-service-ip \ --ports=443 \ --region=$region \ --target-https-proxy=https-proxy \ --target-https-proxy-region=$region \ --allow-global-access
9. สร้าง VM สำหรับทดสอบและทดสอบบริการในเครื่อง
ก่อนที่จะสร้างการเชื่อมต่อบริการ เราจะสร้าง VM ไคลเอ็นต์ทดสอบในภูมิภาคอื่นเพื่อทดสอบว่าได้กำหนดค่าตัวจัดสรรภาระงานอย่างถูกต้องด้วยการเข้าถึงส่วนกลางและ TLS
จาก Cloud Shell
gcloud compute instances create vm-client \
--zone=us-east4-a \
--subnet=test-client-subnet \
--no-address
รอประมาณ 1 นาทีเพื่อให้การจัดสรรเสร็จสมบูรณ์ แล้ว SSH ไปยังอินสแตนซ์
จาก Cloud Shell
gcloud compute ssh \
--zone "us-east4-a" "vm-client" \
--tunnel-through-iap \
--project $project
ทดสอบบริการ Apache โดยเชื่อมต่อผ่านพอร์ต 443 ผ่านตัวจัดสรรภาระงาน ที่อยู่ IP ภายในคือที่อยู่ที่คุณจองและจดไว้ก่อนหน้านี้
curl https://example.com:443 -k --connect-to example.com:443:<YOUR-INTERNAL-IP>:443
ผลลัพธ์ที่คาดหวัง
PSC Service
ออกจาก VM
จาก vm-client
exit
10. สร้าง Service Attachment
ในตัวอย่างนี้ เราจะกำหนดค่าการเชื่อมต่อบริการเพื่ออนุญาตเฉพาะการเชื่อมต่อ PSC จากโปรเจ็กต์นี้เท่านั้น คุณกำหนดค่าให้ยอมรับโปรเจ็กต์หรือเครือข่ายที่เฉพาะเจาะจงอย่างน้อย 1 รายการได้ แต่จะกำหนดค่าทั้ง 2 อย่างพร้อมกันไม่ได้ เราได้กำหนดขีดจำกัดการเชื่อมต่อสูงสุดไว้ที่ 5 การเชื่อมต่อ แต่ละโปรเจ็กต์หรือเครือข่ายต้องมีการกำหนดโควต้า
จาก Cloud Shell
gcloud compute service-attachments create apache-service-attachment \
--region=$region \
--producer-forwarding-rule=apache-fr \
--connection-preference=ACCEPT_MANUAL \
--consumer-accept-list=$project=5 \
--nat-subnets=psc-nat-subnet
คุณควรจด URI ของการเชื่อมต่อบริการ (selfLink) ไว้ เนื่องจากคุณจะต้องใช้ในขั้นตอนถัดไปสำหรับการกำหนดค่าแบ็กเอนด์ PSC คุณจะรับได้โดยการเรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell
จาก Cloud Shell
gcloud compute service-attachments describe apache-service-attachment \
--region $region
คัดลอก URI โดยเริ่มจาก projects
ตัวอย่าง: projects/$project/regions/$region/serviceAttachments/apache-service-attachment
11. การตั้งค่า VPC ของผู้ใช้
สร้างเครือข่าย VPC
จาก Cloud Shell
gcloud compute networks create consumer-vpc --subnet-mode custom
สร้างซับเน็ต
คุณต้องมีซับเน็ตในฝั่งผู้บริโภคที่จะติดตั้งใช้งานกลุ่มปลายทางเครือข่าย (NEG) ของ Private Service Connect
จาก Cloud Shell
gcloud compute networks subnets create consumer-subnet \
--network=consumer-vpc \
--region=$region \
--range=10.0.0.0/28
12. จอง IP ภายนอกและสร้างใบรับรองแบบ Self-Signed ฝั่งผู้ใช้
IP ภายนอก
สร้างที่อยู่ IP แบบคงที่ภายนอกที่จะใช้ในภายหลังสำหรับกฎการส่งต่อของตัวจัดสรรภาระงาน และบันทึกที่อยู่ IP ในตัวแปร Cloud Shell
จาก Cloud Shell
gcloud compute addresses create external-psc-ip \
--network-tier=PREMIUM \
--ip-version=IPV4 \
--global
export externalip=$(gcloud compute addresses describe external-psc-ip \
--format="get(address)" \
--global)
echo $externalip
ใบรับรองที่ผู้บริโภคสร้างขึ้นเอง
ทำตามขั้นตอนที่ 1 ของวิธีการที่นี่อีกครั้งเพื่อสร้างใบรับรองที่ลงนามด้วยตนเอง คุณเรียกใช้คำสั่งทั้งหมดใน Cloud Shell ได้ กลับมาที่นี่เมื่อขั้นตอนที่ 1 เสร็จสมบูรณ์ เราจะใช้บริการ DNS แบบไวลด์การ์ดสาธารณะแบบโอเพนซอร์สที่ชื่อ nip.io แทนการเป็นเจ้าของโซน DNS สาธารณะของเราเอง URL สาธารณะของบริการ PSC จะใช้ที่อยู่ IP ภายนอกที่คุณเพิ่งกำหนดค่า ต้องกำหนดค่าชื่อสามัญของคุณด้วย <YOUR-EXTERNAL-IP.nip.io>
สร้างทรัพยากรใบรับรองเพื่อเชื่อมโยงกับตัวจัดสรรภาระงานภายนอก แทนที่พารามิเตอร์ใบรับรองและคีย์ส่วนตัวด้วยชื่อไฟล์ที่เฉพาะเจาะจงของคุณ
จาก Cloud Shell
gcloud compute ssl-certificates create consumer-service-cert \
--certificate=<your-consumer-certfile.cert> \
--private-key=<your-consumer-keyfile.pem> \
--global
13. สร้างคอมโพเนนต์ของตัวจัดสรรภาระงาน
เราจะสร้างตัวจัดสรรภาระงานของแอปพลิเคชันภายนอกส่วนกลางที่มี NEG ของ PSC ซึ่งชี้ไปยังไฟล์แนบบริการที่สร้างขึ้นใหม่เป็นบริการแบ็กเอนด์
เตรียม URI ของไฟล์แนบบริการที่เราจดไว้ในขั้นตอนสุดท้ายให้พร้อม แทนที่ psc-target-service ด้านล่างด้วย URI ของคุณ
จาก Cloud Shell
gcloud compute network-endpoint-groups create apache-psc-neg \ --network-endpoint-type=private-service-connect \ --psc-target-service=projects/$project/regions/$region/serviceAttachments/apache-service-attachment \ --region=$region \ --network=consumer-vpc \ --subnet=consumer-subnet
สร้างบริการแบ็กเอนด์
จาก Cloud Shell
gcloud compute backend-services create apache-pscneg-bes \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTPS \
--global
gcloud compute backend-services add-backend apache-pscneg-bes \
--network-endpoint-group=apache-psc-neg \
--network-endpoint-group-region=$region \
--global
สร้างแมป URL
จาก Cloud Shell
gcloud compute url-maps create consumer-url-map \
--default-service=apache-pscneg-bes \
--global
สร้างพร็อกซี HTTPS เป้าหมาย
จาก Cloud Shell
gcloud compute target-https-proxies create psc-https-proxy \
--url-map=consumer-url-map \
--ssl-certificates=consumer-service-cert
สร้างกฎการส่งต่อ
จาก Cloud Shell
gcloud compute forwarding-rules create external-fr \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=external-psc-ip \ --global \ --target-https-proxy=psc-https-proxy \ --ports=443
14. สร้างโซน DNS สาธารณะ
จาก Cloud Shell
gcloud dns managed-zones create "psc-service" \
--dns-name=$externalip.nip.io. \
--description="public dns for psc service" \
--visibility=public
จาก Cloud Shell
gcloud dns record-sets transaction start \ --zone="psc-service" gcloud dns record-sets transaction add $externalip \ --name=$externalip.nip.io \ --ttl=300 \ --type=A \ --zone="psc-service" gcloud dns record-sets transaction execute \ --zone="psc-service"
15. ทดสอบการเชื่อมต่อ PSC สำหรับผู้บริโภค
รอ 7-10 นาทีก่อนทดสอบเพื่อให้ DNS สาธารณะเผยแพร่
จาก Cloud Shell
curl https://$externalip.nip.io -k
นอกจากนี้ คุณยังทดสอบจากเบราว์เซอร์ได้โดยป้อน https://<YOUR-EXTERNAL-IP>.nip.io ลงในเบราว์เซอร์หรือเทอร์มินัลเดสก์ท็อป
ผลลัพธ์ที่คาดหวัง
PSC Service
16. ขั้นตอนการล้างข้อมูล
ลบคอมโพเนนต์ของ Lab จากเทอร์มินัล Cloud Shell เดียว
gcloud dns record-sets delete $externalip.nip.io --zone="psc-service" --type=A -q gcloud dns managed-zones delete "psc-service" -q gcloud compute forwarding-rules delete external-fr --global -q gcloud compute target-https-proxies delete psc-https-proxy -q gcloud compute url-maps delete consumer-url-map --global -q gcloud compute backend-services delete apache-pscneg-bes --global -q gcloud compute network-endpoint-groups delete apache-psc-neg --region=$region -q gcloud compute ssl-certificates delete consumer-service-cert --global -q gcloud compute addresses delete external-psc-ip --global -q gcloud compute networks subnets delete consumer-subnet --region $region -q gcloud compute networks delete consumer-vpc -q gcloud compute instances delete vm-client --zone=us-east4-a -q gcloud compute service-attachments delete apache-service-attachment --region $region -q gcloud compute forwarding-rules delete apache-fr --region $region -q gcloud compute target-https-proxies delete https-proxy --region $region -q gcloud compute url-maps delete producer-url-map --region $region -q gcloud compute backend-services delete apache-bes --region $region -q gcloud compute health-checks delete lb-apache-service-hc --region $region -q gcloud compute addresses delete apache-service-ip --region $region -q gcloud compute ssl-certificates delete producer-service-cert --region $region -q gcloud compute instance-groups managed delete psc-service-mig --region $region -q gcloud compute health-checks delete service-mig-healthcheck --global -q gcloud compute instance-templates delete apache-service-template -q gcloud compute network-firewall-policies rules delete 2001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute routers nats delete central-nat --router=central-cr --region $region -q gcloud compute routers delete central-cr --region $region -q gcloud compute networks subnets delete psc-nat-subnet --region $region -q gcloud compute networks subnets delete service-subnet --region $region -q gcloud compute networks subnets delete test-client-subnet --region us-east4 -q gcloud compute networks subnets delete central-proxy-subnet --region $region -q gcloud compute networks delete producer-vpc -q
17. ยินดีด้วย
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
สิ่งที่เราได้พูดถึง
- สร้างและกำหนดค่าแบ็กเอนด์ PSC ที่เชื่อมโยงกับตัวจัดสรรภาระงานของแอปพลิเคชันภายนอกทั่วโลก
- กำหนดค่าบริการเว็บที่มีการจัดการของ Apache และเปิดเผยเป็นบริการ PSC ผ่านไฟล์แนบบริการ
- สร้างใบรับรอง SSL เพื่อสิ้นสุด SSL ใน Application Load Balancer ภายในและภายนอก
- กำหนดค่าโซนสาธารณะของ Cloud DNS เพื่อเข้าถึงบริการ PSC