Mengonfigurasi snapshot terjadwal

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan cara mengonfigurasi lingkungan Anda untuk menyimpan snapshot sesuai jadwal.

Untuk mengetahui informasi selengkapnya tentang cara kerja snapshot lingkungan dan cara menyimpan snapshot secara manual, lihat Menyimpan dan memuat snapshot.

Cara kerja snapshot terjadwal

Saat Anda mengaktifkan snapshot terjadwal, Cloud Composer secara berkala menyimpan snapshot lingkungan Anda ke bucket Cloud Storage.

Jika Anda membuat snapshot secara manual, Cloud Composer menyimpan snapshot di bucket lingkungan secara default. Untuk snapshot terjadwal, sebaiknya simpan snapshot di bucket terpisah. Dengan cara ini, Anda dapat menyiapkan izin dan konfigurasi siklus proses untuk bucket ini. Satu bucket dapat menyimpan snapshot dari beberapa lingkungan, dan Anda juga dapat membuat bucket yang berlebihan di seluruh region.

Sebelum memulai

  • Cloud Composer mendukung snapshot terjadwal di versi 2.0.32 dan yang lebih baru. Snapshot lingkungan didukung pada versi 2.0.9 dan yang lebih baru.

  • Untuk mengetahui informasi selengkapnya tentang persyaratan dan batasan snapshot, baca artikel Menyimpan dan memuat snapshot.

Membuat bucket untuk snapshot terjadwal

Buat bucket untuk snapshot terjadwal. Pertimbangkan cara Anda ingin menggunakan snapshot lingkungan. Jika ini adalah bagian dari rencana pemulihan dari bencana, gunakan bucket yang berlebihan di seluruh region atau bucket di region yang berbeda, sehingga Anda memiliki akses ke data tersebut, meskipun terjadi pemadaman layanan regional sepenuhnya. Jika tidak, bucket yang berada di region yang sama dengan lingkungan mungkin lebih cocok, dan dalam hal ini, Anda dapat mengurangi biaya transfer data antar-region.

Mengonfigurasi izin untuk bucket

Konfigurasikan izin berikut:

  • Akun layanan lingkungan Anda harus memiliki izin baca dan tulis untuk bucket ini. Misalnya, peran Storage Object Admin memiliki izin tersebut.

  • Akun pengguna tidak memerlukan izin tambahan agar bucket dapat memuat snapshot darinya, kecuali jika Anda ingin melihat konten bucket dari Konsol Google Cloud. Dalam hal ini, akun pengguna harus memiliki izin baca pada bucket.

Menetapkan konfigurasi siklus proses untuk bucket

Untuk menghemat biaya penyimpanan, Anda dapat mengonfigurasi aturan yang menghapus snapshot lingkungan setelah jangka waktu tertentu.

Misalnya, untuk otomatis menghapus snapshot yang lebih lama dari 30 hari:

  1. Tetapkan konfigurasi siklus proses untuk bucket.
  2. Tentukan tindakan Delete object.
  3. Pilih Usia dan 30 hari sebagai ketentuan.

Mengaktifkan jadwal snapshot untuk lingkungan Anda

Konsol

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

  4. Di Recovery configuration > Snapshot schedule, klik Edit. Panel Snapshot schedule akan terbuka.

  5. Di panel Snapshot schedule, pilih Create snapshot automatically, sesuai dengan jadwal yang ditentukan.

  6. Di menu drop-down Schedule frekuensi, pilih harian, mingguan, atau periode kustom untuk snapshot.

    Anda dapat menentukan jadwal kustom dengan format unix-cron. Misalnya, untuk menyimpan snapshot setiap 30 menit, tentukan */30 * * * *.

  7. Di kolom Snapshot location, pilih folder bucket tempat Anda ingin menyimpan snapshot.

gcloud

Perbarui konfigurasi lingkungan Anda. Argumen berikut menentukan parameter untuk snapshot terjadwal:

  • --enable-scheduled-snapshot-creation mengaktifkan snapshot terjadwal.
  • --snapshot-location menentukan folder bucket tempat Anda ingin menyimpan snapshot.
  • --snapshot-creation-schedule menentukan seberapa sering snapshot lingkungan harus diambil, dalam format unix-cron. Misalnya, untuk membuat snapshot setiap 30 menit, tentukan */30 * * * *.

  • --snapshot-schedule-timezone menentukan zona waktu untuk jadwal. Nilai ini adalah selisih waktu dan tidak memperhitungkan perubahan waktu panas hari. Nilai yang valid adalah dari UTC-12 hingga UTC+12. Contoh: UTC, UTC-01, UTC+03.

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-scheduled-snapshot-creation \
    --snapshot-location "gs://SNAPSHOTS_FOLDER" \
    --snapshot-creation-schedule "CRON_EXPRESSION" \
    --snapshot-schedule-timezone "TIME_ZONE"

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan berada.
  • SNAPSHOTS_FOLDER dengan URI folder bucket tempat menyimpan snapshot.
  • CRON_EXPRESSION dengan jadwal, dalam format unix-cron.
  • TIME_ZONE dengan zona waktu untuk jadwal.

Contoh (setiap hari pada pukul 04.00, UTC+01):

gcloud beta composer environments update example-environment \
    --location us-central1 \
    --enable-scheduled-snapshot-creation \
    --snapshot-location "gs://example-bucket/environment_snapshots" \
    --snapshot-creation-schedule "0 4 * * *" \
    --snapshot-schedule-timezone "UTC+01"

API

Buat permintaan environments.patch API.

Dalam permintaan ini:

  1. Dalam parameter updateMask, tentukan mask config.recoveryConfig.scheduledSnapshotsConfig untuk mengganti konfigurasi snapshot terjadwal yang ada.

  2. Dalam isi permintaan, tentukan konfigurasi untuk snapshot:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": true,
            "snapshot_location": "gs://SNAPSHOTS_FOLDER",
            "snapshot_creation_schedule": "CRON_EXPRESSION",
            "time_zone": "TIME_ZONE"
          }
        }
      }
    }
    

    Ganti:

    • SNAPSHOTS_FOLDER dengan URI folder bucket tempat menyimpan snapshot.
    • CRON_EXPRESSION dengan jadwal, dalam format unix-cron.

    • TIME_ZONE dengan zona waktu untuk jadwal. Nilai ini merupakan selisih waktu dan tidak memperhitungkan perubahan waktu panas hari. Nilai yang valid adalah dari UTC-12 hingga UTC+12. Contoh: UTC, UTC-01, UTC+03.

    Contoh (setiap hari pada pukul 04.00, UTC+01):

      // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
      // locations/us-central1/environments/example-environment?updateMask=
      // config.recoveryConfig.scheduledSnapshotsConfig
        {
          "config": {
            "recoveryConfig": {
              "scheduledSnapshotsConfig": {
                "enabled": true,
                "snapshot_location": "gs://example-bucket/environment_snapshots",
                "snapshot_creation_schedule": "0 4 * * *",
                "time_zone": "UTC+01"
              }
            }
          }
        }
    

Terraform

scheduled_snapshots_config dalam blok recovery_config menentukan parameter untuk snapshot terjadwal:

  • enabled mengaktifkan snapshot terjadwal.
  • snapshot_location menentukan folder bucket tempat Anda ingin menyimpan snapshot.
  • snapshot_creation_schedule menentukan seberapa sering snapshot lingkungan harus diambil, dalam format unix-cron. Misalnya, untuk membuat snapshot setiap 30 menit, tentukan */30 * * * *.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = true
      snapshot_location = "gs://SNAPSHOTS_FOLDER"
      snapshot_creation_schedule = "CRON_EXPRESSION"
      time_zone = "TIME_ZONE"
    }
  }
}

Ganti:

  • SNAPSHOTS_FOLDER dengan URI folder bucket tempat menyimpan snapshot.
  • CRON_EXPRESSION dengan jadwal, dalam format unix-cron.

  • TIME_ZONE dengan zona waktu untuk jadwal. Nilai ini merupakan selisih waktu dan tidak memperhitungkan perubahan waktu panas hari. Nilai yang valid adalah dari UTC-12 hingga UTC+12. Contoh: UTC, UTC-01, UTC+03.

Contoh (setiap hari pada pukul 04.00, UTC+01):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  recovery_config {
    scheduled_snapshots_config {
      enabled = true
      snapshot_location = "gs://example-bucket/environment_snapshots"
      snapshot_creation_schedule = "0 4 * * *"
      time_zone = "UTC+01"
    }
  }
}

Nonaktifkan snapshot terjadwal

Jika Anda menonaktifkan snapshot terjadwal, semua snapshot yang ada dan sudah diambil tidak akan diubah atau dihapus. Snapshot ini tetap berada di lokasi tempatnya disimpan.

Konsol

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

  4. Di Recovery configuration > Snapshot schedule, klik Edit. Panel Snapshot schedule akan terbuka.

  5. Di panel Snapshot schedule, pilih Do not create snapshot automatically.

gcloud

Perbarui konfigurasi lingkungan Anda. Argumen --disable-scheduled-snapshot-creation menonaktifkan snapshot terjadwal.

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-scheduled-snapshot-creation

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan berada.

Contoh:

gcloud beta composer environments update example-environment \
    --location us-central1 \
    --disable-scheduled-snapshot-creation

API

Buat permintaan environments.patch API.

Dalam permintaan ini:

  1. Dalam parameter updateMask, tentukan mask config.recoveryConfig.scheduledSnapshotsConfig.enabled untuk mengganti nilai kolom enabled.

  2. Dalam isi permintaan, tentukan nilai baru:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": false
          }
        }
      }
    }
    

Contoh:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
  "recoveryConfig": {
    "scheduledSnapshotsConfig": {
      "enabled": false
    }
  }
}
}

Terraform

Untuk menonaktifkan snapshot terjadwal, tetapkan kolom enabled di blok scheduled_snapshots_config ke false:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
    }
  }
}

Contoh:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
      // Other scheduled snapshots parameters
    }
  }
}

Langkah selanjutnya