Vertex AI สร้างสมุดบันทึกที่ปลอดภัยซึ่งผู้ใช้จัดการ

1. บทนำ

อินสแตนซ์สมุดบันทึกที่มีการจัดการโดยผู้ใช้ Vertex AI Workbench ให้คุณสร้างและจัดการอินสแตนซ์เครื่องเสมือน (VM) ของการเรียนรู้เชิงลึกที่มีแพ็กเกจล่วงหน้าด้วย JupyterLab ได้

อินสแตนซ์สมุดบันทึกที่จัดการโดยผู้ใช้มีชุดแพ็กเกจการเรียนรู้เชิงลึกที่ติดตั้งไว้ล่วงหน้า รวมถึงการรองรับเฟรมเวิร์ก TensorFlow และ PyTorch คุณจะกำหนดค่าอินสแตนซ์ที่เปิดใช้ CPU เท่านั้นหรือที่เปิดใช้ GPU ก็ได้

สิ่งที่คุณจะสร้าง

บทแนะนำนี้จะอธิบายถึงกระบวนการปรับใช้สมุดบันทึกที่มีการจัดการโดยผู้ใช้อย่างปลอดภัย โดยอิงตามแนวทางปฏิบัติแนะนำจากเครือข่ายและความปลอดภัย โดยมีขั้นตอนดังนี้

  1. สร้าง VPC
  2. สร้างเราเตอร์ระบบคลาวด์และ Cloud NAT
  3. กำหนดค่าอินสแตนซ์สมุดบันทึกด้วยการตั้งค่าความปลอดภัยที่เหมาะสม

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

รูปที่ 1

2292244ba0b11f71.png

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

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

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

  • โปรเจ็กต์ Google Cloud

สิทธิ์ IAM

2. เครือข่าย VPC

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

VPC แบบสแตนด์อโลน

รูปที่ 2 เป็นตัวอย่างของ VPC ทั่วโลกแบบสแตนด์อโลนที่ประกอบด้วยซับเน็ตระดับภูมิภาค (us-central1) นอกเหนือจาก Cloud Router และ Cloud NAT ที่ใช้เพื่ออนุญาตให้สมุดบันทึกของผู้ใช้จัดการสร้างการเชื่อมต่อไปยังอินเทอร์เน็ตได้อย่างปลอดภัย

รูปที่ 2

2292244ba0b11f71.png

VPC ที่แชร์

VPC ที่แชร์ช่วยให้คุณส่งออกเครือข่ายย่อยจากเครือข่าย VPC ในโปรเจ็กต์โฮสต์ไปยังโปรเจ็กต์บริการในองค์กรเดียวกันได้ โปรเจ็กต์โฮสต์ประกอบด้วยทรัพยากรเครือข่ายที่แชร์กับโปรเจ็กต์บริการ เช่น ซับเน็ต, Cloud Nat และกฎไฟร์วอลล์ โปรเจ็กต์บริการมีทรัพยากรระดับแอปพลิเคชันที่ใช้ประโยชน์จากทรัพยากรเครือข่ายในโปรเจ็กต์โฮสต์

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

ภาพที่ 3

1354a9323c8e5787.png

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 สำหรับผู้บริโภค

Notebooks API

สร้างสมุดบันทึกที่จัดการโดยผู้ใช้

  1. ไปที่ Workbench
  2. เลือกสมุดบันทึกที่จัดการโดยผู้ใช้ แล้วเลือก "สร้างสมุดบันทึก" หน้า "สร้างสมุดบันทึกที่จัดการโดยผู้ใช้" จะเปิดขึ้น
  3. หากมีการใช้สมุดบันทึกที่มีอยู่ ให้เลือกสมุดบันทึกที่จัดการโดยผู้ใช้ → สมุดบันทึกใหม่ → ปรับแต่ง
  4. ในหน้า สร้างสมุดบันทึกที่จัดการโดยผู้ใช้ ในส่วนรายละเอียด ให้ระบุข้อมูลต่อไปนี้สำหรับอินสแตนซ์ใหม่ของคุณ
  • ชื่อ: ระบุชื่อสำหรับอินสแตนซ์ใหม่
  • ภูมิภาคและโซน: บทแนะนำจะใช้ภูมิภาค us-central1 และโซน us-central1-a

เลือกดำเนินการต่อ

  1. ในส่วนสภาพแวดล้อม ให้ระบุข้อมูลต่อไปนี้
  • ระบบปฏิบัติการ: เลือกระบบปฏิบัติการที่ต้องการใช้
  • เลือกสภาพแวดล้อมที่ต้องการใช้
  • เวอร์ชัน: เลือกเวอร์ชันที่คุณต้องการใช้
  • สคริปต์หลังการเริ่มต้น (ไม่บังคับ ใช้สคริปต์ Generative AI ที่สร้างขึ้นก่อนหน้านี้) เลือก "เรียกดู" เพื่อเลือกสคริปต์ที่จะเรียกใช้หลังจากอินสแตนซ์เริ่มต้น
  • ข้อมูลเมตา: ไม่บังคับ: ระบุคีย์ข้อมูลเมตาที่กำหนดเองสำหรับอินสแตนซ์

เลือกดำเนินการต่อ

  1. ในส่วนประเภทเครื่อง ให้ระบุข้อมูลต่อไปนี้
  • ประเภทเครื่อง: เลือกจำนวน CPU และจำนวน RAM สำหรับอินสแตนซ์ใหม่ Vertex AI Workbench จะแสดงค่าใช้จ่ายรายเดือนโดยประมาณสำหรับเครื่องแต่ละประเภทที่คุณเลือก
  • ประเภท GPU: เลือกประเภท GPU และจำนวน GPU สำหรับอินสแตนซ์ใหม่ ดูข้อมูลเกี่ยวกับ GPU ที่แตกต่างกันได้ที่ GPU บน Compute Engine
  • เลือกช่องทำเครื่องหมาย ติดตั้งไดรเวอร์ GPU ของ NVIDIA โดยอัตโนมัติสำหรับฉัน

VM ที่มีการป้องกัน

  • เปิดการเปิดเครื่องที่ปลอดภัย
  • เปิด vTPM
  • เปิดการตรวจสอบความสมบูรณ์

เลือกดำเนินการต่อ

  1. ในส่วนดิสก์ ให้ระบุข้อมูลต่อไปนี้
  • ดิสก์: ไม่บังคับ: หากต้องการเปลี่ยนการตั้งค่าเริ่มต้นของการเปิดเครื่องหรือดิสก์ข้อมูล ให้เลือกประเภทดิสก์เปิดเครื่อง ขนาดของดิสก์เปิดเครื่องเป็น GB ประเภทดิสก์ข้อมูล และขนาดดิสก์ข้อมูลเป็น GB ที่ต้องการ โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทของดิสก์ที่หัวข้อตัวเลือกพื้นที่เก็บข้อมูล
  • ลบไปที่ถังขยะ: ไม่บังคับ: เลือกช่องทำเครื่องหมายนี้เพื่อใช้ลักษณะการทำงานเริ่มต้นของถังขยะของระบบปฏิบัติการ หากคุณใช้ลักษณะการทำงานเริ่มต้นของถังขยะ คุณจะสามารถกู้คืนไฟล์ที่ลบโดยใช้อินเทอร์เฟซผู้ใช้ JupyterLab ได้ แต่ไฟล์ที่ลบเหล่านี้จะใช้พื้นที่ในดิสก์
  • การสำรองข้อมูล: ไม่บังคับ: หากต้องการซิงค์ตำแหน่งของ Cloud Storage กับดิสก์ข้อมูลของอินสแตนซ์ ให้เลือก "เรียกดู" และระบุตำแหน่ง Cloud Storage ดูข้อมูลเกี่ยวกับค่าใช้จ่ายในการจัดเก็บได้ที่ราคาของ Cloud Storage
  • การเข้ารหัส: คีย์การเข้ารหัสที่จัดการโดย Google

เลือกดำเนินการต่อ

  1. ในส่วน "เครือข่าย" ให้ระบุข้อมูลต่อไปนี้
  • เครือข่าย: เลือกเครือข่ายในโปรเจ็กต์นี้หรือเครือข่ายที่แชร์กับฉัน หากใช้ VPC ที่แชร์ในโปรเจ็กต์โฮสต์ คุณต้องมอบบทบาทผู้ใช้เครือข่าย Compute (roles/compute.networkUser) ให้กับ Agent บริการ Notebook จากโปรเจ็กต์บริการด้วย
  • ในฟิลด์ "เครือข่าย" เลือกเครือข่ายที่คุณต้องการ บทแนะนำนี้ใช้เครือข่าย securevertex-vpc คุณสามารถเลือกเครือข่าย VPC ได้ตราบใดที่เครือข่ายเปิดใช้การเข้าถึง Google แบบส่วนตัวไว้หรือสามารถเข้าถึงอินเทอร์เน็ตได้ ในช่องเครือข่ายย่อย ให้เลือกเครือข่ายย่อยที่คุณต้องการในบทแนะนำเกี่ยวกับการใช้เครือข่ายย่อย securevertex-subnet-a
  • ยกเลิกการเลือกกำหนดที่อยู่ IP ภายนอก
  • เลือกอนุญาตให้เข้าถึงพร็อกซี

เลือกดำเนินการต่อ

81bb7dbe31fbf587.png

  1. ในส่วน IAM และความปลอดภัย ให้ระบุข้อมูลต่อไปนี้
  • เลือกผู้ใช้รายเดียว แล้วป้อนบัญชีผู้ใช้ที่คุณต้องการให้สิทธิ์เข้าถึงในช่องอีเมลผู้ใช้ หากผู้ใช้ที่ระบุไม่ใช่ผู้สร้างอินสแตนซ์ คุณต้องมอบบทบาทผู้ใช้บัญชีบริการ (roles/iam.serviceAccountUser) ในบัญชีบริการของอินสแตนซ์ให้กับผู้ใช้ที่ระบุ
  • ยกเลิกการเลือก "ใช้บัญชีบริการ Compute Engine เริ่มต้นบน VM เพื่อเรียกใช้ Google Cloud APIs
  • ป้อนอีเมลของบัญชีบริการที่สร้างขึ้นใหม่ เช่น user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com

ตัวเลือกความปลอดภัย

  • ยกเลิกการเลือกเปิดใช้การเข้าถึงรูทไปยังอินสแตนซ์
  • ยกเลิกการเลือกเปิดใช้ nbconvert
  • ยกเลิกการเลือก "เปิดใช้การดาวน์โหลดไฟล์จาก JupyterLab UI"
  • เปิดใช้เทอร์มินัล (ยกเลิกการเลือกสำหรับสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง)

เลือกดำเนินการต่อ

e19f3cd05a2c1b7f.png

  1. ในส่วนสถานะของระบบ ให้ระบุข้อมูลต่อไปนี้

การอัปเกรดสภาพแวดล้อมและประสิทธิภาพของระบบ

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

ในประสิทธิภาพของระบบและการรายงาน ให้เลือกหรือล้างช่องทำเครื่องหมายต่อไปนี้

  • เปิดใช้รายงานประสิทธิภาพของระบบ
  • รายงานเมตริกที่กำหนดเองไปยัง Cloud Monitoring
  • ติดตั้ง Agent ของ Cloud Monitoring

เลือกสร้าง

10. การตรวจสอบความถูกต้อง

Vertex AI Workbench จะสร้างอินสแตนซ์สมุดบันทึกที่มีการจัดการโดยผู้ใช้โดยอิงตามพร็อพเพอร์ตี้ที่ระบุไว้ และเริ่มต้นอินสแตนซ์โดยอัตโนมัติ เมื่ออินสแตนซ์พร้อมใช้งานแล้ว Vertex AI Workbench จะเปิดใช้งานลิงก์ Open JupyterLab ที่อนุญาตให้ผู้ใช้ปลายทางเข้าถึงสมุดบันทึกได้

11. ความสามารถในการสังเกต

ตรวจสอบเมตริกของระบบและแอปพลิเคชันผ่าน Monitoring

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

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าสมุดบันทึกที่ผู้ใช้จัดการ
  2. คลิกชื่ออินสแตนซ์ที่ต้องการดูเมตริกระบบและแอปพลิเคชัน
  3. ในหน้ารายละเอียดสมุดบันทึก ให้คลิกแท็บการตรวจสอบ ตรวจสอบเมตริกระบบและแอปพลิเคชันสำหรับอินสแตนซ์

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 แบบสแตนด์อโลนที่กำหนดเอง โดยใช้แนวทางปฏิบัติแนะนำในการปิดช่องโหว่ด้านความปลอดภัยสำหรับสมุดบันทึกที่มีการจัดการ และใช้กำหนดการของอินสแตนซ์เพื่อเพิ่มประสิทธิภาพการใช้จ่าย

สิ่งที่ต้องทำต่อไป

ดูบทแนะนำบางส่วนเหล่านี้...

อ่านเพิ่มเติมและ วิดีโอ

เอกสารอ้างอิง