1. บทนำ
อินสแตนซ์สมุดบันทึกที่มีการจัดการโดยผู้ใช้ Vertex AI Workbench ให้คุณสร้างและจัดการอินสแตนซ์เครื่องเสมือน (VM) ของการเรียนรู้เชิงลึกที่มีแพ็กเกจล่วงหน้าด้วย JupyterLab ได้
อินสแตนซ์สมุดบันทึกที่จัดการโดยผู้ใช้มีชุดแพ็กเกจการเรียนรู้เชิงลึกที่ติดตั้งไว้ล่วงหน้า รวมถึงการรองรับเฟรมเวิร์ก TensorFlow และ PyTorch คุณจะกำหนดค่าอินสแตนซ์ที่เปิดใช้ CPU เท่านั้นหรือที่เปิดใช้ GPU ก็ได้
สิ่งที่คุณจะสร้าง
บทแนะนำนี้จะอธิบายถึงกระบวนการปรับใช้สมุดบันทึกที่มีการจัดการโดยผู้ใช้อย่างปลอดภัย โดยอิงตามแนวทางปฏิบัติแนะนำจากเครือข่ายและความปลอดภัย โดยมีขั้นตอนดังนี้
- สร้าง VPC
- สร้างเราเตอร์ระบบคลาวด์และ Cloud NAT
- กำหนดค่าอินสแตนซ์สมุดบันทึกด้วยการตั้งค่าความปลอดภัยที่เหมาะสม
บทแนะนำนี้จะให้คำแนะนำโดยละเอียดสำหรับแต่ละขั้นตอน นอกจากนี้ยังมีเคล็ดลับและแนวทางปฏิบัติแนะนำสำหรับการรักษาความปลอดภัยให้สมุดบันทึกที่จัดการโดยผู้ใช้ด้วย รูปที่ 1 คือภาพประกอบการทำให้ใช้งานได้โดยใช้ VPC แบบสแตนด์อโลน
รูปที่ 1
สิ่งที่คุณจะได้เรียนรู้
- วิธีพิจารณาว่า VPC ที่แชร์แบบสแตนด์อโลนเหมาะสมกับองค์กรของคุณหรือไม่
- วิธีสร้าง VPC แบบสแตนด์อโลน
- วิธีสร้าง Cloud Router และ Cloud NAT
- วิธีสร้างสมุดบันทึกที่จัดการโดยผู้ใช้
- วิธีเข้าถึงสมุดบันทึกที่จัดการโดยผู้ใช้
- วิธีตรวจสอบประสิทธิภาพของสมุดบันทึกที่ผู้ใช้จัดการ
- วิธีสร้างและใช้กำหนดการของอินสแตนซ์
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud
สิทธิ์ IAM
- ผู้ดูแลระบบเครือข่ายคอมพิวเตอร์
- ผู้ดูแลระบบความปลอดภัยในการประมวลผล
- ผู้ดูแลระบบอินสแตนซ์ Compute
- ผู้ดูแลระบบสมุดบันทึก
- ผู้ดูแลระบบพื้นที่เก็บข้อมูล
- ผู้ดูแลระบบ IAM ของโปรเจ็กต์
- ผู้ดูแลระบบบัญชีบริการ
- ผู้ใช้บัญชีบริการ
- โปรแกรมดูออบเจ็กต์พื้นที่เก็บข้อมูล (มีผลกับบัญชีบริการ)
- ผู้ใช้ Vertex AI (ใช้กับบัญชีบริการ)
2. เครือข่าย VPC
คุณอาจมองว่าเครือข่าย VPC นั้นเหมือนกับเครือข่ายจริง ยกเว้นว่าเครือข่ายดังกล่าวเป็นเครือข่ายเสมือนภายใน Google Cloud เครือข่าย VPC เป็นทรัพยากรส่วนกลางที่ประกอบด้วยซับเน็ตระดับภูมิภาค เครือข่าย VPC จะมีการแยกออกจากกันอย่างสมเหตุสมผลใน Google Cloud
VPC แบบสแตนด์อโลน
รูปที่ 2 เป็นตัวอย่างของ VPC ทั่วโลกแบบสแตนด์อโลนที่ประกอบด้วยซับเน็ตระดับภูมิภาค (us-central1) นอกเหนือจาก Cloud Router และ Cloud NAT ที่ใช้เพื่ออนุญาตให้สมุดบันทึกของผู้ใช้จัดการสร้างการเชื่อมต่อไปยังอินเทอร์เน็ตได้อย่างปลอดภัย
รูปที่ 2
VPC ที่แชร์
VPC ที่แชร์ช่วยให้คุณส่งออกเครือข่ายย่อยจากเครือข่าย VPC ในโปรเจ็กต์โฮสต์ไปยังโปรเจ็กต์บริการในองค์กรเดียวกันได้ โปรเจ็กต์โฮสต์ประกอบด้วยทรัพยากรเครือข่ายที่แชร์กับโปรเจ็กต์บริการ เช่น ซับเน็ต, Cloud Nat และกฎไฟร์วอลล์ โปรเจ็กต์บริการมีทรัพยากรระดับแอปพลิเคชันที่ใช้ประโยชน์จากทรัพยากรเครือข่ายในโปรเจ็กต์โฮสต์
รูปที่ 3 คือภาพประกอบ VPC ที่แชร์ทั่วโลก ซึ่งมีการทำให้โครงสร้างพื้นฐานของเครือข่ายและการรักษาความปลอดภัยใช้งานได้ในโปรเจ็กต์โฮสต์ ขณะที่มีการทำให้ภาระงานในโปรเจ็กต์บริการใช้งานได้
ภาพที่ 3
VPC แบบสแตนด์อโลนกับ VPC ที่แชร์
เครือข่าย VPC เดียวก็เพียงพอแล้วสำหรับกรณีการใช้งานทั่วไปจำนวนมาก เนื่องจากสร้าง บำรุงรักษา และทำความเข้าใจได้ง่ายกว่าทางเลือกอื่นๆ ที่ซับซ้อนกว่า VPC ที่แชร์เป็นเครื่องมือที่มีประสิทธิภาพสำหรับองค์กรที่มีหลายทีม เนื่องจากช่วยให้องค์กรขยายความเรียบง่ายทางสถาปัตยกรรมของเครือข่าย VPC เดียวในกลุ่มการทำงานหลายกลุ่มผ่านการใช้โปรเจ็กต์บริการ
แนวทางปฏิบัติแนะนำสำหรับ VPC ที่ใช้ในบทแนะนำ
- เปิดใช้ Cloud NAT เพื่อเข้าถึงสมุดบันทึก
- เปิดการเข้าถึง Google แบบส่วนตัว เมื่อสร้างซับเน็ต
- สร้างกฎไฟร์วอลล์ที่กำหนดไว้เพื่อลดการรับส่งข้อมูลที่ไม่พึงประสงค์ เช่น อย่าใช้ 0.0.0.0/0 tcp กำหนดที่อยู่ IP ของซับเน็ตหรือโฮสต์แทน
- ใช้ประโยชน์จากนโยบายไฟร์วอลล์เพื่อเพิ่มขอบเขตของกฎข้อมูลขาเข้า เช่น ตำแหน่งทางภูมิศาสตร์ รายการแหล่งข่าวเกี่ยวกับภัยคุกคาม ชื่อโดเมนต้นทาง เป็นต้น
3. แนวทางปฏิบัติแนะนำสำหรับสมุดบันทึก
ปรับขนาดอินสแตนซ์ของคุณ
- หยุดและ/หรือลบอินสแตนซ์ที่ไม่ได้ใช้
- ใช้อินสแตนซ์เริ่มต้นที่เล็กลงและทำซ้ำด้วยข้อมูลตัวอย่างที่เล็กลง
- เพิ่มทรัพยากรของอินสแตนซ์ตามที่จำเป็น
- การทดสอบกับชุดข้อมูลที่เล็กลง
เลือกประเภทเครื่องที่เหมาะสม
- VM ที่มีการเพิ่มประสิทธิภาพด้านต้นทุน
- ใช้ทรัพยากรฮาร์ดแวร์ให้เกิดประโยชน์สูงสุดเพื่อลดค่าใช้จ่าย
- ประหยัดได้สูงสุดถึง 31% เมื่อเทียบกับ N1
- ประหยัดค่าใช้จ่ายได้มากขึ้น (20-50%) สำหรับสัญญาผูกมัด 1 หรือ 3 ปี
- การเพิ่มขนาดเครื่องหรือเพิ่ม GPU อาจช่วยเพิ่มประสิทธิภาพและแก้ไขข้อผิดพลาดเกี่ยวกับข้อจำกัดด้านหน่วยความจำ
ตั้งเวลาปิดอินสแตนซ์
- ปิดอินสแตนซ์เมื่อไม่มีการใช้งาน (ชำระเงินสำหรับพื้นที่เก็บข้อมูลดิสก์เท่านั้น)
- กำหนดเวลาให้อินสแตนซ์ VM ของสมุดบันทึกปิดการทำงานและเริ่มทำงานโดยอัตโนมัติในเวลาที่ระบุ
ตรวจสอบสถานะความสมบูรณ์ของสมุดบันทึก
- อินสแตนซ์สมุดบันทึกที่ผู้ใช้จัดการมีเครื่องมือวิเคราะห์ในตัวที่ช่วยให้คุณตรวจสอบประสิทธิภาพของอินสแตนซ์ได้
ข้อพิจารณาด้านความปลอดภัย
ต่อไปนี้คือข้อควรพิจารณาด้านความปลอดภัยที่แนะนำเมื่อสร้างสมุดบันทึกที่จัดการโดยผู้ใช้
- เลือกตัวเลือกสำหรับ "ผู้ใช้รายเดียวเท่านั้น" สิทธิ์การเข้าถึงสมุดบันทึก หากผู้ใช้ที่ระบุไม่ใช่ผู้สร้างอินสแตนซ์ คุณต้องมอบบทบาทผู้ใช้บัญชีบริการ (roles/iam.serviceAccountUser) ในบัญชีบริการของอินสแตนซ์ให้กับผู้ใช้ที่ระบุ
- ปิดใช้ตัวเลือกต่อไปนี้
- การเข้าถึงรูท
- nbconvert
- กำลังดาวน์โหลดไฟล์จาก JupyterLab UI
- ระบบจะใช้ Cloud NAT แทนการกำหนดที่อยู่ IP ภายนอกให้กับสมุดบันทึกที่จัดการโดยผู้ใช้
- เลือกตัวเลือกการประมวลผลต่อไปนี้
- การเปิดเครื่องที่ปลอดภัย
- Virtual Trusted Platform Module (vTPM)
- การตรวจสอบความสมบูรณ์
4. ก่อนเริ่มต้น
อัปเดตโปรเจ็กต์เพื่อรองรับบทแนะนำ
บทแนะนำนี้ใช้ $variables เพื่อช่วยในการติดตั้งใช้งานการกำหนดค่า gcloud ใน Cloud Shell
ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้
gcloud config list project
gcloud config set project [your-project-name]
projectid=your-project-name
echo $projectid
5. การตั้งค่า VPC
สร้าง VPC แบบสแตนด์อโลน
ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้
gcloud compute networks create securevertex-vpc --project=$projectid --subnet-mode=custom
สร้างซับเน็ตของสมุดบันทึกที่จัดการโดยผู้ใช้
ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้
gcloud compute networks subnets create securevertex-subnet-a --project=$projectid --range=10.10.10.0/28 --network=securevertex-vpc --region=us-central1 --enable-private-ip-google-access
การกำหนดค่า Cloud Router และ NAT
Cloud NAT จะใช้ในบทแนะนำสำหรับการดาวน์โหลดแพ็กเกจซอฟต์แวร์สมุดบันทึกเนื่องจากอินสแตนซ์สมุดบันทึกที่จัดการโดยผู้ใช้ไม่มีที่อยู่ IP ภายนอก Cloud NAT ยังมีความสามารถ NAT ขาออก ซึ่งหมายความว่าโฮสต์อินเทอร์เน็ตจะไม่ได้รับอนุญาตให้เริ่มต้นการสื่อสารกับสมุดบันทึกที่จัดการโดยผู้ใช้ ซึ่งทำให้มีความปลอดภัยมากขึ้น
สร้างเราเตอร์ระบบคลาวด์ระดับภูมิภาคใน Cloud Shell
gcloud compute routers create cloud-router-us-central1 --network securevertex-vpc --region us-central1
สร้างเกตเวย์ Cloud nat ระดับภูมิภาคใน Cloud Shell
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1 --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
6. สร้างที่เก็บข้อมูลของพื้นที่เก็บข้อมูล
ที่เก็บข้อมูลของพื้นที่เก็บข้อมูลช่วยให้อัปโหลด/เรียกข้อมูลไฟล์ได้อย่างปลอดภัย โดยในบทแนะนำ พื้นที่เก็บข้อมูลระบบคลาวด์จะมีสคริปต์หลังเริ่มต้นใช้งานเพื่อติดตั้งแพ็กเกจ Generative AI ในสมุดบันทึกที่ผู้ใช้จัดการ
สร้างที่เก็บข้อมูล Cloud Storage และแทนที่ BUCKET_NAME ด้วยชื่อที่ไม่ซ้ำกันทั่วโลกที่คุณต้องการ
สร้างที่เก็บข้อมูลของพื้นที่เก็บข้อมูลที่ไม่ซ้ำกันภายใน Cloud Shell
gsutil mb -l us-central1 -b on gs://BUCKET_NAME
ร้านค้า "BUCKET_NAME" ตลอดระยะเวลาที่อยู่ในห้องทดลอง
BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
7. สร้างสคริปต์หลังเริ่มต้นใช้งาน
หากต้องการเปิดใช้การดาวน์โหลดแพ็กเกจ Generative AI ให้สร้างสคริปต์หลังการเริ่มต้นใน Cloud Shell โดยใช้ vi หรือตัวแก้ไขนาโน และบันทึกเป็น poststartup.sh
#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
google-cloud-bigquery \
google-cloud-pipeline-components \
google-cloud-aiplatform \
seaborn \
kfp" >> /tmp/notebook_config.log 2>&1
ตัวอย่าง
vpc_admin@cloudshell$ more poststartup.sh
#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
google-cloud-bigquery \
google-cloud-pipeline-components \
google-cloud-aiplatform \
seaborn \
kfp" >> /tmp/notebook_config.log 2>&1
อัปโหลดสคริปต์เริ่มต้นหลังการใช้งานไปยังที่เก็บข้อมูลของพื้นที่เก็บข้อมูลจาก Cloud Shell โดยใช้ gsutil
gsutil cp poststartup.sh gs://$BUCKET_NAME
8. สร้างบัญชีบริการ
คุณต้องมีบัญชีบริการเพื่อควบคุมสมุดบันทึกที่มีการจัดการโดยผู้ใช้ เมื่อสร้างแล้ว คุณจะแก้ไขสิทธิ์ของบัญชีบริการได้ตามข้อกําหนดทางธุรกิจ ในบทแนะนำ บัญชีบริการจะใช้กฎต่อไปนี้
คุณต้อง Service Account API ก่อนดำเนินการต่อ
สร้างบัญชีบริการใน Cloud Shell
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
ภายใน Cloud Shell ให้อัปเดตบัญชีบริการด้วยบทบาทผู้ดูออบเจ็กต์พื้นที่เก็บข้อมูล
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.objectViewer"
ใน Cloud Shell ให้อัปเดตบัญชีบริการด้วยบทบาทผู้ใช้ Vertex AI
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
ภายใน Cloud Shell ให้ระบุบัญชีบริการและจดบันทึกอีเมลที่จะใช้เมื่อสร้างสมุดบันทึกที่จัดการโดยผู้ใช้
gcloud iam service-accounts list
ตัวอย่าง
$ gcloud iam service-accounts list
DISPLAY NAME: user-managed-notebook-sa
EMAIL: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com
DISABLED: False
9. สร้างสมุดบันทึกที่จัดการโดยผู้ใช้อย่างปลอดภัย
อินสแตนซ์สมุดบันทึกที่จัดการโดยผู้ใช้คืออินสแตนซ์เครื่องเสมือน Deep Learning ที่มีไลบรารีแมชชีนเลิร์นนิงและวิทยาศาสตร์ข้อมูลล่าสุดติดตั้งไว้ล่วงหน้า คุณเลือกรวม GPU ของ Nvidia เพื่อเร่งฮาร์ดแวร์ได้ด้วย
เปิดใช้ API สำหรับผู้บริโภค
สร้างสมุดบันทึกที่จัดการโดยผู้ใช้
- ไปที่ Workbench
- เลือกสมุดบันทึกที่จัดการโดยผู้ใช้ แล้วเลือก "สร้างสมุดบันทึก" หน้า "สร้างสมุดบันทึกที่จัดการโดยผู้ใช้" จะเปิดขึ้น
- หากมีการใช้สมุดบันทึกที่มีอยู่ ให้เลือกสมุดบันทึกที่จัดการโดยผู้ใช้ → สมุดบันทึกใหม่ → ปรับแต่ง
- ในหน้า สร้างสมุดบันทึกที่จัดการโดยผู้ใช้ ในส่วนรายละเอียด ให้ระบุข้อมูลต่อไปนี้สำหรับอินสแตนซ์ใหม่ของคุณ
- ชื่อ: ระบุชื่อสำหรับอินสแตนซ์ใหม่
- ภูมิภาคและโซน: บทแนะนำจะใช้ภูมิภาค us-central1 และโซน us-central1-a
เลือกดำเนินการต่อ
- ในส่วนสภาพแวดล้อม ให้ระบุข้อมูลต่อไปนี้
- ระบบปฏิบัติการ: เลือกระบบปฏิบัติการที่ต้องการใช้
- เลือกสภาพแวดล้อมที่ต้องการใช้
- เวอร์ชัน: เลือกเวอร์ชันที่คุณต้องการใช้
- สคริปต์หลังการเริ่มต้น (ไม่บังคับ ใช้สคริปต์ Generative AI ที่สร้างขึ้นก่อนหน้านี้) เลือก "เรียกดู" เพื่อเลือกสคริปต์ที่จะเรียกใช้หลังจากอินสแตนซ์เริ่มต้น
- ข้อมูลเมตา: ไม่บังคับ: ระบุคีย์ข้อมูลเมตาที่กำหนดเองสำหรับอินสแตนซ์
เลือกดำเนินการต่อ
- ในส่วนประเภทเครื่อง ให้ระบุข้อมูลต่อไปนี้
- ประเภทเครื่อง: เลือกจำนวน CPU และจำนวน RAM สำหรับอินสแตนซ์ใหม่ Vertex AI Workbench จะแสดงค่าใช้จ่ายรายเดือนโดยประมาณสำหรับเครื่องแต่ละประเภทที่คุณเลือก
- ประเภท GPU: เลือกประเภท GPU และจำนวน GPU สำหรับอินสแตนซ์ใหม่ ดูข้อมูลเกี่ยวกับ GPU ที่แตกต่างกันได้ที่ GPU บน Compute Engine
- เลือกช่องทำเครื่องหมาย ติดตั้งไดรเวอร์ GPU ของ NVIDIA โดยอัตโนมัติสำหรับฉัน
VM ที่มีการป้องกัน
- เปิดการเปิดเครื่องที่ปลอดภัย
- เปิด vTPM
- เปิดการตรวจสอบความสมบูรณ์
เลือกดำเนินการต่อ
- ในส่วนดิสก์ ให้ระบุข้อมูลต่อไปนี้
- ดิสก์: ไม่บังคับ: หากต้องการเปลี่ยนการตั้งค่าเริ่มต้นของการเปิดเครื่องหรือดิสก์ข้อมูล ให้เลือกประเภทดิสก์เปิดเครื่อง ขนาดของดิสก์เปิดเครื่องเป็น GB ประเภทดิสก์ข้อมูล และขนาดดิสก์ข้อมูลเป็น GB ที่ต้องการ โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทของดิสก์ที่หัวข้อตัวเลือกพื้นที่เก็บข้อมูล
- ลบไปที่ถังขยะ: ไม่บังคับ: เลือกช่องทำเครื่องหมายนี้เพื่อใช้ลักษณะการทำงานเริ่มต้นของถังขยะของระบบปฏิบัติการ หากคุณใช้ลักษณะการทำงานเริ่มต้นของถังขยะ คุณจะสามารถกู้คืนไฟล์ที่ลบโดยใช้อินเทอร์เฟซผู้ใช้ JupyterLab ได้ แต่ไฟล์ที่ลบเหล่านี้จะใช้พื้นที่ในดิสก์
- การสำรองข้อมูล: ไม่บังคับ: หากต้องการซิงค์ตำแหน่งของ Cloud Storage กับดิสก์ข้อมูลของอินสแตนซ์ ให้เลือก "เรียกดู" และระบุตำแหน่ง Cloud Storage ดูข้อมูลเกี่ยวกับค่าใช้จ่ายในการจัดเก็บได้ที่ราคาของ Cloud Storage
- การเข้ารหัส: คีย์การเข้ารหัสที่จัดการโดย Google
เลือกดำเนินการต่อ
- ในส่วน "เครือข่าย" ให้ระบุข้อมูลต่อไปนี้
- เครือข่าย: เลือกเครือข่ายในโปรเจ็กต์นี้หรือเครือข่ายที่แชร์กับฉัน หากใช้ VPC ที่แชร์ในโปรเจ็กต์โฮสต์ คุณต้องมอบบทบาทผู้ใช้เครือข่าย Compute (roles/compute.networkUser) ให้กับ Agent บริการ Notebook จากโปรเจ็กต์บริการด้วย
- ในฟิลด์ "เครือข่าย" เลือกเครือข่ายที่คุณต้องการ บทแนะนำนี้ใช้เครือข่าย securevertex-vpc คุณสามารถเลือกเครือข่าย VPC ได้ตราบใดที่เครือข่ายเปิดใช้การเข้าถึง Google แบบส่วนตัวไว้หรือสามารถเข้าถึงอินเทอร์เน็ตได้ ในช่องเครือข่ายย่อย ให้เลือกเครือข่ายย่อยที่คุณต้องการในบทแนะนำเกี่ยวกับการใช้เครือข่ายย่อย securevertex-subnet-a
- ยกเลิกการเลือกกำหนดที่อยู่ IP ภายนอก
- เลือกอนุญาตให้เข้าถึงพร็อกซี
เลือกดำเนินการต่อ
- ในส่วน IAM และความปลอดภัย ให้ระบุข้อมูลต่อไปนี้
- เลือกผู้ใช้รายเดียว แล้วป้อนบัญชีผู้ใช้ที่คุณต้องการให้สิทธิ์เข้าถึงในช่องอีเมลผู้ใช้ หากผู้ใช้ที่ระบุไม่ใช่ผู้สร้างอินสแตนซ์ คุณต้องมอบบทบาทผู้ใช้บัญชีบริการ (roles/iam.serviceAccountUser) ในบัญชีบริการของอินสแตนซ์ให้กับผู้ใช้ที่ระบุ
- ยกเลิกการเลือก "ใช้บัญชีบริการ Compute Engine เริ่มต้นบน VM เพื่อเรียกใช้ Google Cloud APIs
- ป้อนอีเมลของบัญชีบริการที่สร้างขึ้นใหม่ เช่น user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com
ตัวเลือกความปลอดภัย
- ยกเลิกการเลือกเปิดใช้การเข้าถึงรูทไปยังอินสแตนซ์
- ยกเลิกการเลือกเปิดใช้ nbconvert
- ยกเลิกการเลือก "เปิดใช้การดาวน์โหลดไฟล์จาก JupyterLab UI"
- เปิดใช้เทอร์มินัล (ยกเลิกการเลือกสำหรับสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง)
เลือกดำเนินการต่อ
- ในส่วนสถานะของระบบ ให้ระบุข้อมูลต่อไปนี้
การอัปเกรดสภาพแวดล้อมและประสิทธิภาพของระบบ
- เลือกช่องทำเครื่องหมายเปิดใช้การอัปเกรดสภาพแวดล้อมอัตโนมัติ
- เลือกว่าจะอัปเกรดสมุดบันทึกแบบรายสัปดาห์หรือรายเดือน
ในประสิทธิภาพของระบบและการรายงาน ให้เลือกหรือล้างช่องทำเครื่องหมายต่อไปนี้
- เปิดใช้รายงานประสิทธิภาพของระบบ
- รายงานเมตริกที่กำหนดเองไปยัง Cloud Monitoring
- ติดตั้ง Agent ของ Cloud Monitoring
เลือกสร้าง
10. การตรวจสอบความถูกต้อง
Vertex AI Workbench จะสร้างอินสแตนซ์สมุดบันทึกที่มีการจัดการโดยผู้ใช้โดยอิงตามพร็อพเพอร์ตี้ที่ระบุไว้ และเริ่มต้นอินสแตนซ์โดยอัตโนมัติ เมื่ออินสแตนซ์พร้อมใช้งานแล้ว Vertex AI Workbench จะเปิดใช้งานลิงก์ Open JupyterLab ที่อนุญาตให้ผู้ใช้ปลายทางเข้าถึงสมุดบันทึกได้
11. ความสามารถในการสังเกต
ตรวจสอบเมตริกของระบบและแอปพลิเคชันผ่าน Monitoring
สำหรับอินสแตนซ์สมุดบันทึกที่จัดการโดยผู้ใช้ซึ่งมีติดตั้งการตรวจสอบแล้ว คุณสามารถตรวจสอบเมตริกของระบบและแอปพลิเคชันได้โดยใช้คอนโซล Google Cloud โดยทำดังนี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าสมุดบันทึกที่ผู้ใช้จัดการ
- คลิกชื่ออินสแตนซ์ที่ต้องการดูเมตริกระบบและแอปพลิเคชัน
- ในหน้ารายละเอียดสมุดบันทึก ให้คลิกแท็บการตรวจสอบ ตรวจสอบเมตริกระบบและแอปพลิเคชันสำหรับอินสแตนซ์
12. สร้างกำหนดการของสมุดบันทึก
กำหนดการของอินสแตนซ์ช่วยให้คุณเริ่มและหยุดอินสแตนซ์เครื่องเสมือน (VM) ได้โดยอัตโนมัติ การใช้กำหนดการของอินสแตนซ์เพื่อทำให้อินสแตนซ์ VM ใช้งานได้โดยอัตโนมัติจะช่วยลดต้นทุนและจัดการอินสแตนซ์ VM ได้อย่างมีประสิทธิภาพมากขึ้น คุณใช้กำหนดการของอินสแตนซ์สำหรับทั้งภาระงานที่เกิดซ้ำและแบบครั้งเดียวได้ ตัวอย่างเช่น ใช้กำหนดการของอินสแตนซ์เพื่อเรียกใช้อินสแตนซ์ VM เฉพาะในระหว่างเวลาทำงาน หรือเพื่อความจุสำหรับเหตุการณ์ครั้งเดียว
หากต้องการใช้กำหนดการของอินสแตนซ์ ให้สร้างนโยบายทรัพยากรที่มีรายละเอียดพฤติกรรมการเริ่มต้นและการหยุด แล้วแนบนโยบายกับอินสแตนซ์ VM อย่างน้อย 1 รายการ
บทแนะนำจะแสดงวิธีสร้างกำหนดการของอินสแตนซ์ที่จะเปิดสมุดบันทึกเวลา 7:00 น. และปิดเวลา 18:00 น.
หากต้องการสร้างกำหนดการของอินสแตนซ์ คุณจะต้องมีสิทธิ์ compute.instances.start และ compute.instances.stop ดังนั้น ขอแนะนำให้ใช้บทบาทที่กำหนดเองที่ผู้ดูแลระบบได้มอบไว้ให้คุณ
เมื่อสร้างแล้ว ระบบจะมอบหมายบทบาทที่กำหนดเองให้กับบัญชีบริการ Compute Engine เริ่มต้นในโปรเจ็กต์ ซึ่งจะอนุญาตให้กำหนดการของอินสแตนซ์เริ่มต้นและหยุดสมุดบันทึกได้
สร้างบทบาทที่กำหนดเอง
ใน Cloud Shell ให้สร้างบทบาทที่กำหนดเอง, VmScheduler และรวมสิทธิ์ที่จำเป็น
gcloud iam roles create Vm_Scheduler --project=$projectid \
--title=vm-scheduler-notebooks \
--permissions="compute.instances.start,compute.instances.stop" --stage=ga
อธิบายบทบาทที่กำหนดเองจาก Cloud Shell
gcloud iam roles describe Vm_Scheduler --project=$projectid
ตัวอย่าง
$ gcloud iam roles describe Vm_Scheduler --project=$projectid
etag: BwX991B0_kg=
includedPermissions:
- compute.instances.start
- compute.instances.stop
name: projects/$projectid/roles/Vm_Scheduler
stage: GA
title: vm-scheduler-notebooks
อัปเดตบัญชีบริการเริ่มต้น
ในส่วนต่อไปนี้ คุณจะต้องระบุและอัปเดตบัญชีบริการเริ่มต้นซึ่งมีรูปแบบดังนี้ PROJECT_NUMBER-compute@developer.gserviceaccount.com
ใน Cloud Shell ให้ระบุหมายเลขโปรเจ็กต์ปัจจุบัน
gcloud projects list --filter=$projectid
จัดเก็บหมายเลขโปรเจ็กต์เป็นตัวแปรใน Cloud Shell
project_number=your_project_number
echo $project_number
ใน Cloud Shell ให้อัปเดตบัญชีบริการประมวลผลเริ่มต้นด้วยบทบาทที่กำหนดเอง VM_Scheduler
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"
สร้างกำหนดการของอินสแตนซ์
สร้างกำหนดการเริ่มต้นและหยุดใน Cloud Shell
gcloud compute resource-policies create instance-schedule optimize-notebooks \
--region=us-central1 \
--vm-start-schedule='0 7 * * *' \
--vm-stop-schedule='0 18 * * *' \
--timezone=America/Chicago
จัดเก็บชื่อของสมุดบันทึกใน Cloud Shell
gcloud compute instances list
notebook_vm=your_notebookvm_name
echo $notebook_vm
คุณแนบกำหนดการของอินสแตนซ์กับอินสแตนซ์ VM ที่มีอยู่ที่อยู่ในภูมิภาคเดียวกับกำหนดการอินสแตนซ์ได้
ใน Cloud Shell ให้เชื่อมโยงกำหนดการกับสมุดบันทึกของคุณ
gcloud compute instances add-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a
13. ล้างข้อมูล
ลบสมุดบันทึกที่จัดการโดยผู้ใช้จากคอนโซล ไปที่ Vertex AI → Workbench เลือกและลบสมุดบันทึก
ลบคอมโพเนนต์ VPC จาก Cloud Shell
gcloud compute routers delete cloud-router-us-central1 --region=us-central1 --quiet
gcloud compute routers nats delete cloud-nat-us-central1 --region=us-central1 --router=cloud-router-us-central1 --quiet
gcloud compute instances remove-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a --quiet
gcloud compute resource-policies delete optimize-notebooks --region=us-central1 --quiet
gcloud compute instances delete $notebook_vm --zone=us-central1-a --quiet
gcloud compute networks subnets delete securevertex-subnet-a --region=us-central1 --quiet
gcloud iam service-accounts delete user-managed-notebook-sa@$projectid.iam.gserviceaccount.com --quiet
gcloud projects remove-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"
gcloud iam roles delete Vm_Scheduler --project=$projectid
gcloud compute networks delete securevertex-vpc --quiet
14. ขอแสดงความยินดี
เยี่ยมมาก! คุณได้กำหนดค่าและตรวจสอบสมุดบันทึกที่ปลอดภัยซึ่งผู้ใช้จัดการแล้วด้วยการสร้าง VPC แบบสแตนด์อโลนที่กำหนดเอง โดยใช้แนวทางปฏิบัติแนะนำในการปิดช่องโหว่ด้านความปลอดภัยสำหรับสมุดบันทึกที่มีการจัดการ และใช้กำหนดการของอินสแตนซ์เพื่อเพิ่มประสิทธิภาพการใช้จ่าย
สิ่งที่ต้องทำต่อไป
ดูบทแนะนำบางส่วนเหล่านี้...
- ข้อมูลเบื้องต้นเกี่ยวกับ Vertex Pipelines
- งานการฝึกที่กำหนดเองและการคาดการณ์โดยใช้ชุดข้อมูลที่มีการจัดการ
อ่านเพิ่มเติมและ วิดีโอ
- การเริ่มต้นใช้งานสมุดบันทึกสำหรับแมชชีนเลิร์นนิง
- เริ่มต้นใช้งาน Vertex AI
- ข้อมูลเบื้องต้นเกี่ยวกับ Generative AI
เอกสารอ้างอิง
- บทนำ เกี่ยวกับ Vertex AI Workbench
- บทนำเกี่ยวกับสมุดบันทึกที่ผู้ใช้จัดการ
- ใช้อินสแตนซ์สมุดบันทึกที่จัดการโดยผู้ใช้ภายในขอบเขตบริการ
- สร้าง บัญชีบริการ
- การตั้งเวลาอินสแตนซ์ VM เพื่อเริ่มต้นและหยุด