במדריך הזה מוסבר איך להתחיל להשתמש ב-Compute Engine. כדי ללמוד איך עושים את זה, אפשר לפרוס אפליקציית אינטרנט Hello World Go ב-Compute Engine. לקבלת עזרה בתחילת העבודה עם App Engine, אפשר לעיין במאמר בנושא הסביבה הרגילה של App Engine.
מטרות
- שימוש ב-Cloud Shell להורדה ולפריסה של אפליקציית Hello World לדוגמה.
- במדריך הזה נלמד איך משתמשים ב-Cloud Build כדי ליצור אפליקציה לדוגמה של Hello World.
- פריסת אפליקציית Hello World לדוגמה במכונה וירטואלית אחת ב-Compute Engine.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
במסוף Google Cloud , פותחים את האפליקציה ב-Cloud Shell.
Cloud Shell מספק גישה למשאבי הענן שלכם דרך שורת הפקודה ישירות מהדפדפן.
-
אם אתם מסכימים לשכפל את המאגר, לוחצים על אישור כדי להוריד את קוד הדוגמה ולעבור לספריית האפליקציה.
-
ב-Cloud Shell, מגדירים את ה-CLI של gcloud לשימוש בפרויקט החדש Google Cloud :
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
הפעלת האפליקציה ב-Cloud Shell
ב-Cloud Shell, מפעילים שרת אינטרנט מקומי:
go build -o app ./appב-Cloud Shell, לוחצים על תצוגה מקדימה באינטרנט ובוחרים באפשרות תצוגה מקדימה ביציאה 8080. ייפתח חלון חדש עם האפליקציה הפועלת.
בדפדפן האינטרנט, מופיע הסמל
Hello, World!.כדי להמשיך, לוחצים על Control+C ב-Cloud Shell כדי לעצור את שרת האינטרנט המקומי.
פריסה למופע יחיד
בקטע הזה מוסבר איך להריץ מופע יחיד של האפליקציה ב-Compute Engine.
מ-Cloud Shell, אפשר לבצע פריסה למכונה וירטואלית (VM) של Compute Engine שבה האפליקציה פועלת.
שימוש ב-Cloud Build כדי ליצור את האפליקציה
השירות Cloud Build משמש ליצירת האפליקציה, לדחיסתה בקובץ tar ולהעלאת הקובץ לקטגוריה של Cloud Storage. קטגוריות הן הקונטיינרים הבסיסיים ששומרים את הנתונים שלכם ב-Cloud Storage.
בחלון המסוף, יוצרים קטגוריה של Cloud Storage, כאשר
YOUR_BUCKET_NAMEמייצג את שם הקטגוריה:gcloud storage buckets create gs://YOUR_BUCKET_NAME
אתם יכולים לבחור כל שם לקטגוריה של Cloud Storage. מומלץ לתת למאגר את אותו השם של מזהה הפרויקט. שמות הקטגוריות חייבים להיות ייחודיים בכלGoogle Cloud, ולכן יכול להיות שלא תוכלו להשתמש במזהה הפרויקט כשם הקטגוריה.
מתחילים את תהליך ה-build ב-Cloud:
gcloud builds submit --substitutions=_DEPLOY_DIR=gs://
YOUR_BUCKET_NAME,_DEPLOY_FILENAME=app.tar.gzהפקודה
gcloud builds submitמשתמשת ב---substitutionsכדי להגדיר את המיקום שאליו יועלה קובץ ה-tar שנוצר. בהמשך, קובץ ה-tar יורד למופע של Compute Engine.Cloud Build משתמש בקובץ תצורה בפורמט YAML כדי להגדיר את השלבים שנדרשים ל-build.
שימוש בסקריפט לטעינה בזמן ההפעלה כדי לאתחל מכונה
צריך דרך להורות למופע להוריד ולהפעיל את הקוד. למופע יכול להיות סקריפט לטעינה בזמן ההפעלה שפועל בכל פעם שהמופע מופעל או מופעל מחדש.
סקריפט לטעינה בזמן ההפעלה מופעל כשמכונה מופעלת בפעם הראשונה.
סקריפט לטעינה בזמן ההפעלה מבצע את המשימות הבאות:
הסוכן Cloud Logging מותקן ומוגדר למעקב אחרי יומני האפליקציה.
מוריד ומחלץ את קובץ ה-tar של הפריסה.
מפעיל שירות
systemdכדי להריץ את האפליקציה.
יצירה והגדרה של מכונה של Compute Engine
יצירת מכונה של Compute Engine:
Linux/macOS
gcloud compute instances create my-app-instance \ --image-family=debian-10 \ --image-project=debian-cloud \ --machine-type=g1-small \ --scopes userinfo-email,cloud-platform \ --metadata-from-file startup-script=startup-script.sh \ --metadata app-location="gs://YOUR_BUCKET_NAME/app.tar.gz" \ --zone YOUR_ZONE \ --tags http-server
מחליפים את
YOUR_ZONEבאזור פיתוח, למשלus-central1-a. מידע נוסף על אזורים ותחומים זמין במאמר מיקום גיאוגרפי ואזורים.הדגל
--metadata app-locationמציין לסקריפט לטעינה בזמן ההפעלה איפה להוריד את קובץ ה-tar של האפליקציה.Windows
gcloud compute instances create my-app-instance ^ --image-family=debian-10 ^ --image-project=debian-cloud ^ --machine-type=g1-small ^ --scopes userinfo-email,cloud-platform ^ --metadata-from-file startup-script=startup-script.sh ^ --metadata app-location="gs://YOUR_BUCKET_NAME/app.tar.gz" ^ --zone YOUR_ZONE ^ --tags http-server
מחליפים את
YOUR_ZONEבאזור פיתוח, למשלus-central1-a. מידע נוסף על אזורים ותחומים זמין במאמר מיקום גיאוגרפי ואזורים.הדגל
--metadata app-locationמציין לסקריפט לטעינה בזמן ההפעלה איפה להוריד את קובץ ה-tar של האפליקציה.הפעולה הזו יוצרת מופע חדש, מאפשרת לו לגשת לשירותים של Google Cloud Google ומריצה את הסקריפט לטעינה בזמן ההפעלה. שם המכונה הוא
my-app-instance.בודקים את התקדמות יצירת המופע:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
בסיום סקריפט לטעינה בזמן ההפעלה, תוצג ההודעה הבאה:
startup-script: INFO Finished running startup scripts.
יוצרים כלל חומת אש שמאפשר תעבורת נתונים למופע:
gcloud compute firewall-rules create default-allow-http-80 \ --allow tcp:80 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 80 access to http-server"מקבלים את כתובת ה-IP החיצונית של המופע:
gcloud compute instances listכדי לראות את האפליקציה פועלת, מזינים את כתובת ה-URL הזו בדפדפן:
http://YOUR_INSTANCE_IP
מחליפים את הערך
YOUR_INSTANCE_IPבכתובת ה-IP החיצונית של המכונה.
ניהול של אירוע ומעקב אחריו
אתם יכולים להשתמש במסוף Google Cloud כדי לעקוב אחרי המופע ולנהל אותו.
- נכנסים לדף VM instances במסוף Google Cloud .
- ברשימת המכונות הווירטואליות, לוחצים על SSH בשורה של המכונה שרוצים להתחבר אליה.
-
כדי לראות את כל היומנים שנוצרו על ידי משאבי Compute Engine, עוברים לדף Logs Explorer.
כניסה לדף Logs ExplorerCloud Logging מוגדר באופן אוטומטי לאיסוף יומנים משירותים נפוצים שונים, כולל
syslog.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת המשאבים הבודדים
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-80
המאמרים הבאים
כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.
כדי לקבל מידע על משאבים אחרים של Go לבניית אפליקציות, אפשר לעיין במקורות המידע הבאים:
- אפשר לנהל ולנטר את הפריסה של קבוצת המופעים בCompute Engine > קבוצות של מופעים.
- אפשר לנהל את הגדרות איזון העומסים, כולל מיפויי כתובות URL ושירותים לקצה העורפי, בשירותי רשת > איזון עומסים.
- פריסת אפליקציה ב-Google Kubernetes Engine
- אפשר לעיין בGoogle Cloud שירותים אחרים.