מדריך: הגדרת דומיין באמצעות Cloud DNS

במדריך הזה מוסבר איך לרשום דומיין, להגדיר שרת אינטרנט לדוגמה ולהשתמש ב-Cloud DNS כדי להפנות את כתובת ה-URL של הדומיין לשרת.

אם אתם חדשים בשימוש ב-Terraform עבור Google Cloud, תוכלו לקרוא את המאמר תחילת העבודה עם Terraform.

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות:

  • רישום שם דומיין באמצעות Cloud Domains
  • יצירת מכונה וירטואלית (VM) של Compute Engine
  • הפעלת שרת אינטרנט בסיסי של Apache
  • הגדרת הדומיין באמצעות Cloud DNS
  • עדכון שרתי שמות
  • אימות ההגדרה

עלויות

רישום של שם דומיין כרוך בעלות. למידע על התמחור של Cloud Domains, ראו תמחור של Cloud Domains.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מפעילים את Compute Engine API.

    הפעלת ה-API

רישום שם דומיין

אם כבר יש לכם דומיין רשום, אפשר לדלג על הקטע הזה.

אתם יכולים להשתמש ב-Cloud Domains כדי לרשום דומיין. ב-Cloud Domains אפשר להשתמש באותו חשבון לחיוב עבור הדומיין שיצרתם בקטע לפני שמתחילים. הוראות לרישום דומיין באמצעות Cloud Domains מופיעות במאמר רישום דומיין.

יצירת מופע של מכונה וירטואלית

המסוף

כדי ליצור מכונה וירטואלית (VM) של Linux ב-Compute Engine, פועלים לפי ההוראות הבאות:

  1. נכנסים לדף Create an instance במסוף Google Cloud .

    כניסה לדף Create an instance

  2. בקטע OS and Storage לוחצים על Change כדי להתחיל בהגדרת דיסק האתחול.
  3. בכרטיסייה Public images, בוחרים באפשרות Debian GNU/Linux.
  4. לוחצים על בחירה.
  5. בקטע Firewall בוחרים באפשרות Allow HTTP traffic.
  6. כדי ליצור את המכונה הווירטואלית (VM), לוחצים על האפשרות Create.

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

התחברות למכונה

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. ברשימת המכונות הווירטואליות, לוחצים על SSH בשורה של המכונה שרוצים להתחבר אליה.

    הלחצן SSH ליד שם המכונה.

עכשיו יש לכם חלון טרמינל שדרכו אפשר לתקשר עם מופע Linux.

פרטים נוספים זמינים במאמר הפעלה מהירה באמצעות מכונה וירטואלית של Linux.

הפעלת שרת אינטרנט בסיסי של Apache

בקטע הזה מפעילים ובודקים שרת אינטרנט של Apache.

  1. בחלון ה-SSH, משתמשים במנהל החבילות של Debian כדי להתקין את החבילה apache2.

     sudo apt-get update && sudo apt-get install apache2 -y
     

    אחרי שמתקינים את Apache, מערכת ההפעלה מפעילה אוטומטית את שרת Apache.

  2. מחליפים את דף האינטרנט שמוגדר כברירת מחדל בשרת האינטרנט של Apache באמצעות הפקודה הבאה:

     echo "<!doctype html><html><body><h1>Hello World!</h1></body></html>" 
    | sudo tee /var/www/html/index.html

בדיקת השרת

בודקים שהתנועה מועברת למופע בכתובת ה-IP החיצונית שלו.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    לדף VM instances

  2. בעמודה External IP, מעתיקים את כתובת ה-IP החיצונית של המופע.
  3. בדפדפן, עוברים אל http://[EXTERNAL_IP]. אל תשתמשו בפונקציה https כדי להתחבר כי השרת יחזיר שגיאה Connection Refused.

עכשיו אמור להופיע הדף Hello World!.

פרטים נוספים זמינים במאמר הפעלת שרת אינטרנט בסיסי של Apache.

הגדרת הדומיין באמצעות Cloud DNS

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף יצירת תחום DNS.

    מעבר אל יצירת תחום DNS

  2. בקטע סוג האזור, בוחרים באפשרות ציבורי.

  3. בשדה שם האזור, מזינים my-new-zone.

  4. בשדה שם DNS, מזינים סיומת של שם DNS לאזור באמצעות שם דומיין שרשמתם (לדוגמה, example.com).

  5. בקטע DNSSEC, מוודאים שההגדרה Off נבחרה.

  6. לוחצים על יצירה כדי ליצור אזור שאוכלס ברשומות NS ו-SOA.

  7. כדי להפנות את שם הדומיין הרשום לכתובת ה-IP של שרת האירוח, צריך להוסיף רשומת A לאזור:

    1. בדף פרטי האזור, לוחצים על הוספת אזור זמן רגיל.
    2. בתפריט Resource Record Type (סוג רשומת המשאב), בוחרים באפשרות A.
    3. בשדה IPv4 Address, מזינים את כתובת ה-IP החיצונית של המכונה.
    4. לוחצים על יצירה כדי ליצור את רשומת ה-A לאזור.
  8. אופציונלי: מוסיפים רשומת CNAME כדי להביא בחשבון קידומת לשם הדומיין (לדוגמה, www.):

    1. לוחצים על הוספת סטנדרט.
    2. בשדה DNS Name, מוסיפים את הקידומת www לדומיין.
    3. בשדה סוג רשומה, בוחרים באפשרות CNAME.
    4. בשדה Canonical name (שם קנוני), מזינים את שם הדומיין ואחריו נקודה (לדוגמה, example.com.).
    5. לוחצים על יצירה.

עדכון שרתי שמות

כדי לעדכן את שרתי השמות ב-Cloud Domains, פועלים לפי השלבים הבאים:

  1. נכנסים לדף Cloud Domains במסוף Google Cloud .

    כניסה ל-Cloud Domains

  2. לוחצים על שם הדומיין שרוצים לערוך. אפשר גם ללחוץ על עוד לצד שם הדומיין כדי לראות את תפריט העריכה.

  3. כדי לערוך את פרטי ה-DNS, לוחצים על עריכת פרטי ה-DNS.

  4. בוחרים באפשרות שימוש ב-Cloud DNS (מומלץ).

  5. ברשימה Cloud DNS zone בוחרים באפשרות my-new-zone.

  6. לוחצים על Save.

Terraform

אתם יכולים להשתמש ב משאבים של Terraform כדי ליצור מכונה וירטואלית (VM), להפעיל שרת אינטרנט של Apache, להגדיר את הדומיין באמצעות Cloud DNS ולעדכן שרתי שמות.

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

# to setup a web-server

resource "random_id" "rnd" {
  byte_length = 4
}

resource "google_compute_instance" "default" {
  name         = "dns-compute-instance"
  machine_type = "g1-small"
  zone         = "us-central1-b"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral public IP
    }
  }
  metadata_startup_script = <<-EOF
  sudo apt-get update && \
  sudo apt-get install apache2 -y && \
  echo "<!doctype html><html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.html
  EOF
}

# to allow http traffic
resource "google_compute_firewall" "default" {
  name    = "allow-http-traffic"
  network = "default"
  allow {
    ports    = ["80"]
    protocol = "tcp"
  }
  source_ranges = ["0.0.0.0/0"]
}

# to create a DNS zone
resource "google_dns_managed_zone" "default" {
  name          = "example-zone-googlecloudexample"
  dns_name      = "example-${random_id.rnd.hex}.com."
  description   = "Example DNS zone"
  force_destroy = "true"
}

# to register web-server's ip address in DNS
resource "google_dns_record_set" "default" {
  name         = google_dns_managed_zone.default.dns_name
  managed_zone = google_dns_managed_zone.default.name
  type         = "A"
  ttl          = 300
  rrdatas = [
    google_compute_instance.default.network_interface[0].access_config[0].nat_ip
  ]
}

אימות ההגדרה

כדי לוודא שההגדרה פועלת, אחרי ששרתי השמות מתעדכנים, עוברים לשם הדומיין (לדוגמה, example.com). הדומיין אמור להפנות לכתובת ה-IP שלכם ולמכונה הווירטואלית של Compute Engine שבה מוצג הדף Hello World!‎ שיצרתם במאמר הפעלת שרת אינטרנט בסיסי של Apache.

כדי לוודא שההגדרה נכונה, אפשר גם להריץ את הפקודה dig +trace example.com בחלון המסוף. מחליפים את example.com בשם הדומיין הרשום.

dig +trace example.com

הפלט צריך להסתיים בפרטים הבאים. ‫IP_ADDRESS היא כתובת ה-IP של שרת האינטרנט.

example.com.    300 IN  A   IP_ADDRESS
;; Received 62 bytes from 216.239.34.109#53(ns-cloud-d2.googledomains.com) in 62 ms

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

example.com IN NS <your Cloud DNS name servers>

אחרי שמחכים שהפצת ה-DNS תושלם, אפשר גם להריץ את הפקודה nslookup כדי לאמת את ההגדרה:

nslookup example.com

הפלט צריך לכלול את הפרטים הבאים. ‫IP_ADDRESS היא כתובת ה-IP של שרת האינטרנט שלכם.

Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   example.com
Address: IP_ADDRESS

הסרת המשאבים

המסוף

  1. נכנסים לדף Cloud DNS zones במסוף Google Cloud .

    מעבר לאזורים ב-Cloud DNS

  2. לוחצים על שם אזור (לדוגמה, my-new-zone) כדי לעבור לדף פרטי האזור.

  3. בוחרים את רשומות A ו-CNAME שיצרתם.

  4. לוחצים על מחיקת סט הרשומות.

  5. כדי למחוק את האזור, לוחצים על מחיקת האזור בשורה של שם האזור my-new-zone.

  6. נכנסים לדף VM instances.

    כניסה לדף VM instances

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

  8. בתפריט More בשורה של המופע, לוחצים על Delete.

המאמרים הבאים