Bagikan melalui


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

BERLAKU UNTUK: Pengembang | Dasar | Standar | Premi

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. Fitur pencadangan dan pemulihan API Management menyediakan komponen penting 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 Azure PowerShell Backup-AzApiManagement dan Restore-AzApiManagement , atau API Management Service - Backup dan API Management Service - Restore REST API.

Peringatan

Setiap cadangan kedaluwarsa setelah 30 hari. Jika Anda mencoba memulihkan cadangan setelah periode 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. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Penting

Perubahan pada infrastruktur layanan API Management Anda (seperti mengonfigurasi domain kustom, menambahkan sertifikat CA, penskalaan, konfigurasi jaringan virtual, perubahan zona ketersediaan, dan penambahan wilayah) dapat memakan waktu 15 menit atau lebih lama untuk diselesaikan, tergantung pada tingkat layanan dan ukuran penyebaran. Harapkan waktu pemrosesan yang lebih lama dari suatu instans dengan jumlah unit skala yang lebih besar atau konfigurasi multi-wilayah. Perubahan bergulir pada API Management dijalankan dengan hati-hati untuk mempertahankan kapasitas dan ketersediaan.

Saat layanan diperbarui, perubahan infrastruktur layanan lainnya tidak dapat dilakukan. Namun, Anda dapat mengonfigurasi API, produk, kebijakan, dan pengaturan pengguna. Layanan ini tidak akan mengalami waktu henti gateway, dan API Management akan terus melayani permintaan API tanpa gangguan (kecuali di tingkat Pengembang).

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 dalam 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 ditetapkan pengguna untuk API Management di instans API Management Anda.

    • Jika Anda mengaktifkan identitas terkelola yang ditetapkan oleh pengguna, perhatikan 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 Kontributor Data Blob Penyimpanan , yang dicakup ke akun penyimpanan yang digunakan untuk pencadangan dan pemulihan. Untuk menetapkan peran, gunakan portal Microsoft 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 di grup sumber daya storageresourcegroup. Akun penyimpanan memiliki kontainer bernama cadangan.
  • Blob cadangan 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 di instans API Management Anda untuk mengakses akun penyimpanan, lihat Mengonfigurasi identitas terkelola, sebelumnya di 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 di grup sumber daya 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 sedang 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 di backupstorageaccount akun penyimpanan.
  • Blob cadangan berada dalam kontainer bernama cadangan.

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 di instans API Management Anda untuk mengakses akun penyimpanan, lihat Mengonfigurasi identitas terkelola, sebelumnya di 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 di grup sumber daya 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

Keterbatasan

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

Batasan jaringan penyimpanan

Jika akun penyimpanan memiliki firewall yang diaktifkan, disarankan untuk menggunakan identitas terkelola yang ditetapkan oleh sistem pada instance API Management untuk mengakses akun tersebut. 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.

Lihat sumber daya terkait berikut untuk proses pencadangan/pemulihan: