Cara menerapkan pemulihan bencana dengan menggunakan pencadangan dan pemulihan layanan di Azure API Management

BERLAKU UNTUK: Pengembang | Dasar | Standar | Premium

Dengan menerbitkan dan mengelola API Anda melalui Azure API Management, Anda memanfaatkan toleransi kesalahan dan kapabilitas infrastruktur yang Anda rancang, terapkan, dan kelola secara manual. Platform Azure mengurangi sebagian besar potensi kegagalan dengan sebagian kecil dari biaya.

Untuk pulih dari masalah ketersediaan yang memengaruhi layanan API Management Anda, bersiaplah untuk merekonstruksi layanan Anda di wilayah lain kapan saja. Bergantung pada tujuan waktu pemulihan, Anda mungkin ingin mempertahankan layanan siaga di satu wilayah atau lebih. Anda mungkin juga mencoba mempertahankan konfigurasi dan konten mereka secara sinkron dengan layanan aktif sesuai dengan tujuan titik pemulihan Anda. Kemampuan pencadangan dan pemulihan API Management menyediakan blok bangunan untuk menerapkan strategi pemulihan bencana.

Operasi pencadangan dan pemulihan juga dapat digunakan untuk mereplikasi konfigurasi layanan API Management antara lingkungan operasional, misalnya, pengembangan dan pentahapan. Berhati-hatilah bahwa data runtime seperti pengguna dan langganan akan disalin juga, yang mungkin tidak selalu diinginkan.

Artikel ini memperlihatkan cara mengotomatisasi operasi pencadangan dan pemulihan instans API Management Anda menggunakan akun penyimpanan eksternal. Langkah-langkah yang ditampilkan di sini menggunakan cmdlet Backup-AzApiManagement dan Restore-AzApiManagement Azure PowerShell, atau REST API Api Management Service - Backup dan Api Management Service - Restore.

Peringatan

Setiap cadangan kedaluwarsa setelah 30 hari. Jika Anda mencoba memulihkan cadangan setelah periode kedaluwarsa 30 hari kedaluwarsa, pemulihan akan gagal dengan pesan Cannot restore: backup expired.

Penting

Operasi pemulihan tidak mengubah konfigurasi nama host kustom dari layanan target. Kami merekomendasikan untuk menggunakan nama host kustom dan sertifikat TLS yang sama untuk layanan aktif dan siaga, sehingga, setelah operasi pemulihan selesai, lalu lintas dapat diarahkan kembali ke instans siaga dengan perubahan CNAME DNS sederhana.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Prasyarat

Mengonfigurasi akses akun penyimpanan

Saat menjalankan operasi pencadangan atau pemulihan, Anda perlu mengonfigurasi akses ke akun penyimpanan. API Management mendukung dua mekanisme akses penyimpanan: kunci akses Azure Storage atau identitas terkelola API Management.

Mengonfigurasi kunci akses akun penyimpanan

Azure membuat dua kunci akses akun penyimpanan 512-bit untuk setiap akun penyimpanan. Kunci ini dapat digunakan untuk mengotorisasi akses ke data di akun penyimpanan Anda melalui otorisasi Kunci Bersama. Untuk melihat, mengambil, dan mengelola kunci, lihat Mengelola kunci akses akun penyimpanan.

Mengonfigurasi identitas terkelola API Management

Catatan

Menggunakan identitas terkelola API Management untuk operasi penyimpanan selama pencadangan dan pemulihan didukung dalam REST API dari API Management versi 2021-04-01-preview atau yang lebih baru.

  1. Aktifkan identitas terkelola yang ditetapkan sistem atau pengguna untuk API Management di instans API Management Anda.

    • Jika Anda mengaktifkan identitas terkelola yang ditetapkan pengguna, catat ID Klien identitas.
    • Jika Anda akan mencadangkan dan memulihkan ke instans API Management yang berbeda, aktifkan identitas terkelola di instans sumber dan target.
  2. Tetapkan identitas peran Storage Blob Data Contributor, yang dicakup ke akun penyimpanan yang digunakan untuk pencadangan dan pemulihan. Untuk menetapkan peran, gunakan portal Azure atau alat Azure lainnya.

Mencadangkan layanan API Management

Masuk dengan Azure PowerShell.

Dalam contoh berikut:

  • Instans API Management bernama myapim berada dalam grup sumber daya apimresourcegroup.
  • Akun penyimpanan bernama backupstorageaccount berada dalam grup sumber daya storageresourcegroup. Akun penyimpanan tersebut memiliki kontainer bernama backups.
  • Blob pencadangan akan dibuat dengan nama ContosoBackup.apimbackup.

Mengatur variabel dalam PowerShell:

$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"

Akses menggunakan kunci akses penyimpanan

$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageResourceGroup -StorageAccountName $storageAccountName)[0].Value

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey

Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -TargetContainerName $containerName -TargetBlobName $blobName

Akses menggunakan identitas terkelola

Untuk mengonfigurasi identitas terkelola dalam instans API Management Anda untuk mengakses akun penyimpanan, lihat Mengonfigurasi identitas terkelola, bagian awal artikel ini.

Akses menggunakan identitas terkelola yang ditetapkan sistem

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -TargetContainerName $containerName `
    -TargetBlobName $blobName -AccessType "SystemAssignedManagedIdentity"

Akses menggunakan identitas terkelola yang ditetapkan pengguna

Dalam contoh ini, identitas terkelola yang ditetapkan pengguna bernama myidentity berada dalam identityresourcegroup.

$identityName = "myidentity";
$identityResourceGroup = "identityresourcegroup";

$identityId = (Get-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $identityResourceGroup).ClientId

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -TargetContainerName $containerName `
    -TargetBlobName $blobName -AccessType "UserAssignedManagedIdentity" ` -identityClientId $identityid

Pencadangan adalah operasi jangka panjang yang mungkin membutuhkan waktu lebih dari beberapa menit untuk selesai. Selama waktu ini gateway API terus menangani permintaan, tetapi status layanan diperbarui.

Memulihkan layanan API Management

Perhatian

Hindari perubahan yang dilakukan pada konfigurasi layanan (misalnya, API, kebijakan, tampilan portal pengembang) saat operasi pemulihan sedang berlangsung. Perubahan dapat ditimpa.

Pada contoh berikut,

  • Instans API Management bernama myapim dipulihkan dari blob cadangan bernama ContosoBackup.apimbackup dalam akun penyimpanan backupstorageaccount.
  • Blob cadangan berada dalam kontainer bernama backups.

Mengatur variabel dalam PowerShell:

$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"

Akses menggunakan kunci akses penyimpanan

$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageResourceGroup -StorageAccountName $storageAccountName)[0].Value

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey

Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -SourceContainerName $containerName -SourceBlobName $blobName

Akses menggunakan identitas terkelola

Untuk mengonfigurasi identitas terkelola dalam instans API Management Anda untuk mengakses akun penyimpanan, lihat Mengonfigurasi identitas terkelola, bagian awal artikel ini.

Akses menggunakan identitas terkelola yang ditetapkan sistem

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -SourceContainerName $containerName `
    -SourceBlobName $blobName -AccessType "SystemAssignedManagedIdentity"

Akses menggunakan identitas terkelola yang ditetapkan pengguna

Dalam contoh ini, identitas terkelola yang ditetapkan pengguna bernama myidentity berada dalam identityresourcegroup.

$identityName = "myidentity";
$identityResourceGroup = "identityresourcegroup";

$identityId = (Get-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $identityResourceGroup).ClientId

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -SourceContainerName $containerName `
    -SourceBlobName $blobName -AccessType "UserAssignedManagedIdentity" ` -identityClientId $identityid

Pemulihan adalah operasi jangka panjang yang mungkin membutuhkan waktu hingga 45 menit atau lebih untuk selesai.

Kendala

  • Pemulihan cadangan dijamin hanya selama 30 hari sejak saat pembuatannya.
  • Saat pencadangan berlangsung, hindari perubahan manajemen dalam layanan seperti peningkatan atau penurunan tingkat harga, perubahan nama domain, dan lainnya.
  • Perubahan yang dilakukan pada konfigurasi layanan (misalnya, API, kebijakan, dan tampilan portal pengembang) saat operasi pencadangan sedang berlangsung mungkin dikecualikan dari cadangan dan akan hilang.
  • Pencadangan tidak menangkap data log pra-agregat yang digunakan dalam laporan yang ditampilkan pada jendela Analitik di portal Azure.
  • Cross-Origin Resource Sharing (CORS)tidak boleh mengaktifkan Blob service dalam akun penyimpanan.
  • Tingkat harga layanan yang dipulihkan harus sesuai dengan tingkat harga layanan cadangan yang dipulihkan.

Batasan jaringan penyimpanan

Jika akun penyimpanan diaktifkan firewall, disarankan untuk menggunakan identitas terkelola yang ditetapkan sistem instans API Management untuk akses ke akun. Pastikan bahwa akun penyimpanan memberikan akses ke layanan Azure tepercaya.

Apa yang tidak dicadangkan

Frekuensi yang Anda gunakan untuk melakukan pencadangan layanan mempengaruhi tujuan titik pemulihan Anda. Untuk meminimalkannya, sebaiknya terapkan pencadangan rutin dan lakukan pencadangan sesuai permintaan setelah Anda melakukan perubahan pada layanan API Management Anda.

Langkah berikutnya

Lihat sumber daya terkait berikut untuk proses pencadangan/pemulihan: