Cluster und primäre Instanz erstellen

Auf dieser Seite wird beschrieben, wie Sie einen AlloyDB-Cluster und seine primäre Instanz erstellen.

Hinweis

  • Für das von Ihnen verwendete Google Cloud-Projekt muss der Zugriff auf AlloyDB aktiviert sein.
  • Ein VPC-Netzwerk im von Ihnen verwendeten Google Cloud-Projekt muss bereits für den Zugriff auf private Dienste auf AlloyDB konfiguriert sein.
  • Sie benötigen eine der folgenden IAM-Rollen im verwendeten Google Cloud-Projekt:
    • roles/alloydb.admin (die vordefinierte IAM-Rolle „AlloyDB Admin“)
    • roles/owner (die einfache IAM-Rolle „Inhaber“)
    • roles/editor (einfache IAM-Rolle „Bearbeiter“)

    Wenn Sie keine dieser Rollen haben, wenden Sie sich an den Administrator Ihrer Organisation, um Zugriff anzufordern.

  • Außerdem benötigen Sie die Berechtigung compute.networks.list für das von Ihnen verwendete Google Cloud-Projekt. Bitten Sie Ihren Administrator, Ihnen die Rolle roles/compute.networkUser (Compute Network User) zuzuweisen, um diese Berechtigung zu erhalten und gleichzeitig das Prinzip der geringsten Berechtigung zu wahren.

Neuen Cluster erstellen

Console

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf Cluster erstellen.

  3. Wählen Sie eine Clusterkonfiguration aus. Weitere Informationen zu den Unterschieden zwischen hochverfügbaren und einfachen Konfigurationen finden Sie unter Knoten und Instanzen.

    Wenn Sie nicht sicher sind, ob für Ihren neuen Cluster Lesepoolinstanzen erforderlich sind, wählen Sie eine der Konfigurationen ohne Lesepools aus. Sie können dem Cluster später bei Bedarf Lesepoolinstanzen hinzufügen.

  4. Klicken Sie auf Weiter.

  5. Geben Sie im Abschnitt Cluster konfigurieren im Feld Cluster-ID eine ID für den Cluster ein.

  6. Geben Sie im Feld Passwort ein Anfangspasswort für den neuen Cluster ein. AlloyDB weist dem postgres-Datenbanknutzer beim Erstellen des Clusters das angegebene Passwort zu.

  7. Wählen Sie im Feld Database version (Datenbankversion) die Hauptversion von PostgreSQL aus, mit der die Datenbankserver des Clusters kompatibel sein sollen.

  8. Wählen Sie eine Region aus.

  9. Wählen Sie einen Netzwerkpfad aus.

  10. Optional: Wenn Sie auf diesen Cluster einen bestimmten IP-Adressbereich anwenden möchten, anstatt AlloyDB einen IP-Adressbereich auswählen zu lassen, gehen Sie so vor:

    1. Klicken Sie auf Option „Zugewiesener IP-Bereich“ einblenden.

    2. Wählen Sie in der Liste Zugewiesener IP-Adressbereich einen IP-Adressbereich aus.

    Weitere Informationen zu dieser Option finden Sie unter Cluster mit einem bestimmten IP-Adressbereich erstellen.

  11. Optional: Wenn Sie diesen Cluster mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) statt mit der von Google verwalteten Verschlüsselung verschlüsseln möchten, führen Sie die folgenden zusätzlichen Schritte aus:

    1. Klicken Sie auf Erweiterte Verschlüsselungsoptionen.

    2. Wählen Sie Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) aus.

    3. Wählen Sie im angezeigten Menü einen vom Kunden verwalteten Schlüssel aus.

      In der Google Cloud Console ist diese Liste auf Schlüssel im Google Cloud gleichen Projekt und in derselben Region wie der neue Cluster beschränkt. Wenn Sie einen Schlüssel verwenden möchten, der nicht in dieser Liste enthalten ist, klicken Sie auf Sie können Ihren Schlüssel nicht finden? Geben Sie den Namen der Schlüsselressource ein und geben Sie dann den Ressourcennamen des Schlüssels in das angezeigte Dialogfeld ein.

      Die Verwendung von CMEK mit AlloyDB erfordert einige zusätzliche Schritte. Weitere Informationen finden Sie unter CMEK mit AlloyDB verwenden.

    4. Klicken Sie auf Weiter.

  12. Konfigurieren Sie die primäre Instanz:

    1. Geben Sie im Feld Instanz-ID eine ID für Ihre primäre Instanz ein.
    2. Wählen Sie einen Maschinentyp aus.
    3. Optional: Legen Sie benutzerdefinierte Flags für Ihre Instanz fest. Gehen Sie für jedes Flag so vor:
      1. Klicken Sie auf Flag hinzufügen.
      2. Wählen Sie in der Liste Flag für neue Datenbank ein Flag aus.
      3. Geben Sie einen Wert für das Flag an.
      4. Klicken Sie auf Fertig.
  13. Wenn Sie einen Clustertyp ohne Lesepools ausgewählt haben, klicken Sie auf Cluster erstellen. Ist dies nicht der Fall, fahren Sie mit dem nächsten Schritt fort.

  14. Wenn Sie einen Clustertyp mit Lesepools ausgewählt haben, gehen Sie so vor:

    1. Klicken Sie auf Weiter, um eine oder mehrere Lesepoolinstanzen hinzuzufügen.
    2. So fügen Sie eine Lesepoolinstanz hinzu:

      1. Klicken Sie auf Lesepool hinzufügen.

      2. Geben Sie im Feld Lesepoolinstanz-ID eine ID für die Lesepoolinstanz ein.

      3. Geben Sie im Feld Knotenzahl eine Knotenzahl ein.

        Die Anzahl der Knoten in einer Lesepoolinstanz bestimmt die Gesamtrechenleistung der Instanz.

      4. Wählen Sie einen Maschinentyp aus.

      5. Optional: Legen Sie benutzerdefinierte Flags für Ihre Instanz fest. Für jede Flagge gilt Folgendes:

        1. Klicken Sie auf Flag hinzufügen.
        2. Wählen Sie in der Liste Flag für neue Datenbank ein Flag aus.
        3. Geben Sie einen Wert für das Flag an.
        4. Klicken Sie auf Fertig.
      6. Klicken Sie auf Lesepool hinzufügen.

    3. Klicken Sie auf Cluster erstellen.

gcloud

Wenn Sie die gcloud CLI verwenden möchten, können Sie die Google Cloud CLI installieren und initialisieren oder Cloud Shell verwenden.

  1. Verwenden Sie den Befehl gcloud alloydb clusters create, um den Cluster mit aktiviertem Zugriff auf private Dienste oder Private Service Connect zu erstellen.

    Zugriff auf private Dienste

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --network=NETWORK

    Private Service Connect

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --enable-private-service-connect 

    Ersetzen Sie Folgendes:

    • CLUSTER_ID: die ID des Clusters, den Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.

    • VERSION: Die Hauptversion von PostgreSQL, mit der die Datenbankserver des Clusters kompatibel sein sollen. Wählen Sie eine der folgenden Optionen aus:

      • 14, für die Kompatibilität mit PostgreSQL 14

      • 15, für die Kompatibilität mit PostgreSQL 15, der unterstützten Standard-PostgreSQL-Version

      • 16, für die Kompatibilität mit PostgreSQL 16

    • PASSWORD: das Passwort für den Standardnutzer von postgres.

    • NETWORK (optional): der Name des VPC-Netzwerk, das Sie für den Zugriff auf private Dienste auf AlloyDB konfiguriert haben. Wenn Sie das Flag --network weglassen, verwendet AlloyDB das Netzwerk default.

    • --enable-private-service-connect (optional): Wenn Sie diese Option aktivieren, wird Private Service Connect als Verbindungsmethode für den Cluster und seine Instanzen verwendet.

    • REGION_ID: die Region, in der der Cluster platziert werden soll.

    • PROJECT_ID: die ID des Projekts, in dem der Cluster platziert werden soll.

    Dieser Befehl initiiert einen Vorgang mit langer Ausführungszeit und gibt eine Vorgangs-ID zurück.

  2. Optional: Wenn Sie einen bestimmten IP-Adressbereich auf diesen Cluster anwenden möchten, anstatt AlloyDB einen IP-Adressbereich auswählen zu lassen, geben Sie das folgende Argument an:

    --allocated-ip-range-name=RANGE
    

    Ersetzen Sie RANGE durch den Namen des IP-Adressbereichs, den dieser Cluster für den Zugriff auf private Dienste verwenden soll.

    Weitere Informationen zu dieser Option finden Sie unter Cluster mit einem bestimmten IP-Adressbereich erstellen.

  3. Optional: Wenn Sie diesen Cluster mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) anstelle der standardmäßigen von Google verwalteten Verschlüsselung verschlüsseln möchten, geben Sie die folgenden Argumente an:

    --kms-key=KEY_ID \
    --kms-keyring=KEYRING_ID \
    --kms-location=LOCATION_ID \
    --kms-project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • KEY_ID: Die ID des zu verwendenden CMEK-Schlüssels.

    • KEYRING_ID: die ID des Schlüsselbunds des Schlüssels.

    • LOCATION_ID: Die ID der Region des Schlüsselrings, die mit der Region des Clusters übereinstimmen muss.

    • PROJECT_ID: die ID des Projekts des Schlüsselbunds.

  4. Prüfen Sie, ob der Vorgang erfolgreich war.

    gcloud alloydb operations describe OPERATION_ID \
        --region=REGION_ID \
        --project=PROJECT_ID

    Ersetzen Sie OPERATION_ID durch die Vorgangs-ID, die im vorherigen Schritt zurückgegeben wurde.

Nachdem Sie den primären Cluster erstellt haben, müssen Sie eine primäre Instanz erstellen.

Primäre Instanz erstellen

Verwenden Sie den Befehl gcloud alloydb instances create, um eine primäre Instanz zu erstellen.

    gcloud alloydb instances create INSTANCE_ID \
        --instance-type=PRIMARY \
        --cpu-count=CPU_COUNT \
        --region=REGION_ID \
        --cluster=CLUSTER_ID \
        --project=PROJECT_ID \
        --allowed-psc-projects=ALLOWED_PROJECT_LIST

Ersetzen Sie Folgendes:

  • INSTANCE_ID: die ID der Instanz, die Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • CPU_COUNT: Die Anzahl der vCPUs, die Sie für die Instanz benötigen. Gültige Werte sind:
    • 2: 2 vCPUs, 16 GB RAM
    • 4: 4 vCPUs, 32 GB RAM
    • 8: 8 vCPUs, 64 GB RAM
    • 16: 16 vCPUs, 128 GB RAM
    • 32: 32 vCPUs, 256 GB RAM
    • 64: 64 vCPUs, 512 GB RAM
    • 96: 96 vCPUs, 768 GB RAM
    • 128: 128 vCPUs, 864 GB RAM
  • REGION_ID: Die Region, in der die Instanz bereitgestellt werden soll.
  • CLUSTER_ID: die ID des Clusters, den Sie zuvor erstellt haben.
  • PROJECT_ID: die ID des Projekts, in dem der Cluster
  • ALLOWED_PROJECT_LIST (optional): die durch Kommas getrennte Liste der Projekt-IDs oder Projektnummern, für die Sie den Zugriff auf die Instanz zulassen möchten, wenn Sie Private Service Connect verwenden.

Terraform

Verwenden Sie zum Erstellen eines Clusters eine Terraform-Ressource.

Im folgenden Code-Snippet wird ein Cluster anhand des Beispiels AlloyDB-Cluster vollständig erstellt:

resource "google_alloydb_cluster" "cluster_abc" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }
  database_version = "POSTGRES_15"

  initial_user {
    user     = "postgres"
    password = "postgres"
  }

  continuous_backup_config {
    enabled              = true
    recovery_window_days = 14
  }

  automated_backup_policy {
    location      = "us-central1"
    backup_window = "1800s"
    enabled       = true

    weekly_schedule {
      days_of_week = ["MONDAY"]

      start_times {
        hours   = 23
        minutes = 0
        seconds = 0
        nanos   = 0
      }
    }

    quantity_based_retention {
      count = 1
    }

    labels = {
      test = "alloydb-cluster-backup-policy-labels"
    }
  }

  labels = {
    test = "alloydb-cluster-labels"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-cluster-network"
}

Cloud Shell vorbereiten

So bereiten Sie Cloud Shell vor, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden:

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben, auch als Stammmodul bezeichnet.

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss eine TF-Datei sein, z. B. main.tf. In diesem Dokument wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Kopieren Sie den Beispielcode in das neu erstellte main.tf. Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
  3. Prüfen Sie die Datei main.tf und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init
    Optional: Wenn Sie die neueste Google-Anbieterversion verwenden möchten, fügen Sie die Option -upgrade ein:
    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration, um sicherzustellen, dass die Terraform-Änderungen Ihren Erwartungen entsprechen:
    terraform plan
    Korrigieren Sie die Konfiguration nach Bedarf.
  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply
    Warten Sie, bis Terraform die Meldung Apply complete! anzeigt.
  3. Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Aktiven Cluster klonen

Wenn Sie einen Klon eines aktiven Clusters mit einer Kopie aller Daten des Quellclusters erstellen möchten, der in derselben Region ausgeführt wird, führen Sie eine Point-in-Time-Wiederherstellung für diesen Cluster aus. Sie können dabei einen sehr aktuellen Zeitpunkt angeben, z. B. die erste Sekunde der aktuellen Minute.

Dabei werden nur die Daten des Quellclusters in den Klon kopiert, nicht die Konfiguration des Quellclusters. Wenn Sie die Daten des Klons mit CMEK verschlüsseln möchten, müssen Sie CMEK-Details als Teil des Befehls zur Point-in-Time-Wiederherstellung angeben, auch wenn die Daten des Quellclusters bereits mit CMEK verschlüsselt sind. Nachdem der neue Cluster erstellt wurde, müssen Sie Instanzen, Datenbankflags, Sicherungszeitpläne und alle anderen erforderlichen Konfigurationen hinzufügen.

Ein auf diese Weise erstellter Cluster existiert unabhängig von seiner Quelle. Die Daten haben nach Abschluss der anfänglichen Duplizierung keine Beziehung zu den Daten des Quellclusters. Wenn Sie sekundäre Cluster erstellen möchten, die Datenänderungen in den Quellclustern automatisch verfolgen und replizieren, lesen Sie den Hilfeartikel Regionenübergreifende Replikation.

Cluster mit einem bestimmten IP-Adressbereich erstellen

AlloyDB verwendet den Zugriff auf private Dienste, damit die internen Ressourcen eines Clusters miteinander kommunizieren können. Bevor Sie einen Cluster erstellen können, muss Ihr VPC-Netzwerk (Virtual Private Cloud) mindestens einen IP-Adressbereich enthalten, der mit einer Verbindung für den Zugriff auf private Dienste konfiguriert ist.

Wenn Ihr VPC-Netzwerk mehrere IP-Adressbereiche enthält, die mit Zugriff auf private Dienste konfiguriert wurden, können Sie den Bereich angeben, den AlloyDB einem neuen Cluster zuweist.

Informationen zum Angeben eines IP-Adressbereichs finden Sie in den optionalen Schritten unter Cluster erstellen.

Wenn Sie keinen Bereich angeben, führt AlloyDB beim Erstellen eines Clusters eine der folgenden Aktionen aus:

  • Wenn Sie mehrere IP-Adressbereiche mit Zugriff auf private Dienste haben, wählt AlloyDB einen dieser Bereiche aus.

  • Wenn Sie genau einen IP-Adressbereich in Ihrer VPC mit Zugriff auf private Dienste eingerichtet haben, wendet AlloyDB diesen Bereich auf den neuen Cluster an.

Weitere Informationen zum Erstellen von IP-Adressbereichen für die Verwendung mit AlloyDB finden Sie unter Zugriff auf private Dienste aktivieren.

Nächste Schritte