הרחבת Apigee למספר אזורים

הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

אפשר להרחיב ארגון של Apigee למספר אזורים. הרחבה לאזורים רבים מאפשרת שיפורים בתחומים הבאים:

  • זמינות גבוהה: במקרה של כשל באזור, עדיין אפשר להעביר תנועה דרך האזורים הנותרים, וכך לשפר את הזמינות הכוללת של ממשקי ה-API.
  • קיבולת גבוהה: אזורים נוספים מספקים קיבולת נוספת להצגת תעבורת הנתונים של ה-API, ויש מקום לכל עלייה לא צפויה בתעבורת הנתונים בלי להפעיל לחץ רב על סביבה אחת, וכך מגדילים את הקיבולת הכוללת של ממשקי ה-API.
  • זמן טעינה קצר: אזורים נוספים יכולים לקצר את זמן הטעינה הכולל של עסקאות עבור לקוחות, כי הבקשות שלהם מטופלות באזור שקרוב יותר מבחינה גיאוגרפית.

במאמר הזה מוסבר איך להוסיף את Apigee לאזור חדש ואיך להסיר את Apigee מאזור.

הוספת Apigee לאזור חדש

אפשר להגדיר מופע אחד של זמן ריצה לכל אזור, ולכן כדי להוסיף אזור חדש צריך ליצור מופע חדש לגמרי באזור הזה.

התהליך הכללי להוספת אזור חדש הוא כזה:

  1. צריך לוודא שיש לכם טווח כתובות IP מתאים ברשת הקישור בין רשתות שכנות (peering), כפי שמתואר בקטע דרישות מוקדמות. בנוסף, חשוב לוודא שהחשבון יכול לתמוך באזור חדש, כפי שמתואר בקטע מגבלות.
  2. הגדרה של משתני סביבה
  3. יצירה של אוסף מפתחות ומפתח חדשים
  4. הזמנת טווח כתובות חדש
  5. יצירת מופע חדש
  6. צירוף סביבות למופע החדש
  7. הגדרת ניתוב

כל אחד מהשלבים האלה מתואר בקטעים הבאים.

דרישות מוקדמות

מוודאים שיש ברשת טווחי כתובות IP זמינים שלא חופפים, כמו ‎ /22 ו-‎ /28. הטווח הזה הוא בנוסף לטווחים שמשמשים אזורים אחרים.

מגבלות

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

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

מידע נוסף זמין במאמר סקירה כללית של תשלום לפי שימוש.

בכל ארגון יכולים להיות עד 10 אזורים (11 במקרה של פריסה היברידית).

הגדרת משתני סביבה

כדי להבטיח עקביות בין הפקודות שמופיעות במסמכי התיעוד האלה, מומלץ להגדיר את משתני הסביבה הבאים.

export NEW_REGION_LOCATION="NEW_REGION_LOCATION"
export NEW_INSTANCE_NAME="NEW_INSTANCE_NAME"
export NETWORK_NAME"=NETWORK_NAME"
export DISK_KEY_RING_NAME="YOUR_DISK_KEY_RING_NAME"
export DISK_KEY_NAME="YOUR_DISK_KEY_NAME"
export PROJECT_ID=YOUR_PROJECT_ID
export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")

כאשר:

  • ‫NEW_REGION_LOCATION הוא המיקום הפיזי של המופע החדש. הערכים התקינים הם כל אזור של Compute Engine. מידע נוסף זמין במאמר אזורים ותחומים. לדוגמה, us-west1.
  • ‫NEW_INSTANCE_NAME הוא שם האזור החדש. הוא חייב להיות ייחודי לארגון שלכם. לדוגמה, my-instance-2.
  • ‫NETWORK_NAME הוא השם של רשת ה-peering של הארגון. לדוגמה, my-network. מידע נוסף זמין במאמר בנושא הגדרת רשתות שירות.
  • ‫DISK_KEY_RING_NAME הוא שם של אוסף מפתחות לדיסק.
  • ‫DISK_KEY_NAME הוא שם של אוסף הדיסקים.
  • ‫AUTH מגדיר את הכותרת Authentication עם אסימון Bearer. תשתמשו בכותרת הזו כשקוראים לממשקי Apigee API. שימו לב שהאסימון יפוג אחרי פרק זמן מסוים, ואז תוכלו פשוט ליצור אותו מחדש באמצעות אותה פקודה. מידע נוסף זמין בדף העיון בנושא הפקודה print-access-token.
  • ‫PROJECT_ID הוא מזהה הפרויקט שלכם בענן.
  • ‫PROJECT_NUMBER הוא מספר הפרויקט בענן שלכם.

יצירת אוסף מפתחות ומפתח חדשים

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

פרטים נוספים זמינים במאמר מידע על מפתחות ההצפנה של Apigee.

כדי ליצור אוסף מפתחות ומפתח חדשים להצפנת דיסקים:

  1. יוצרים מחזיק מפתחות חדש לדיסק באמצעות הפקודה gcloud:
    gcloud kms keyrings create $DISK_KEY_RING_NAME \
      --location $NEW_REGION_LOCATION \
      --project $PROJECT_ID

    מוודאים שאוסף המפתחות של הדיסק מוגדר לאותו מיקום כמו המכונה. לכל מופע ולכל מחזיק מפתחות צריך להיות מיקום משלו.

    gcloud kms keyrings list \
      --location $NEW_REGION_LOCATION \
      --project $PROJECT_ID
    gcloud kms keyrings describe $DISK_KEY_RING_NAME \
      --location $NEW_REGION_LOCATION \
      --project $PROJECT_ID
  2. יוצרים מפתח דיסק חדש באמצעות הפקודה kms keys create. לדוגמה:
    gcloud kms keys create $DISK_KEY_NAME --keyring $DISK_KEY_RING_NAME \
      --location $NEW_REGION_LOCATION --purpose "encryption" --project $PROJECT_ID

    אפשר להפנות למפתח באמצעות נתיב המפתח. אפשר לקבל את נתיב המפתח באמצעות הפקודה הבאה:

    gcloud kms keys list \
      --location=$NEW_REGION_LOCATION \
      --keyring=$DISK_KEY_RING_NAME \
      --project=$PROJECT_ID

    נתיב המפתח נראה כך:

    projects/PROJECT_ID/locations/NEW_REGION_LOCATION/keyRings/my-disk-key-ring/cryptoKeys/my-disk-key
  3. כדי לתת לסוכן השירות של Apigee גישה לשימוש במפתח החדש, מריצים את הפקודה gcloud kms keys add-iam-policy-binding. לדוגמה:
    gcloud kms keys add-iam-policy-binding $DISK_KEY_NAME \
      --location $NEW_REGION_LOCATION \
      --keyring $DISK_KEY_RING_NAME \
      --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \
      --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
      --project $PROJECT_ID

    מוודאים שהמפתח משויך לסוכן השירות של Apigee.

    gcloud kms keys get-iam-policy $DISK_KEY_NAME \
      --keyring $DISK_KEY_RING_NAME \
      --location $NEW_REGION_LOCATION \
      --project $PROJECT_ID
    gcloud kms keys describe $DISK_KEY_NAME \
      --keyring $DISK_KEY_RING_NAME \
      --location $NEW_REGION_LOCATION \
      --project $PROJECT_ID

שמירת טווח כתובות חדש

שמירת כתובות IP לטווח הכתובות של רשת הפירינג. מידע נוסף ושיקולים חשובים מפורטים גם במאמר הסבר על טווחי peering.

  1. יוצרים את משתני הסביבה הבאים:
    export NEW_RANGE_NAME_22=YOUR_CIDR_22_RANGE_NAME
    export NEW_RANGE_NAME_28=YOUR_CIDR_28_RANGE_NAME
    export NETWORK_NAME=YOUR_NETWORK_NAME
    

    כאשר:

    • ‫NEW_RANGE_NAME_22 הוא השם של טווח כתובות ה-IP באורך CIDR ‏‎ /22 שתיצרו. אפשר לתת לטווח כל שם שרוצים. לדוגמה: google-svcs-new_22
    • ‫NEW_RANGE_NAME_28 הוא שם טווח כתובות ה-IP באורך CIDR ‏‎ /28 שתצרו. אפשר לתת לטווח כל שם שרוצים. לדוגמה: google-svcs-new_28
    • ‫NETWORK_NAME הוא השם של משאב הרשת שבו צריך לשריין את הכתובות.

      ‫Google יוצרת רשת ברירת מחדל (בשם default) לכל פרויקט חדש, כך שאפשר להשתמש בה. עם זאת, Google לא ממליצה להשתמש ברשת שמוגדרת כברירת מחדל לכל מטרה אחרת מלבד בדיקה.

  2. יוצרים טווח כתובות IP ברשת עם אורך CIDR של ‎ /22:
    gcloud compute addresses create $NEW_RANGE_NAME_22 \
      --global \
      --prefix-length=22 \
      --description="Peering range for Apigee services" \
      --network=$NETWORK_NAME \
      --purpose=VPC_PEERING \
      --project=$PROJECT_ID

    אם הפעולה מצליחה, gcloud משיב עם הפרטים הבאים:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs-new].

    מאמתים את כתובת המחשוב שנוצרה:

    gcloud compute addresses list \
      --global \
      --project=$PROJECT_ID
    gcloud compute addresses describe $NEW_RANGE_NAME_22 \
      --global \
      --project=$PROJECT_ID

    אחרי שיוצרים טווח של כתובות IP, הכתובות משויכות לפרויקט עד שמבטלים את ההקצאה שלהן.

  3. יוצרים טווח כתובות IP ברשת עם אורך CIDR של ‎ /28. הטווח הזה נדרש, ו-Apigee משתמש בו למטרות פתרון בעיות. אי אפשר להתאים אותו אישית או לשנות אותו.
    gcloud compute addresses create $NEW_RANGE_NAME_28 \
      --global \
      --prefix-length=28 \
      --description="Peering range for supporting Apigee services" \
      --network=$NETWORK_NAME \
      --purpose=VPC_PEERING \
      --project=$PROJECT_ID
  4. מאמתים את כתובת המחשוב שנוצרה:

    gcloud compute addresses list \
      --global \
      --project=$PROJECT_ID
     gcloud compute addresses describe $NEW_RANGE_NAME_28 \
      --global \
      --project=$PROJECT_ID
  5. מקבלים את השמות של טווחי הפירינג:
    gcloud services vpc-peerings list \
      --network=$NETWORK_NAME \
      --project=$PROJECT_ID
  6. מוסיפים את טווחי הכתובות החדשים שהוזמנו לרשת המקושרת באמצעות הפקודה הבאה, כאשר $NEW_RANGE_NAME_22 ו-$NEW_RANGE_NAME_28 הם שמות הטווחים החדשים ו-ORIGINAL_RANGE_NAME_1 ו-ORIGINAL_RANGE_NAME_n הם שמות טווחי הכתובות השמורים של הקישור שהוחזרו בפקודה הקודמת:
    gcloud services vpc-peerings update --service=servicenetworking.googleapis.com \
      --network=$NETWORK_NAME \
      --ranges=$NEW_RANGE_NAME_22,$NEW_RANGE_NAME_28,ORIGINAL_RANGE_NAME_1,ORIGINAL_RANGE_NAME_n \
      --project=$PROJECT_ID
  7. מאמתים את השינויים ב-VPC Peering שעדכנתם:

    gcloud services vpc-peerings list \
      --network=$NETWORK_NAME \
      --project=$PROJECT_ID

יצירת מופע חדש

יוצרים מופע חדש לאזור באמצעות Instances API.

עם קישור בין רשתות VPC שכנות (peering)

אם Apigee הוגדר לשימוש בקישור בין רשתות VPC שכנות (peering), משתמשים בקריאה ל-API הזו כדי ליצור את המופע:

curl -X POST -H "$AUTH" \
  -H "Content-Type: application/json" \
  "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \
  -d '{
    "name":"'"$NEW_INSTANCE_NAME"'",
    "location":"'"$NEW_REGION_LOCATION"'",
    "diskEncryptionKeyName":"KEY_PATH",
    "ipRange":"IP_ADDRESS_1/28, IP_ADDRESS_2/22"  # OPTIONAL
  }'

כאשר:

  • ‫KEY_PATH הוא נתיב המפתח של מפתח ההצפנה של הדיסק שיצרתם במאמר יצירה של אוסף מפתחות ומפתח חדשים.
  • ‫IP_ADDRESS_* הן כתובות IP ב-CIDR לטווחים /22 ו-/28 ב-CIDR שמשמשים ליצירת מופע Apigee. הערך ipRange הוא אופציונלי. אם לא תציינו את השדה הזה, Apigee יבקש באופן אוטומטי בלוק CIDR זמין בגודל ‎ /22 ו-‎ /28 מ-Service Networking. אפשר גם לעיין ב-Apigee instances API.
  • הבקשה הזו יכולה להימשך עד 20 דקות כי מערכת Apigee צריכה ליצור ולהפעיל אשכול Kubernetes חדש, להתקין את משאבי Apigee באשכול הזה ולהגדיר איזון עומסים.

ללא VPC-peering

אם לא הגדרתם את Apigee לשימוש ב-VPC Peering, תוכלו להשתמש בקריאה הזו ל-API כדי ליצור את המופע:

curl -X POST -H "$AUTH" \
  -H "Content-Type:application/json" \
  "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \
  -d '{
    "name":"'"$INSTANCE_NAME"'",
    "location":"'"$RUNTIME_LOCATION"'",
    "diskEncryptionKeyName":"'"KEY_PATH"'",
    "consumerAcceptList":[ARRAY_OF_PROJECT_IDS]
  }'

כאשר:

  • ‫KEY_PATH הוא נתיב המפתח של מפתח ההצפנה של הדיסק שיצרתם במאמר יצירה של אוסף מפתחות ומפתח חדשים. אפשר גם לעיין ב-Apigee instances API.
  • ‫consumerAcceptList(אופציונלי) מציין רשימה של מזהי פרויקטים ב-Google Cloud שיכולים להתחבר באופן פרטי לשירות המצורף של ה-VPC ב-Apigee. ‫Service Attachment הוא ישות שמשמשת עם Private Service Connect של Google Cloud כדי לאפשר ליצרני שירותים (במקרה הזה, Apigee) לחשוף שירותים לצרכנים (במקרה הזה, פרויקט אחד או יותר ב-Cloud שבבעלותכם). כברירת מחדל, אנחנו משתמשים בפרויקט בענן שכבר משויך לארגון Apigee שלכם. לדוגמה: "consumerAcceptList": ["project1", "project2", "project3"]

הבקשה הזו יכולה להימשך עד 20 דקות כי מערכת Apigee צריכה ליצור ולהפעיל אשכול Kubernetes חדש, להתקין את משאבי Apigee באשכול הזה ולהגדיר איזון עומסים.

טיימר פעולת יצירת המופע נמשכת כ-30 דקות.

כדי לבדוק את הסטטוס של הבקשה ליצירת מופע של זמן ריצה, מריצים את הפקודה הבאה. כשהסטטוס הוא ACTIVE, אפשר להמשיך לשלב הבא.

curl -i -X GET -H "$AUTH" \
  "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$NEW_INSTANCE_NAME"

לפרטים נוספים על יצירת מופע של זמן ריצה, כולל הקשר נוסף ומידע על פתרון בעיות, אפשר לעיין במאמר שלב 5: יצירת מופע של זמן ריצה של Apigee.

צירוף סביבות למופע החדש

אחרי שיוצרים את המופע, צריך לצרף אליו סביבות, אחרת הוא לא יוכל להגיב לבקשות API.

הסביבות משותפות בין המופעים, ולכן צריך לצרף סביבות קיימות לאזור החדש. לא מגדירים סביבות חדשות לאזור החדש. אם מגדירים סביבה חדשה באזור החדש שמשרת את אותם נתיבי בסיס לאותם מארחים כמו הסביבה המקורית, יכול להיות שהקריאות בזמן הריצה יחזירו שגיאות HTTP 503.

כשמאכלסים אזור חדש בסביבות, לא צריך לצרף את הסביבות לקבוצות סביבות: הן כבר מצורפות לקבוצות שלהן. צריך רק לצרף את הסביבות למופע החדש.

כדי לצרף את הסביבות לאזור החדש, משתמשים ב-Instances attachment API כמו בדוגמה הבאה:

curl -X POST -H "$AUTH" \
  -H "Content-Type: application/json" \
  https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$NEW_INSTANCE_NAME/attachments \
  -d '{
    "environment":"ENVIRONMENT_NAME"
  }'

כדי לקבל רשימה של הסביבות:

curl -i -X GET -H "$AUTH" \
  "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments"

צריך לצרף כל סביבה באמצעות קריאה נפרדת ל-Instances Attachment API. אי אפשר לצרף יותר מסביבה אחת לשיחה.

הגדרת ניתוב

אפשר להגדיר ניתוב ברשת באזור החדש באמצעות קבוצת מופעי מכונה מנוהלים (MIG) או הגדרה שמבוססת על Private Service Connect.

הגדרת ניתוב של Private Service Connect

בשלבים הבאים מוסבר איך להגדיר ניתוב באזור החדש באמצעות Private Service Connect.

סקירה כללית

האיור הבא מציג את הארכיטקטורה הכללית של Private Service Connect במספר אזורים:

תרשים של ניתוב Private Service Connect במספר אזורים.

איור 1: ארכיטקטורה של מספר אזורים עם Private Service Connect

כפי שמודגם באיור 1, תיצרו קבוצה של נקודות קצה ברשת (NEG) בפרויקט שלכם, שתתקשר עם קובץ שירות באזור שבו נמצא מופע Apigee החדש. קבוצות ה-NEG של Apigee בכל האזורים מחוברות לשירות הקצה העורפי של מאזן העומסים החיצוני הגלובלי של Apigee בסביבת הייצור.

יצירת קבוצת נקודות קצה ברשת עבור האזור החדש

כדי ליצור ולאחר מכן להגדיר מאזן עומסים עם קבוצת נקודות קצה ברשת (NEG) לאזור החדש, פועלים לפי השלבים הבאים:

  1. יצירת NEG חדש:
    1. מקבלים את קובץ השירות מהמכונה שיצרתם קודם:
      curl -i -X GET -H "$AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      בדוגמת הפלט הבאה, הערך serviceAttachment מוצג באותיות מודגשות:

      {
        "instances": [
          {
            "name": "us-west1",
            "location": "us-west1",
            "host": "10.82.192.2",
            "port": "443",
            "createdAt": "1645731488019",
            "lastModifiedAt": "1646504754219",
            "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
            "state": "ACTIVE",
            "peeringCidrRange": "SLASH_22",
            "runtimeVersion": "1-7-0-20220228-190814",
            "ipRange": "10.82.192.0/22,10.82.196.0/28",
            "consumerAcceptList": [
              "875609189304"
            ],
            "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
          }
        ]
      }
    2. יוצרים NEG שמצביע על קובץ השירות שקיבלתם מגוף התגובה של המופע בשלב הקודם.

      gcloud compute network-endpoint-groups create NEG_NAME \
        --network-endpoint-type=private-service-connect \
        --psc-target-service=TARGET_SERVICE \
        --region=$NEW_REGION_LOCATION \
        --network=NETWORK_NAME \
        --subnet=SUBNET_NAME \
        --project=PROJECT_ID
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫NEG_NAME: שם לקבוצת נקודות הקצה ברשת.
      • ‫TARGET_SERVICE: קובץ השירות שאליו רוצים להתחבר. לדוגמה: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
      • ‫NETWORK_NAME: (אופציונלי) שם הרשת שבה נוצר ה-NEG. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת של פרויקט default.
      • ‫SUBNET_NAME: השם של תת-הרשת שמשמשת לקישוריות פרטית אל היצרן. גודל תת-הרשת יכול להיות קטן: ה-NEG של Private Service Connect צריך רק כתובת IP אחת מתת-הרשת. ב-Apigee, נדרש רק Private Service Connect NEG אחד לכל אזור. אפשר לשתף את רשת המשנה ולהשתמש בה במכונות וירטואליות או בישויות אחרות. אם לא מציינים רשת משנה, נקודות קצה ברשת יכולות להיות שייכות לכל רשת משנה באזור שבו נוצרה קבוצת נקודות הקצה ברשת.
      • PROJECT_ID פרויקט בענן שכבר משויך לארגון Apigee שלכם, או פרויקט בענן שנכלל ב-consumerAcceptlist כשנוצר מופע זמן הריצה של Apigee.
  2. מקבלים את השם של שירות הקצה העורפי של מאזן העומסים של Apigee בסביבת הייצור:
    gcloud compute backend-services list --project=$PROJECT_ID
  3. מוסיפים את ה-NEG כקצה עורפי לשירות הקצה העורפי:
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --network-endpoint-group-region=$NEW_REGION_LOCATION \
      --global --project=$PROJECT_ID

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי.
    • ‫NEG_NAME: השם של קבוצת נקודות הקצה ברשת.
  4. (אופציונלי) אפשר להגדיר מדיניות תעבורה לזיהוי חריגות בשירות העורפי כדי לטפל בתרחישי מעבר לגיבוי אוטומטי. מידע נוסף זמין במאמרים הבאים:

בדיקת ההגדרה הסופית

הפעלת proxy ל-API. כך פורסים פרוקסי לדוגמה.

הגדרת ניתוב של MIG

בשלבים הבאים מוסבר איך להגדיר ניתוב באזור החדש באמצעות קבוצת מופעים מנוהלת (MIG).

סקירה כללית

האיור הבא מציג את הארכיטקטורה הכללית של צפון-מזרח למספר אזורים באמצעות קבוצות של מכונות וירטואליות לניהול (MIG):

תרשים של ארכיטקטורה צפונית ל-Private Service Connect במספר אזורים.

איור 2: ארכיטקטורה של מספר אזורים עם MIG

כפי שמודגם באיור 2, תיצרו MIG בפרויקט כדי לתקשר עם מאזן עומסים שנפרס באזור שבו נמצא מופע Apigee החדש. ה-MIGs בכל האזורים מחוברים לחלק האחורי של מאזן העומסים הגלובלי החיצוני של Apigee בסביבת הייצור.

יצירת קבוצת מופעי מכונה מנוהלים (MIG) לאזור החדש

כדי ליצור ולהגדיר קבוצת MIG לאזור החדש:

  1. מפעילים גישה פרטית ל-Google ברשת משנה של רשת ה-VPC.

    כדי להפעיל גישה פרטית ל-Google לתת-רשת של רשת ה-VPC, פועלים לפי השלבים שמפורטים במאמר הפעלת גישה פרטית ל-Google.

  2. מגדירים משתני סביבה:

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

    MIG_NAME=YOUR_MIG_NAME
    VPC_NAME=YOUR_VPC_NAME       # If you are using a shared VPC, use the shared VPC name
    VPC_SUBNET=YOUR_SUBNET_NAME     # Private Google Access must be enabled for this subnet
    NEW_REGION_LOCATION=YOUR_NEW_REGION      # The same region as your new Apigee runtime instance
    APIGEE_ENDPOINT=APIGEE_INSTANCE_IP        # See the tip below for details on getting this IP address value
  3. יוצרים קבוצה של מופעי מכונה מנוהלים. בשלב הזה, יוצרים ומגדירים קבוצה של מופעי מכונה מנוהלים (MIG).
    1. מריצים את הפקודה הבאה כדי ליצור תבנית של הגדרות מכונה.
      gcloud compute instance-templates create $MIG_NAME \
        --project $PROJECT_ID \
        --region $NEW_REGION_LOCATION \
        --network $VPC_NAME \
        --subnet $VPC_SUBNET \
        --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
        --machine-type e2-medium --image-family debian-12 \
        --image-project debian-cloud --boot-disk-size 20GB \
        --no-address \
        --metadata ENDPOINT=$APIGEE_ENDPOINT,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh

      כמו שאפשר לראות מהפקודה הזו, המכונות הן מסוג e2-medium. הם מריצים Debian 12 ויש להם 20GB של דיסק. הסקריפט startup-script.sh מגדיר את ה-MIG להעברת תעבורה נכנסת ממאזן העומסים למופע Apigee.

    2. כדי ליצור קבוצה של מופעי מכונה מנוהלים, מריצים את הפקודה הבאה:
      gcloud compute instance-groups managed create $MIG_NAME \
        --project $PROJECT_ID --base-instance-name apigee-mig \
        --size 2 --template $MIG_NAME --region $NEW_REGION_LOCATION
    3. מגדירים התאמה אוטומטית לעומס לקבוצה על ידי הפעלת הפקודה הבאה:
      gcloud compute instance-groups managed set-autoscaling $MIG_NAME \
        --project $PROJECT_ID --region $NEW_REGION_LOCATION --max-num-replicas 3 \
        --target-cpu-utilization 0.75 --cool-down-period 90
    4. מגדירים יציאה עם שם באמצעות הפקודה הבאה:
      gcloud compute instance-groups managed set-named-ports $MIG_NAME \
        --project $PROJECT_ID --region $NEW_REGION_LOCATION --named-ports https:443
  4. מקבלים את השם של שירות הקצה העורפי של מאזן העומסים של Apigee בסביבת הייצור:
    gcloud compute backend-services list --project=$PROJECT_ID
  5. מוסיפים את ה-MIG לשירות לקצה העורפי באמצעות הפקודה הבאה:
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --project $PROJECT_ID --instance-group $MIG_NAME \
      --instance-group-region $NEW_REGION_LOCATION \
      --balancing-mode UTILIZATION --max-utilization 0.8 --global

    מחליפים את BACKEND_SERVICE_NAME בשם של השירות לקצה העורפי.

בדיקת ההגדרה הסופית

הפעלת proxy ל-API. כך פורסים פרוקסי לדוגמה.

הוספת אזורים

הוספה של כמה אזורים לסביבת Apigee יכולה לספק זמינות גבוהה, קיבולת גבוהה יותר וזמן אחזור נמוך יותר לממשקי ה-API שלכם. פריסה בכמה אזורים תומכת בזמינות גבוהה כי לא צריך לבצע מעבר ידני לגיבוי, כי ה-XLB יבצע בדיקת תקינות בכל אזור. קיבולת גבוהה יותר מסופקת כשכמה אזורים משרתים את אותם ממשקי API בו-זמנית. בנוסף, אם לקוחות ה-API שלכם נמצאים בכמה אזורים, כדאי שה-API יפעל מאזור שקרוב יותר ללקוחות כדי להקטין את זמן האחזור ולשפר את הביצועים.

דוגמה: פריסה במספר אזורים משפרת את הזמינות, הקיבולת וזמן האחזור

בפריסה פעילה-פעילה של כמה אזורים, התנועה מוגשת משני אזורים בו-זמנית. מוסיפים שירות קצה עורפי לכל אזור MIG לאותו מאזן עומסים חיצוני מסוג HTTPS‏ (XLB), כמו שמוסבר בשלב 8e(3) בכרטיסייה External routing (MIG) (ניתוב חיצוני (MIG)) בקטע Step 8: Configure routing (שלב 8: הגדרת ניתוב). מידע נוסף זמין גם במאמר בנושא יצירה של קבוצת מופעי מכונה מנוהלים (MIG) לאזור החדש.

לכל בקשה, שירות ה-XLB יבחר את האזור שהכי קרוב ללקוח, אלא אם מספר הבקשות חורג מהמגבלה שהוגדרה עבור קצה עורפי מסוים. מידע נוסף על ניתוב תעבורה על ידי מאזני עומסים חיצוניים זמין במאמר אופטימיזציה של קיבולת באפליקציות באמצעות איזון עומסים גלובלי.

הוספת אזורים לתשלום לפי שימוש

במודל התמחור Pay-as-you-go, אתם יכולים להגדיר את המספר המינימלי של צמתי שער Apigee לסביבה. כך אפשר לוודא שהאזורים תמיד פועלים עם קיבולת נוספת כדי לתמוך באופן מיידי בתעבורת נתונים של יתירות כשל, במקרה של כשל באזור.

הגדרת מספר מינימלי של צמתים בשער Apigee

אם אתם יכולים לטפל בכל תנועת הנתונים הרגילה של ה-API מ-2 אזורים פעילים, שלכל אחד מהם יש 4 צמתים של שער Apigee, אז לכל אזור צריכים להיות לפחות 8 צמתים. כך אפשר לתמוך באופן מיידי במקרה של אובדן של אזור אחד. מידע נוסף על קביעת מספר הצמתים שדרושים לכם לטיפול בתנועת ה-API זמין במאמר מידע על צמתי Apigee. שימו לב: המספר המינימלי של צמתים מוגדר לכל סביבה, אבל נאכף לכל אזור. לדוגמה, אם תגדירו את המינימום ל-8, לכל אזור יהיו לפחות 8 צמתים.

עלות

בדוגמה שלמעלה, תהיה לכם עלות של הפעלת לפחות 16 צמתים של שער Apigee (8 צמתים x 2 אזורים). העלות עשויה לעלות ככל שמספר הצמתים עולה באופן אוטומטי כדי לטפל בתנועה נוספת, עד למקסימום.

הסרת Apigee מאזור

כדי להוציא משימוש מופע של Apigee ולהפסיק את התעבורה של API דרכו, צריך לבצע את השלבים הבאים כדי להבטיח שירות ללא הפרעות (אפס זמן השבתה לממשקי ה-API):

  1. מפעילים זמן להשלמת תהליך (connection draining) בשירות הקצה העורפי. זמן להשלמת תהליך (connection draining) הוא תהליך שמבטיח שיינתן זמן להשלמת בקשות קיימות שנמצאות בתהליך, כשמסירים בק-אנד משירות לקצה העורפי.
  2. אם Cloud DNS הוגדר לנתב את התנועה לאזור Apigee הזה באמצעות מדיניות הניתוב של weighted round-robin, צריך להסיר את הגדרת ה-DNS הזו, כמו שמתואר במאמר ניהול מדיניות ניתוב של DNS ובדיקות תקינות.
  3. מנתקים את הקצה העורפי של ה-MIG משירות הקצה העורפי. הפעולה הזו, יחד עם זמן להשלמת תהליך (connection draining), תבטיח שמכונת Apigee לא תקבל תעבורת נתונים חדשה, אבל תאפשר להשלים בקשות שנמצאות בתהליך.
  4. מוחקים את מופע Apigee ואת ה-MIG התואם. כך מוחקים מכונה.