Bagikan melalui


Multi-penyewaan dan Azure Storage

Azure Storage adalah layanan dasar yang digunakan di hampir semua solusi. Solusi multi-penyewa sering kali menggunakan Azure Storage untuk blob, file, antrean, dan penyimpanan tabel. Di halaman ini, kami menjelaskan beberapa fitur Azure Storage yang berguna untuk solusi multi-penyewa, dan kemudian kami menyediakan tautan ke panduan yang dapat membantu Anda, saat Anda merencanakan cara menggunakan Azure Storage.

Fitur Azure Storage yang mendukung multi-penyewaan

Azure Storage mencakup banyak fitur yang mendukung multi-penyewaan.

Tanda tangan akses bersama

Saat bekerja dengan Azure Storage dari aplikasi klien, Anda perlu mempertimbangkan apakah permintaan klien harus dikirim melalui komponen lain yang Anda kontrol, seperti jaringan pengiriman konten atau API, atau apakah klien harus terhubung langsung ke akun penyimpanan. Mungkin ada alasan yang tepat untuk mengirim permintaan melalui komponen lain, termasuk penembolokan data di tepi jaringan Anda. Namun, dalam beberapa situasi, sebaiknya titik akhir klien dihubungkan langsung ke Azure Storage untuk mengunduh atau mengunggah data. Koneksi ini membantu Anda meningkatkan performa solusi Anda, terutama saat bekerja dengan blob besar atau file dalam jumlah besar. Ini juga mengurangi beban pada aplikasi dan server backend Anda, dan mengurangi jumlah lompatan jaringan. Tanda tangan akses bersama (SAS) memungkinkan Anda menyediakan aplikasi klien dengan aman dengan akses ke objek di Azure Storage.

Tanda tangan akses bersama dapat digunakan untuk membatasi cakupan operasi yang dapat dilakukan klien, dan objek yang operasinya dapat Anda lakukan. Misalnya, jika Anda memiliki akun penyimpanan bersama untuk semua penyewa, dan menyimpan semua data penyewa A dalam kontainer blob bernama tenanta, Anda dapat membuat SAS yang hanya mengizinkan pengguna penyewa A untuk mengakses kontainer tersebut. Untuk informasi selengkapnya, lihat Model Isolasi untuk menjelajahi pendekatan yang dapat Anda gunakan untuk mengisolasi data penyewa di akun penyimpanan.

Pola Kunci Valet berguna sebagai cara untuk mengeluarkan tanda tangan akses bersama yang dibatasi dan dicakup dari tingkat aplikasi Anda. Misalnya, Anda memiliki aplikasi multi-penyewa yang memungkinkan pengguna mengunggah video. Tingkat aplikasi atau API Anda dapat mengautentikasi klien menggunakan sistem autentikasi Anda sendiri. Anda kemudian dapat menyediakan SAS ke klien yang memungkinkan mereka mengunggah file video ke blob tertentu, ke dalam kontainer dan jalur blob yang Anda tentukan. Klien kemudian mengunggah file langsung ke akun penyimpanan, menghindari bandwidth tambahan dan dimuat pada API Anda. Jika mereka mencoba membaca data dari kontainer blob, atau jika mereka mencoba menulis data ke bagian kontainer yang berbeda ke kontainer lain dalam akun penyimpanan, Azure Storage akan memblokir permintaan. Tanda tangan akan kedaluwarsa setelah jangka waktu yang dapat dikonfigurasi.

Kebijakan akses tersimpan memperluas fungsionalitas SAS, yang memungkinkan Anda menentukan satu kebijakan yang dapat digunakan saat menerbitkan beberapa tanda tangan akses bersama.

Kontrol akses berbasis identitas

Azure Storage juga menyediakan kontrol akses berbasis identitas dengan menggunakan ID Microsoft Entra. Kemampuan ini juga memungkinkan Anda menggunakan kontrol akses berbasis atribut, yang memberi Anda akses yang lebih terperinci ke jalur blob, atau ke blob yang telah ditandai dengan ID penyewa tertentu.

Manajemen siklus hidup

Saat Anda menggunakan penyimpanan blob dalam solusi multi-penyewa, penyewa Anda mungkin memerlukan kebijakan yang berbeda untuk retensi data. Saat menyimpan data dalam jumlah besar, sebaiknya Anda juga mengonfigurasi data agar penyewa tertentu dipindahkan secara otomatis ke tingkat penyimpanan dingin atau arsip, untuk tujuan pengoptimalan biaya.

Pertimbangkan untuk menggunakan kebijakan pengelolaan siklus hidup untuk mengatur siklus hidup blob untuk semua penyewa, atau untuk subset penyewa. Kebijakan pengelolaan siklus hidup dapat diterapkan ke kontainer blob, atau ke subset blob dalam kontainer. Namun, ada batasan jumlah aturan yang dapat Anda tentukan dalam kebijakan pengelolaan siklus hidup. Pastikan Anda merencanakan dan menguji penggunaan fitur ini di lingkungan multi-penyewa, dan pertimbangkan untuk menyebarkan beberapa akun penyimpanan, jika Anda akan melebihi batas.

Penyimpanan yang tidak bisa diubah

Saat Anda mengonfigurasi penyimpanan blob yang tidak berubah di kontainer penyimpanan dengan kebijakan retensi berbasis waktu, Azure Storage mencegah penghapusan atau modifikasi data sebelum waktu yang ditentukan. Pencegahan diberlakukan pada lapisan akun penyimpanan dan berlaku bagi semua pengguna. Bahkan administrator organisasi Anda tidak dapat menghapus data yang tidak dapat berubah.

Penyimpanan yang tidak berubah dapat berguna saat Anda bekerja dengan penyewa yang memiliki persyaratan hukum atau kepatuhan untuk menyimpan data atau catatan. Namun, Anda harus mempertimbangkan bagaimana fitur ini digunakan dalam konteks siklus hidup penyewa Anda. Misalnya, jika penyewa di-offboard dan meminta penghapusan data, Anda mungkin tidak dapat memenuhi permintaan mereka. Jika Anda menggunakan penyimpanan yang tidak berubah untuk data penyewa Anda, pertimbangkan cara Anda mengatasi masalah ini dalam persyaratan layanan Anda.

Salinan sisi server

Dalam sistem multi-penyewa, terkadang data harus dipindahkan dari satu akun penyimpanan ke akun penyimpanan lainnya. Misalnya, jika Anda memindahkan penyewa di antara stempel penyebaran atau menyeimbangkan ulang kumpulan akun penyimpanan yang disebar, Anda perlu menyalin atau memindahkan data penyewa tertentu. Saat bekerja dengan data dalam jumlah besar, sebaiknya gunakan API salinan sisi server untuk mengurangi waktu yang diperlukan untuk memigrasikan data.

Alat AzCopy adalah aplikasi yang dapat Anda jalankan dari komputer Anda sendiri, atau dari mesin virtual, untuk mengelola proses salinan. AzCopy kompatibel dengan fitur salinan sisi server, dan menyediakan antarmuka baris perintah yang dapat ditulis yang dapat dijalankan dari solusi Anda sendiri. AzCopy juga berguna untuk mengunggah dan mengunduh data dalam jumlah besar.

Jika Anda perlu menggunakan API salinan sisi server langsung dari kode Anda, pertimbangkan untuk menggunakan Put Block From URL API, Put Page From URL API, Append Block From URL API, dan Copy Blob From URL API saat bekerja dengan blob yang lebih kecil.

Replikasi objek

Fitur Replikasi objek secara otomatis mereplikasi data antara akun penyimpanan sumber dan tujuan. Replikasi objek bersifat asinkron. Dalam solusi multi-penyewa, fitur ini dapat berguna saat Anda perlu terus mereplikasi data antara stempel penyebaran, atau dalam implementasi pola Geode.

Enkripsi

Azure Storage memungkinkan Anda menyediakan kunci enkripsi untuk data Anda. Dalam solusi multi-penyewa, pertimbangkan untuk menggabungkan kemampuan ini dengan cakupan enkripsi, yang memungkinkan Anda menentukan kunci enkripsi yang berbeda untuk penyewa yang berbeda, meskipun data mereka disimpan di akun penyimpanan yang sama. Dengan menggunakan fitur ini bersama-sama, Anda juga dapat memberi penyewa kontrol atas data mereka sendiri. Jika perlu menonaktifkan akun, mereka dapat menghapus kunci enkripsi dan data tidak dapat diakses lagi.

Pemantauan

Saat bekerja dengan solusi multi-penyewa, pertimbangkan apakah Anda perlu mengukur penggunaan untuk setiap penyewa, dan tentukan metrik tertentu yang perlu dilacak, seperti jumlah penyimpanan yang digunakan untuk setiap penyewa (kapasitas), atau jumlah operasi yang dilakukan untuk setiap data penyewa. Anda juga dapat menggunakan alokasi biaya untuk melacak biaya penggunaan setiap penyewa dan mengaktifkan penagihan balik di beberapa langganan.

Azure Storage dilengkapi dengan kemampuan pemantauan bawaan. Layanan yang akan Anda gunakan dalam akun Azure Storage perlu dipertimbangkan. Misalnya, saat Anda bekerja dengan blob, kapasitas total akun penyimpanan dapat dilihat, tetapi tidak satu kontainer pun. Sebaliknya, saat Anda bekerja dengan berbagi file, kapasitas untuk setiap berbagi dapat dilihat, tetapi tidak untuk setiap folder.

Anda juga dapat mencatat semua permintaan yang dibuat untuk Azure Storage, lalu Anda dapat mengumpulkan dan menganalisis log tersebut. Ini memberikan lebih banyak fleksibilitas dalam cara mengumpulkan dan mengelompokkan data untuk setiap penyewa. Namun, dalam solusi yang menciptakan permintaan volume tinggi untuk Azure Storage, Anda perlu mempertimbangkan apakah manfaat yang Anda peroleh dari pendekatan ini seimbang dengan biaya yang dipakai dalam mengambil dan memproses log tersebut.

Inventaris Azure Storage menyediakan pendekatan lain untuk mengukur ukuran total kontainer blob.

Model isolasi

Saat bekerja dengan sistem multi-penyewa menggunakan Azure Storage, Anda perlu membuat keputusan tentang tingkat isolasi yang ingin Anda gunakan. Azure Storage mendukung beberapa model isolasi.

Akun Storage per penyewa

Tingkat isolasi terkuat adalah menyebarkan akun penyimpanan khusus untuk penyewa. Ini memastikan bahwa semua kunci penyimpanan diisolasi dan dapat diputar secara independen. Pendekatan ini memungkinkan Anda menskalakan solusi Anda untuk menghindari batas dan kuota yang berlaku untuk setiap akun penyimpanan, tetapi Anda juga perlu mempertimbangkan jumlah maksimum akun penyimpanan yang dapat digunakan dalam satu langganan Azure.

Catatan

Azure Storage memiliki banyak kuota dan batasan yang harus dipertimbangkan saat memilih model isolasi. Ini termasuk batas layanan Azure, target skalabilitas, dan target skalabilitas untuk penyedia sumber daya Azure Storage.

Selain itu, setiap komponen Azure Storage memberikan opsi lebih lanjut untuk isolasi penyewa.

Model isolasi penyimpanan blob

Tabel berikut ini meringkas perbedaan antara model isolasi penyewaan utama untuk blob Azure Storage:

Pertimbangan Kontainer blob bersama Kontainer blob per penyewa Akun Storage per penyewa
Isolasi data Sedang rendah. Menggunakan jalur untuk mengidentifikasi data setiap penyewa, atau namespace hierarkis Medium. Gunakan URL SAS cakupan kontainer untuk mendukung isolasi keamanan Sangat Penting
Isolasi performa Kurang Penting Rendah. Sebagian besar kuota dan batasan berlaku untuk seluruh akun penyimpanan Sangat Penting
Kompleksitas penyebaran Kurang Penting Medium Sangat Penting
Kompleksitas operasional Kurang Penting Medium Sangat Penting
Contoh skenario Menyimpan sejumlah kecil blob per penyewa Menerbitkan URL SAS yang dilingkup penyewa Stempel penyebaran terpisah untuk setiap penyewa

Kontainer blob bersama

Saat bekerja dengan penyimpanan blob, Anda dapat memilih untuk menggunakan kontainer blob bersama, maka Anda dapat menggunakan jalur blob untuk memisahkan data untuk setiap penyewa:

ID Penyewa Contoh jalur blob
tenant-a https://contoso.blob.core.windows.net/sharedcontainer/tenant-a/blob1.mp4
tenant-b https://contoso.blob.core.windows.net/sharedcontainer/tenant-b/blob2.mp4

Meskipun pendekatan ini mudah diterapkan, dalam banyak skenario, jalur blob tidak memberikan isolasi yang cukup di seluruh penyewa. Ini karena penyimpanan blob biasanya tidak memberikan konsep direktori atau folder. Ini berarti Anda tidak dapat menetapkan akses ke semua blob dalam jalur yang ditentukan. Namun, Azure Storage menyediakan kemampuan untuk mencantumkan (menyebutkan) blob yang dimulai dengan awalan tertentu, yang dapat berguna saat Anda bekerja dengan kontainer blob bersama dan tidak memerlukan kontrol akses tingkat direktori.

Fitur namespace layanan hierarkis di Azure Storage menyediakan kemampuan untuk memiliki konsep direktori atau folder yang lebih kuat, termasuk kontrol akses khusus direktori. Ini bisa berguna dalam beberapa skenario multi-penyewa di mana Anda memiliki kontainer blob bersama, tetapi Anda ingin memberikan akses ke data penyewa tunggal.

Dalam beberapa solusi multi-penyewa, Anda mungkin hanya perlu menyimpan satu blob atau serangkaian blob untuk setiap penyewa, seperti ikon penyewa untuk menyesuaikan antarmuka pengguna. Dalam skenario ini, satu kontainer blob bersama mungkin cukup. Anda dapat menggunakan pengidentifikasi penyewa sebagai nama blob, lalu membaca blob tertentu, bukan menyebutkan jalur blob.

Saat Anda bekerja dengan kontainer bersama, pertimbangkan apakah Anda perlu melacak data dan penggunaan layanan Azure Storage untuk setiap penyewa, dan merencanakan pendekatan untuk melakukannya. Lihat Pemantauan untuk informasi lebih lanjut.

Kontainer blob per penyewa

Anda dapat membuat kontainer blob individu untuk setiap penyewa dalam satu akun penyimpanan. Tidak ada batasan jumlah kontainer blob yang dapat Anda buat, dalam akun penyimpanan.

Dengan membuat kontainer untuk setiap penyewa, Anda dapat menggunakan kontrol akses Azure Storage, termasuk SAS, untuk mengelola akses untuk setiap data penyewa. Anda juga dapat memantau kapasitas yang digunakan setiap kontainer dengan mudah.

Model isolasi penyimpanan file

Tabel berikut ini meringkas perbedaan antara model isolasi penyewaan utama untuk file Azure Storage:

Pertimbangan Berbagi file bersama Berbagi file per penyewa Akun Storage per penyewa
Isolasi data Sedang-tinggi. Menerapkan aturan otorisasi untuk file dan direktori khusus penyewa Sedang-tinggi Sangat Penting
Isolasi performa Kurang Penting Sedang rendah. Sebagian besar kuota dan batasan berlaku untuk seluruh akun penyimpanan, tetapi menetapkan kuota ukuran pada tingkat per berbagi Sangat Penting
Kompleksitas penyebaran Kurang Penting Medium Sangat Penting
Kompleksitas operasional Kurang Penting Medium Sangat Penting
Contoh skenario Aplikasi mengontrol semua akses ke file Penyewa mengakses file mereka sendiri Stempel penyebaran terpisah untuk setiap penyewa

Berbagi file bersama

Saat bekerja dengan berbagi file, Anda dapat memilih untuk menggunakan berbagi file bersama, kemudian menggunakan jalur file untuk memisahkan data untuk setiap penyewa:

ID Penyewa Contoh jalur file
tenant-a https://contoso.file.core.windows.net/share/tenant-a/blob1.mp4
tenant-b https://contoso.file.core.windows.net/share/tenant-b/blob2.mp4

Saat Anda menggunakan aplikasi yang dapat berkomunikasi menggunakan protokol Server Message Block (SMB), dan saat Anda menggunakan Active Directory Domain Services baik lokal maupun di Azure, berbagi file mendukung otorisasi di tingkat berbagi dan direktori/file.

Dalam skenario lain, pertimbangkan untuk menggunakan SAS untuk memberikan akses ke berbagi file atau file tertentu. Saat menggunakan SAS, Anda tidak dapat memberikan akses ke direktori.

Saat Anda bekerja dengan berbagi file bersama, pertimbangkan apakah Anda perlu melacak data dan penggunaan layanan Azure Storage untuk setiap penyewa, dan kemudian merencanakan pendekatan untuk melakukannya (seperlunya). Lihat Pemantauan untuk informasi lebih lanjut.

Berbagi file per penyewa

Anda dapat membuat berbagi file individu untuk setiap penyewa, dalam satu akun penyimpanan. Tidak ada batasan jumlah berbagi file yang dapat dibuat dalam akun penyimpanan.

Dengan membuat berbagi file untuk setiap penyewa, Anda dapat menggunakan kontrol akses Azure Storage, termasuk SAS, untuk mengelola akses untuk setiap data penyewa. Anda juga dapat memantau kapasitas yang digunakan setiap berbagi file dengan mudah.

Model isolasi penyimpanan tabel

Tabel berikut ini meringkas perbedaan antara model isolasi penyewaan utama untuk tabel Azure Storage:

Pertimbangan Tabel bersama dengan kunci partisi per penyewa Tabel per penyewa Akun Storage per penyewa
Isolasi data Rendah. Aplikasi memberlakukan isolasi Sedang rendah Sangat Penting
Isolasi performa Kurang Penting Rendah. Sebagian besar kuota dan batasan berlaku untuk seluruh akun penyimpanan Sangat Penting
Kompleksitas penyebaran Kurang Penting Medium Sangat Penting
Kompleksitas operasional Kurang Penting Medium Sangat Penting
Contoh skenario Solusi multipenyewa besar dengan tingkat aplikasi bersama Menerbitkan URL SAS yang dilingkup penyewa Stempel penyebaran terpisah untuk setiap penyewa

Tabel bersama dengan kunci partisi per penyewa

Saat menggunakan penyimpanan tabel dengan satu tabel bersama, Anda dapat mempertimbangkan untuk menggunakan dukungan bawaan untuk partisi. Setiap entitas harus menyertakan kunci partisi. Pengidentifikasi penyewa sering kali menjadi pilihan yang tepat untuk kunci partisi.

Tanda tangan dan kebijakan akses bersama memungkinkan Anda menentukan rentang kunci partisi, dan Azure Storage memastikan bahwa permintaan yang berisi tanda tangan hanya dapat mengakses rentang kunci partisi yang ditentukan. Hal ini memungkinkan Anda menerapkan pola Kunci Valet, yang memungkinkan klien yang tak tepercaya untuk mengakses partisi penyewa tunggal, tanpa mempengaruhi penyewa lain.

Untuk aplikasi skala tinggi, pertimbangkan throughput maksimum setiap partisi tabel dan akun penyimpanan.

Tabel per penyewa

Anda dapat membuat tabel individu untuk setiap penyewa dalam satu akun penyimpanan. Tidak ada batasan jumlah tabel yang dapat dibuat dalam akun penyimpanan.

Dengan membuat tabel untuk setiap penyewa, Anda dapat menggunakan kontrol akses Azure Storage, termasuk SAS, untuk mengelola akses untuk setiap data penyewa.

Model isolasi penyimpanan antrean

Tabel berikut ini meringkas perbedaan antara model isolasi penyewaan utama untuk antrean Azure Storage:

Pertimbangan Antrean bersama Antrean per penyewa Akun Storage per penyewa
Isolasi data Kurang Penting Sedang rendah Sangat Penting
Isolasi performa Kurang Penting Rendah. Sebagian besar kuota dan batasan berlaku untuk seluruh akun penyimpanan Sangat Penting
Kompleksitas penyebaran Kurang Penting Medium Sangat Penting
Kompleksitas operasional Kurang Penting Medium Sangat Penting
Contoh skenario Solusi multipenyewa besar dengan tingkat aplikasi bersama Menerbitkan URL SAS yang dilingkup penyewa Stempel penyebaran terpisah untuk setiap penyewa

Antrean bersama

Jika Anda memilih untuk berbagi antrean, pertimbangkan kuota dan batasan yang berlaku. Dalam solusi dengan volume permintaan tinggi, pertimbangkan apakah throughput target 2.000 pesan per detik sudah cukup.

Antrean tidak menyediakan partisi atau sub-antrean, sehingga data untuk semua penyewa dapat disilangkan.

Antrean per penyewa

Anda dapat membuat antrean individu untuk setiap penyewa dalam satu akun penyimpanan. Tidak ada batasan jumlah antrean yang dapat dibuat dalam akun penyimpanan.

Dengan membuat antrean untuk setiap penyewa, Anda dapat menggunakan kontrol akses Azure Storage, termasuk SAS, untuk mengelola akses untuk setiap data penyewa.

Saat Anda membuat antrean secara dinamis untuk setiap penyewa, pertimbangkan bagaimana tingkat aplikasi Anda akan menggunakan pesan dari antrean masing-masing penyewa. Untuk skenario tingkat lanjut, pertimbangkan untuk menggunakan Azure Bus Layanan, yang mendukung fitur seperti topik dan langganan, sesi, dan penerusan otomatis pesan, yang dapat berguna dalam solusi multi-penyewa.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

  • John Downs | Teknisi Pelanggan Utama, FastTrack untuk Azure

Kontributor lain:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya

Tinjau pendekatan penyimpanan dan data untuk multi-penyewaan.