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

1. บทนำ

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

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

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

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

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

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

รูปที่ 1

2292244ba0b11f71.png

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

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

สิ่งที่คุณต้องมี

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

สิทธิ์ IAM

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

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

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

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

รูปที่ 2

2292244ba0b11f71.png

VPC ที่แชร์

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

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

รูปที่ 3

1354a9323c8e5787.png

VPC แบบสแตนด์อโลนเทียบกับ VPC ที่แชร์

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

แนวทางปฏิบัติแนะนำเกี่ยวกับ VPC ที่ใช้ในบทแนะนำ

  • เปิดใช้ Cloud NAT เพื่อเข้าถึง Notebook
  • เปิดการเข้าถึง Google แบบส่วนตัว เมื่อสร้างเครือข่ายย่อย
  • สร้างกฎไฟร์วอลล์ที่แนะนําเพื่อลดการเข้าชมที่ไม่พึงประสงค์ เช่น อย่าใช้ 0.0.0.0/0 tcp แต่ให้กําหนดที่อยู่ IP ของซับเน็ตหรือโฮสต์ที่แน่นอน
  • ใช้นโยบายไฟร์วอลล์เพื่อขยายขอบเขตของกฎขาเข้า เช่น สถานที่ทางภูมิศาสตร์ รายการข้อมูลภัยคุกคาม ชื่อโดเมนต้นทาง ฯลฯ

3. แนวทางปฏิบัติแนะนำสำหรับ Notebook

ปรับขนาดอินสแตนซ์ให้เหมาะสม

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

เลือกประเภทเครื่องที่เหมาะสม

  • VM ที่เพิ่มประสิทธิภาพด้านต้นทุน
  • ใช้ทรัพยากรฮาร์ดแวร์ให้เกิดประโยชน์มากขึ้นเพื่อลดต้นทุน
  • ประหยัดสูงสุด 31% เมื่อเทียบกับ N1
  • ส่วนลดเพิ่มเติม (20-50%) สำหรับสัญญา 1 หรือ 3 ปี
  • การเพิ่มขนาดเครื่องหรือการเพิ่ม GPU จะช่วยในเรื่องประสิทธิภาพและช่วยแก้ไขข้อผิดพลาดเกี่ยวกับข้อจำกัดด้านหน่วยความจำได้

ตั้งเวลาปิดอินสแตนซ์

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

ตรวจสอบสถานะความสมบูรณ์ของ Notebook

ข้อควรพิจารณาด้านความปลอดภัย

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

  • เลือกตัวเลือกสำหรับการเข้าถึง Notebook แบบ "ผู้ใช้คนเดียวเท่านั้น" หากผู้ใช้ที่ระบุไม่ใช่ผู้สร้างอินสแตนซ์ คุณต้องให้บทบาทผู้ใช้บัญชีบริการ (roles/iam.serviceAccountUser) แก่ผู้ใช้ที่ระบุในบัญชีบริการของอินสแตนซ์
  • ปิดใช้ตัวเลือกต่อไปนี้
  • การเข้าถึงระดับรูท
  • nbconvert
  • การดาวน์โหลดไฟล์จาก UI ของ JupyterLab
  • ระบบจะใช้ Cloud NAT แทนการกำหนดที่อยู่ IP ภายนอกให้กับ Notebook ที่ผู้ใช้จัดการ
  • เลือกตัวเลือกการประมวลผลต่อไปนี้
  • การเปิดเครื่องที่ปลอดภัย
  • 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

สร้างซับเน็ตของ Notebook ที่ผู้ใช้จัดการ

ใน 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 สำหรับการดาวน์โหลดแพ็กเกจซอฟต์แวร์ Notebook เนื่องจากอินสแตนซ์ Notebook ที่ผู้ใช้จัดการไม่มีที่อยู่ IP ภายนอก นอกจากนี้ Cloud NAT ยังมีความสามารถ NAT ขาออก ซึ่งหมายความว่าโฮสต์อินเทอร์เน็ตไม่ได้รับอนุญาตให้เริ่มการสื่อสารกับ Notebook ที่ผู้ใช้จัดการ ทำให้มีความปลอดภัยมากขึ้น

สร้าง Cloud Router ระดับภูมิภาคภายใน 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 ใน Notebook ที่ผู้ใช้จัดการ

สร้างที่เก็บข้อมูล 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 หรือโปรแกรมแก้ไข nano แล้วบันทึกเป็น 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 ให้อัปเดตบัญชีบริการด้วยบทบาทผู้ดูออบเจ็กต์ Storage

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 ให้แสดงรายการบัญชีบริการและจดที่อยู่อีเมลที่จะใช้เมื่อสร้าง Notebook ที่ผู้ใช้จัดการ

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. สร้าง Notebook ที่ผู้ใช้จัดการเองที่ปลอดภัย

อินสแตนซ์ Notebook ที่ผู้ใช้จัดการคืออินสแตนซ์เครื่องเสมือน Deep Learning ที่ติดตั้งไลบรารีแมชชีนเลิร์นนิงและวิทยาศาสตร์ข้อมูลล่าสุดไว้ล่วงหน้า คุณจะรวม GPU ของ Nvidia เพื่อการเร่งฮาร์ดแวร์หรือไม่ก็ได้

เปิดใช้ API สำหรับผู้บริโภค

Notebooks API

สร้าง Notebook ที่ผู้ใช้จัดการ

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

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

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

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

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

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

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

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

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

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

  1. ในส่วนเครือข่าย ให้ระบุข้อมูลต่อไปนี้
  • เครือข่าย: เลือกเครือข่ายในโปรเจ็กต์นี้หรือเครือข่ายที่แชร์กับฉัน หากใช้ VPC ที่แชร์ในโปรเจ็กต์โฮสต์ คุณต้องให้บทบาทผู้ใช้เครือข่าย Compute (roles/compute.networkUser) แก่ตัวแทนบริการ Notebooks จากโปรเจ็กต์บริการด้วย
  • ในช่องเครือข่าย ให้เลือกเครือข่ายที่ต้องการ บทแนะนำนี้ใช้เครือข่าย 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"
  • ยกเลิกการเลือก "เปิดใช้การดาวน์โหลดไฟล์จาก UI ของ JupyterLab"
  • เปิดใช้เทอร์มินัล (ยกเลิกการเลือกสำหรับสภาพแวดล้อมที่ใช้งานจริง)

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

e19f3cd05a2c1b7f.png

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

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

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

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

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

เลือกสร้าง

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

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

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

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

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

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

12. สร้างกำหนดการ Notebook

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

หากต้องการใช้ตารางเวลาอินสแตนซ์ ให้สร้างนโยบายทรัพยากรที่ระบุรายละเอียดลักษณะการทำงานของการเริ่มต้นและหยุด แล้วแนบนโยบายกับอินสแตนซ์ VM อย่างน้อย 1 รายการ

บทแนะนำจะแสดงวิธีสร้างกำหนดเวลาอินสแตนซ์ที่จะเปิด Notebook เวลา 07:00 น. และปิดเวลา 18:00 น.

หากต้องการสร้างกำหนดเวลาอินสแตนซ์ คุณจะต้องมีสิทธิ์ compute.instances.start และ compute.instances.stop ดังนั้นเราขอแนะนำให้ใช้บทบาทที่กำหนดเองซึ่งสร้างโดยผู้ดูแลระบบที่ให้สิทธิ์แก่คุณ

เมื่อสร้างแล้ว ระบบจะกำหนดบทบาทที่กำหนดเองให้กับบัญชีบริการ Compute Engine เริ่มต้นในโปรเจ็กต์ ซึ่งจะช่วยให้กำหนดการอินสแตนซ์เริ่มและหยุดสมุดบันทึกได้

สร้างบทบาทที่กำหนดเอง

สร้างบทบาทที่กำหนดเอง VmScheduler และรวมสิทธิ์ที่จำเป็นไว้ใน Cloud Shell

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 ให้อัปเดตบัญชีบริการเริ่มต้นของ Compute ด้วยบทบาทที่กำหนดเอง 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

จัดเก็บชื่อของ Notebook ใน Cloud Shell

gcloud compute instances list
notebook_vm=your_notebookvm_name
echo $notebook_vm

คุณแนบกำหนดเวลาอินสแตนซ์กับอินสแตนซ์ VM ที่มีอยู่ซึ่งอยู่ในภูมิภาคเดียวกับกำหนดเวลาอินสแตนซ์ได้

ใน Cloud Shell ให้เชื่อมโยงกำหนดเวลากับ Notebook

gcloud compute instances add-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a

13. ล้างข้อมูล

ลบ Notebook ที่จัดการโดยผู้ใช้ออกจากคอนโซล โดยไปที่ Vertex AI → Workbench เลือกและลบ Notebook

ลบคอมโพเนนต์ 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. ขอแสดงความยินดี

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

สิ่งต่อไปที่ควรทำ

ดูบทแนะนำเหล่านี้

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

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