1. บทนำ
Private Service Connect ช่วยให้ผู้ผลิตบริการแสดงบริการจากเครือข่าย VPC หนึ่งไปยังอีกเครือข่ายหนึ่งได้แบบส่วนตัว ผู้บริโภคสามารถเข้าถึงบริการของผู้ผลิตผ่านปลายทาง PSC หรือแบ็กเอนด์ PSC
เนื้อหาหลักของ Codelab นี้คือแบ็กเอนด์ PSC แบ็กเอนด์ PSC ใช้ร่วมกับตัวจัดสรรภาระงานพร็อกซีของ Google Cloud (แอปพลิเคชันหรือเครือข่าย) การใช้แบ็กเอนด์ PSC จะช่วยให้ควบคุมฝั่งผู้บริโภคได้ละเอียดยิ่งขึ้น เช่น
- ความสามารถในการสังเกตและการบันทึกที่ละเอียดยิ่งขึ้น
- การผสานรวม Cloud Armor
- URL ที่กำหนดเอง
- การจัดการการรับส่งข้อมูลขั้นสูง
- ใบรับรอง TLS ที่กําหนดเอง
ในโค้ดแล็บนี้ คุณจะได้เรียนรู้วิธีสร้างแบ็กเอนด์ Private Service Connect ด้วย Global External Application Load Balancer เพื่อเข้าถึงบริการของผู้ผลิตในเครือข่ายอื่นแบบส่วนตัว
สิ่งที่คุณจะได้เรียนรู้
- สร้างและกําหนดค่าแบ็กเอนด์ PSC ที่เชื่อมโยงกับตัวจัดสรรภาระงานแอปพลิเคชันภายนอกทั่วโลก
- กำหนดค่าเว็บเซอร์วิสที่จัดการโดย Apache และแสดงเป็นบริการ PSC ผ่านไฟล์แนบบริการ
- สร้างใบรับรอง SSL เพื่อสิ้นสุด SSL ใน Application Load Balancer ภายในและภายนอก
- กำหนดค่าโซนสาธารณะของ Cloud DNS เพื่อเข้าถึงบริการ PSC
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud ที่มีสิทธิ์ระดับเจ้าของ
2. สภาพแวดล้อมการทดสอบ
สภาพแวดล้อมที่คุณสร้างจะประกอบด้วย VPC ของผู้บริโภคและ VPC ของผู้ผลิต ใน VPC ของผู้ผลิต คุณจะใช้กลุ่มอินสแตนซ์ที่มีการจัดการจากเทมเพลตอินสแตนซ์ที่สร้างบริการเว็บ Apache แบบโอเพนซอร์ส นอกจากนี้ คุณยังจะติดตั้งใช้งาน test-vm เพื่อให้แน่ใจว่าบริการทำงานได้อย่างถูกต้องในเครื่อง คุณจะแสดงบริการ Apache เป็นบริการ PSC Producer ผ่านไฟล์แนบบริการ
ใน VPC ของผู้บริโภค คุณจะติดตั้งใช้งาน Global External Application Load Balancer ที่มีบริการแบ็กเอนด์ PSC ที่ชี้ไปยังบริการ Apache จากนั้นคุณจะตั้งค่าโซน DNS สาธารณะเพื่อเข้าถึงบริการ PSC บนอินเทอร์เน็ตสาธารณะ
3. การตั้งค่าและข้อกําหนด
การตั้งค่าสภาพแวดล้อมด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะต้องไม่ซ้ำกันสำหรับโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น
PROJECT_ID
) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าอุปกรณ์พร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงหลังจากขั้นตอนนี้ไม่ได้ และชื่อนี้จะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่ม Cloud Shell
แม้ว่าคุณจะดำเนินการกับ Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ในโค้ดแล็บนี้ คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จากคอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน
การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อดำเนินการเสร็จแล้ว คุณควรเห็นข้อมูลดังต่อไปนี้
เครื่องเสมือนนี้โหลดเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ ซึ่งจะมีไดเรกทอรีหลักขนาด 5 GB ถาวรและทำงานบน Google Cloud ซึ่งจะช่วยเพิ่มประสิทธิภาพเครือข่ายและการรับรองได้อย่างมีประสิทธิภาพ คุณทํางานทั้งหมดในโค้ดแล็บนี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไรเลย
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 ที่เกี่ยวข้องเพื่อเชื่อมโยงกับไฟล์แนบบริการ ซับเน็ตนี้ควรมีขนาดที่เหมาะสมตามจํานวนอุปกรณ์ปลายทางที่เชื่อมต่อที่คาดไว้
จาก 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 ของวิธีการที่นี่เพื่อสร้างใบรับรองที่ลงนามด้วยตนเอง คุณเรียกใช้คําสั่งทั้งหมดใน 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. สร้างตัวจัดสรรภาระงานแอปพลิเคชันระดับภูมิภาคภายใน
ต่อไปเราจะสร้างคอมโพเนนต์ตัวจัดสรรภาระงานสําหรับบริการ เราใช้ตัวจัดสรรภาระงานแอปพลิเคชันระดับภูมิภาคภายใน แต่คุณเลือกใช้ตัวจัดสรรภาระงานภายในของ 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 ไคลเอ็นต์ทดสอบในภูมิภาคอื่นเพื่อทดสอบว่าตัวจัดสรรภาระงานได้รับการกําหนดค่าอย่างถูกต้องด้วย Global Access และ 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. สร้างไฟล์แนบของบริการ
ในตัวอย่างนี้ เราจะกำหนดค่าไฟล์แนบบริการให้อนุญาตเฉพาะการเชื่อมต่อ PSC จากโปรเจ็กต์นี้เท่านั้น คุณสามารถกําหนดค่าให้ยอมรับโปรเจ็กต์หรือเครือข่ายที่เฉพาะเจาะจงอย่างน้อย 1 รายการ แต่ต้องเลือกอย่างใดอย่างหนึ่ง เราได้กำหนดขีดจำกัดการเชื่อมต่อสูงสุดไว้ที่ 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 ภายนอกและสร้างใบรับรองที่ลงนามด้วยตนเองฝั่งผู้บริโภค
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. สร้างคอมโพเนนต์ตัวจัดสรรภาระงาน
เราจะสร้างตัวจัดสรรภาระงานแอปพลิเคชันภายนอกทั่วโลกที่มี PSC NEG ซึ่งชี้ไปยังไฟล์แนบบริการที่สร้างขึ้นใหม่ของเราเป็นบริการแบ็กเอนด์
เตรียม 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. ขั้นตอนการล้างข้อมูล
ลบคอมโพเนนต์ของห้องทดลองจากเทอร์มินัล 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