arrow_back

ניקוי כתובות IP שאינן בשימוש

Join Sign in
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

ניקוי כתובות IP שאינן בשימוש

Lab 1 hour universal_currency_alt 5 Credits show_chart Intermediate
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP646

Google Cloud מעבדות ללימוד עצמי של

סקירה כללית

בשיעור ה-Lab הזה תשתמשו ב-Cloud Functions וב-Cloud Scheduler כדי לזהות ולנקות את משאבי הענן שלא נוצלו. ב-Google Cloud, כתובות IP סטטיות הן משאב פנוי כשהן מחוברות למאזן עומסים או למכונה וירטואלית (VM). כשכתובת IP סטטית קבועה-מראש אבל לא נעשה בה שימוש, נצבר עבורה חיוב לפי שעה. באפליקציות שבהן נעשה שימוש רב בכתובות IP סטטיות ובניהול הקצאות דינמי נרחב, אי הניצול יכול להפוך למשמעותי במשך הזמן.

הפעולות שתבצעו

  • יצירת מכונה וירטואלית של Compute Engine עם כתובת IP חיצונית סטטית וכתובת IP חיצונית סטטית נפרדת שאינה בשימוש

  • פריסת פונקציה ב-Cloud Functions כדי לזהות כתובות שאינן בשימוש

  • יצירת משימה של Cloud Scheduler כדי לתזמן את הפעלת הפונקציה באמצעות HTTP שמשמש כטריגר

ארכיטקטורה

בתרשים הבא מתוארת הארכיטקטורה שבה תשתמשו בקטע הראשון של שיעור ה-Lab הזה, כשתתזמנו פונקציה ב-Cloud Functions כדי לזהות ולנקות כתובות IP שאינן בשימוש.

IPAddressArch

הגדרה ודרישות

בקטע הזה תגדירו את התשתית ואת הזהויות הנדרשות להשלמת שיעור ה-Lab.

לפני שלוחצים על הלחצן Start Lab (התחלת המעבדה)

עליכם לקרוא את ההוראות האלו. המעבדות מוגבלות בזמן ואי אפשר להשהות אותן. הטיימר מתחיל כשלוחצים על Start Lab ומראה את משך הזמן שבו תוכלו להשתמש במשאבים ב-Google Cloud.

במעבדה המעשית הזו של Qwiklabs, תוכלו לבצע את פעילויות המעבדה בעצמכם בסביבת ענן אמיתית, ולא בהדמיה או בסביבה להדגמה. לשם כך, יינתנו לכם פרטי כניסה זמניים שאיתם תיכנסו ותיגשו אל Google Cloud במשך הפעילות של המעבדה.

מה צריך?

כדי להשלים את המעבדה, תצטרכו:

  • גישה לדפדפן אינטרנט סטנדרטי (מומלץ להשתמש בדפדפן Chrome).
  • זמן להשלמת המעבדה.

הערה: אם כבר יש לכם פרויקט או חשבון Google Cloud אישי משלכם, אין להשתמש בו במעבדה הזו.

הערה: אם משתמשים במכשיר עם Chrome OS, צריך לפתוח חלון אנונימי כדי להריץ את המעבדה הזו.

איך מתחילים שיעור מעשי ונכנסים אל Google Cloud Console

  1. לוחצים על הלחצן Start Lab (התחלת השיעור המעשי). אם זה שיעור בתשלום, יקפוץ חלון שבו בוחרים אמצעי תשלום. מימין יש חלונית עם פרטי כניסה זמניים שמולאו מראש. צריך להשתמש בפרטים האלו בשיעור המעשי הזה.

    פתיחת Google Console

  2. מעתיקים את שם המשתמש ואז לוחצים על Open Google Console (פתיחת Google Console). יופעלו משאבים במעבדה, ואז ייפתח הדף Sign in (כניסה) בכרטיסייה נפרדת.

    כניסה

    טיפ: כדאי לפתוח את הכרטיסיות בחלונות נפרדים, אחד לצד השני.

  3. בדף Sign in (כניסה), מדביקים את שם המשתמש שהעתקתם מהחלונית Connection Details (פרטי התחברות). אחר כך מעתיקים ומדביקים את הסיסמה.

    חשוב: צריך להשתמש בפרטי הכניסה מהחלונית Connection Details. אין להשתמש בפרטי הכניסה של Qwiklabs. אם יש לכם חשבון Google Cloud משלכם, אל תשתמשו בו בשיעור המעשי הזה (כך תימנעו מחיוב בתשלום).

  4. לוחצים כדי לעבור את הדפים הבאים:

    • הסכמה לתנאים ולהגבלות.
    • אין להוסיף אפשרויות שחזור או אימות דו-שלבי (כי החשבון הזה זמני).
    • אין להירשם לתקופות ניסיון בחינם.

לאחר כמה דקות, Cloud Console ייפתח בכרטיסייה הזו.

הפעלת Cloud Shell

סביבת Cloud Shell היא מכונה וירטואלית שמותקנים בה כלים למפתחים. יש בה ספריית בית בנפח עקבי של 5GB והיא פועלת ב-Google Cloud. ב-Cloud Shell יש גישה לשורת הפקודה למשאבים שלכם ב-Google Cloud.

ב-Cloud Console, בסרגל הכלים שבפינה הימנית העליונה, לוחצים על הלחצן Activate Cloud Shell (הפעלת Cloud Shell).

הסמל של Cloud Shell

לוחצים על Continue (המשך).

cloudshell_continue.png

יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו. עם החיבור יתבצע גם אימות, ואז הפרויקט יוגדר לפי PROJECT_ID. לדוגמה:

טרמינל Cloud Shell

gcloud הוא כלי שורת הפקודה של Google Cloud. הוא מותקן מראש ב-Cloud Shell ותומך בהשלמת פקודות.

תוכלו לרשום את שם החשבון הפעיל באמצעות הפקודה הבאה:

gcloud auth list

(פלט)

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)

(פלט לדוגמה)

Credentialed accounts:
 - google1623327_student@qwiklabs.net

תוכלו לרשום את מזהה הפרויקט באמצעות הפקודה הבאה:

gcloud config list project

(פלט)

[core]
project = <project_ID>

(פלט לדוגמה)

[core]
project = qwiklabs-gcp-44776a13dea667a6

הפעלת ממשקי API ומאגר שכפולים

  1. ב-Cloud Shell, מפעילים את Cloud Scheduler API:

    gcloud services enable cloudscheduler.googleapis.com
    
    הערה: ההפעלה שלCloud Scheduler API עשויה להימשך זמן מה.

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

הפעלה של Cloud Scheduler API
  1. שכפול המאגר:

    git clone https://github.com/GoogleCloudPlatform/gcf-automated-resource-cleanup.git && cd gcf-automated-resource-cleanup/
    
  2. מגדירים משתני סביבה והופכים את תיקיית המאגר ל-$WORKDIR שבה תריצו את כל הפקודות הקשורות לשיעור ה-Lab הזה:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null)
    export region=us-central1
    WORKDIR=$(pwd)
    

יצירת כתובות IP

  1. ב-Cloud Shell, נכנסים לספרייה unused-ip:

    cd $WORKDIR/unused-ip
    
  2. מייצאים את השמות של כתובות ה-IP כמשתנים:

    export USED_IP=used-ip-address
    export UNUSED_IP=unused-ip-address
    
  3. יוצרים שתי כתובות IP סטטיות:

    gcloud compute addresses create $USED_IP --project=$PROJECT_ID --region=us-central1
    gcloud compute addresses create $UNUSED_IP --project=$PROJECT_ID --region=us-central1
    

    במעבדה הזו נעשה שימוש באזור us-central1, אבל אתם יכולים לבחור אזור אחר ולהתייחס אליו בעקביות עד לסיום המעבדה.

  4. מאשרים שנוצרו שתי כתובות:

    gcloud compute addresses list --filter="region:(us-central1)"
    

    בפלט, משמעותו של הסטטוס RESERVED היא שכתובות ה-IP אינן בשימוש:

    NAME       ADDRESS/RANGE  TYPE      PURPOSE  NETWORK  REGION       SUBNET  STATUS
    unused-ip-address  35.232.144.85  EXTERNAL                    us-central1          RESERVED
    used-ip-address    104.197.56.87  EXTERNAL                    us-central1          RESERVED
    

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

יצירת שתי כתובות IP סטטיות
  1. מגדירים את כתובת ה-IP שמשתמשים בה כמשתנה סביבה:

    export USED_IP_ADDRESS=$(gcloud compute addresses describe $USED_IP --region=us-central1 --format=json | jq -r '.address')
    

יצירת VM

  1. ב-Cloud Shell, יוצרים מכונה:

    gcloud compute instances create static-ip-instance \
    --zone=us-central1-a \
    --machine-type=n1-standard-1 \
    --subnet=default \
    --address=$USED_IP_ADDRESS
    

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

יוצרים מכונה עם כתובת ה-IP הסטטית שנוצרה קודם.
  1. מאשרים שאחת מכתובות ה-IP נמצאת עכשיו בשימוש:

    gcloud compute addresses list --filter="region:(us-central1)"
    

    הפלט דומה לפלט הבא:

    NAME       ADDRESS/RANGE  TYPE      PURPOSE  NETWORK  REGION       SUBNET  STATUS
    unused-ip-address  35.232.144.85  EXTERNAL                    us-central1          RESERVED
    used-ip-address    104.197.56.87  EXTERNAL                    us-central1          IN_USE
    

בדיקת הקוד של הפונקציה ב-Cloud Functions

  1. ב-Cloud Shell, יוצרים פלט של הקטע הראשי של הקוד:

    cat $WORKDIR/unused-ip/function.js | grep "const compute" -A 31
    

הפלט שיתקבל זהה לפלט הבא:

    const compute = new Compute();
    compute.getAddresses(function(err, addresses){ // gets all addresses across regions
        if(err){
            console.log("there was an error: " + err);
        }
        if (addresses == null) {
            console.log("no addresses found");
            return;
        }
        console.log("there are " + addresses.length + " addresses");

        // iterate through addresses
        for (let item of addresses){

            // get metadata for each address
            item.getMetadata(function(err, metadata, apiResponse) {

                // if the address is not used:
                if (metadata.status=='RESERVED'){

                    // compute age by convering ISO 8601 timestamps to Date
                    var creationDate = new Date(metadata.creationTimestamp);
                    var currDate = new Date();
                    var addressAge = Math.floor((currDate - creationDate)/86400e3);;

                    // delete address
                    item.delete(function(err, operation, apiResponse2){
                        if (err) {
                            console.log("could not delete address: " + err);
                        }
                    })
                }

בדוגמת הקוד שצוינה למעלה, אלו הפרטים החשובים:

בקטע compute.getAddresses(function(err, addresses) נעשה שימוש ב-method‏ מסוג getAddresses כדי לאחזר כתובות IP בכל האזורים בפרויקט.

בקטע item.getMetadata(function(err, metadata, apiResponse) מתקבלים המטא-נתונים לכל כתובת IP ונבדק שדה ה-STATUS שלה.

בקטעif ((metadata.status=='RESERVED') & (calculateAge(metadata.creationTimestamp) >= ageToDelete)){ נבדק אם כתובת ה-IP נמצאת בשימוש. הגיל שלה מחושב באמצעות פונקציית עזר והוא מושווה לקבוע (המוגדר כ-0 למטרות שיעור ה-Lab).

בקטע item.delete(function(err, operation, apiResponse2){ נמחקת כתובת ה-IP.

פריסת הפונקציה ב-Cloud Functions

  1. ב-Cloud Shell, פורסים את הפונקציה ב-Cloud Functions:

    gcloud functions deploy unused_ip_function --trigger-http --runtime=nodejs8
    
    אם מופיעה הודעת שגיאה, ממתינים רגע ומנסים שוב.

    אם מתבקשים לעשות זאת, מזינים Y כדי לאפשר הפעלות לא מאומתות.

    פריסה של פונקציה ב-Cloud Functions עשויה להימשך 2-5 דקות, תלוי באזור.

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

פריסת פונקציה ב-Cloud Functions
  1. מגדירים את כתובת ה-URL שמשמשת כטריגר כמשתנה סביבה:

    export FUNCTION_URL=$(gcloud functions describe unused_ip_function --format=json | jq -r '.httpsTrigger.url')
    

תזמון ובדיקה של הפונקציה ב-Cloud Functions

  1. ב-Cloud Shell, יוצרים משימה של Cloud Scheduler להרצת הפונקציה ב-Cloud Functions בשעה 2:00 מדי לילה:

    gcloud scheduler jobs create http unused-ip-job \
    --schedule="* 2 * * *" \
    --uri=$FUNCTION_URL
    

    כשתוצג הבקשה, מזינים Y כדי ליצור את האפליקציה ב-App Engine בתוך הפרויקט, מזינים את הבחירה המספרית המתאימה לפריסת האפלקיציה ב-us-central1, ומקישים על Enter.

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

יצירה של אפליקציית App Engine
  1. כדי לבדוק את המשימה, מפעילים את הטריגר באופן ידני:

    gcloud scheduler jobs run unused-ip-job
    
  2. אם תקבלו הודעה הדומה להודעה הבאה:

    There is no App Engine app in project [qwiklabs-gcp-00-6384ad453ae0].
    
    Would you like to create one (Y/n)?
    

    מקישים על CTRL+Z, ממתינים רגע ואז מנסים להריץ שוב את הפקודה (לא אמור להתקבל פלט).

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

הרצת משימה של Cloud Scheduler
  1. מוודאים שכתובת ה-IP שאינה בשימוש נמחקה:

    gcloud compute addresses list --filter="region:(us-central1)"
    

הפלט דומה לפלט הבא:

NAME     ADDRESS/RANGE  TYPE      PURPOSE  NETWORK  REGION       SUBNET  STATUS
used-ip-address  104.197.56.87  EXTERNAL                    us-central1          IN_USE

כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.

אימות המחיקה של כתובת ה-IP שאינה בשימוש

כל הכבוד!

במעבדה הזו השלמתם את המשימות הבאות:

  • יצרתם מכונה וירטואלית של Compute Engine עם כתובת IP חיצונית סטטית וכתובת IP חיצונית סטטית נפרדת שאינה בשימוש
  • פרסתם פונקציה ב-Cloud Functions כדי לזהות כתובות שאינן בשימוש
  • יצרתם משימה של Cloud Scheduler כדי לתזמן את הפעלת הפונקציה באמצעות HTTP שמשמש כטריגר

IC_OptimizingYourGCPCosts_V2_resized.png

סיום המשימה

שיעור ה-Lab ללימוד עצמי זה הוא חלק מיחידת הלימוד Optimizing your Google Cloud Costs ב-Qwiklabs. יחידת לימוד היא סדרה של שיעורי Lab קשורים שיוצרים מסלול לימוד. השלמת יחידת הלימוד הזו מזכה אתכם בתג שמופיע למעלה, לציון ההישג שלכם. אתם יכולים להציג את התג או התגים באופן גלוי לכול ולקשר אותם לקורות החיים שלכם באינטרנט או לחשבון במדיה חברתית. רוצים לקבל קרדיט מיידי על ביצוע שיעור ה-Lab הזה? הירשמו ליחידת הלימוד הזו.
לצפייה ביחידות לימוד של Qwiklabs נוספות.

מעבר לשיעור ה-Lab הבא

המשיכו את יחידת הלימוד עם שיעור ה-Lab‏Optimizing Costs with Cloud Storage או עם האפשרויות הבאות:

הדרכה והסמכה של Google Cloud

יעזרו לכם להפיק את המרב מהאמצעים הטכנולוגיים של Google Cloud. השיעורים שלנו מכילים מיומנויות טכניות ושיטות מומלצות כדי שתוכלו להתחיל לעבוד מהר ולהמשיך ללמוד ולהתפתח. נציג את העקרונות הבסיסיים להכשרה ברמה מתקדמת, עם אפשרויות וירטואליות, שידורים חיים או על פי דרישה, בהתאם ללוח הזמנים העמוס שלכם. בעזרת ההסמכות תוכלו לאשר ולאמת את המיומנות והמומחיות שלכם באמצעים הטכנולוגיים של Google Cloud.

עדכון אחרון של המדריך: 26 בינואר 2021.
בדיקה אחרונה של שיעור ה-Lab‏: 22 בדצמבר 2021.

זכויות יוצרים 2024 Google LLC. כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים עשויים להיות סימנים מסחריים של החברות, בהתאמה, שאליהן הם משויכים.