Mengelola penghuni di beberapa produk SaaS pada satu bidang kontrol - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola penghuni di beberapa produk SaaS pada satu bidang kontrol

Ramanna Avancha, Kishan Kavala, Anusha Mandava, dan Jenifer Pascal, Amazon Web Services

Ringkasan

Pola ini menunjukkan cara mengelola siklus hidup penyewa di beberapa produk perangkat lunak sebagai layanan (SaaS) pada satu bidang kontrol di AWS Cloud. Arsitektur referensi yang disediakan dapat membantu organisasi mengurangi implementasi fitur bersama yang berlebihan di seluruh produk SaaS masing-masing dan memberikan efisiensi tata kelola dalam skala besar.

Perusahaan besar dapat memiliki beberapa produk SaaS di berbagai unit bisnis. Produk-produk ini sering perlu disediakan untuk digunakan oleh penyewa eksternal pada tingkat langganan yang berbeda. Tanpa solusi penyewa umum, administrator TI harus menghabiskan waktu mengelola fitur yang tidak terdiferensiasi di beberapa SaaS APIs, alih-alih berfokus pada pengembangan fitur produk inti.

Solusi penyewa umum yang disediakan dalam pola ini dapat membantu memusatkan pengelolaan banyak fitur produk SaaS bersama organisasi, termasuk yang berikut:

  • Keamanan

  • Penyediaan penyewa

  • Penyimpanan data penyewa

  • Komunikasi penyewa

  • Manajemen produk

  • Pencatatan dan pemantauan metrik

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Pengetahuan tentang Amazon Cognito atau penyedia identitas pihak ketiga (iDP)

  • Pengetahuan tentang Amazon API Gateway

  • Pengetahuan tentang AWS Lambda

  • Pengetahuan tentang Amazon DynamoDB

  • Pengetahuan tentang AWS Identity and Access Management (IAM)

  • Pengetahuan tentang AWS Step Functions

  • Pengetahuan tentang AWS CloudTrail dan Amazon CloudWatch

  • Pengetahuan tentang pustaka dan kode Python

  • Pengetahuan tentang SaaS APIs, termasuk berbagai jenis pengguna (organisasi, penyewa, administrator, dan pengguna aplikasi), model berlangganan, dan model isolasi penyewa

  • Pengetahuan tentang persyaratan SaaS multi-produk organisasi Anda dan langganan multi-penyewa

Batasan

  • Integrasi antara solusi penyewa umum dan produk SaaS individu tidak tercakup dalam pola ini.

  • Pola ini menerapkan layanan Amazon Cognito hanya dalam satu Wilayah AWS.

Arsitektur

Tumpukan teknologi target

  • Amazon API Gateway

  • Amazon Cognito

  • AWS CloudTrail

  • Amazon CloudWatch

  • Amazon DynamoDB

  • IAM

  • AWS Lambda

  • Amazon Simple Storage Service (Amazon S3)

  • Amazon Simple Notification Service (Amazon SNS)

  • Fungsi AWS Step

Arsitektur target

Diagram berikut menunjukkan contoh alur kerja untuk mengelola siklus hidup penyewa di beberapa produk SaaS pada satu bidang kontrol di AWS Cloud.

Alur kerja untuk mengelola siklus hidup penyewa pada satu bidang kontrol.

Diagram menunjukkan alur kerja berikut:

  1. Pengguna AWS memulai penyediaan penyewa, penyediaan produk, atau tindakan terkait administrasi dengan melakukan panggilan ke titik akhir API Gateway.

  2. Pengguna diautentikasi oleh token akses yang diambil dari kumpulan pengguna Amazon Cognito, atau IDP lain.

  3. Tugas penyediaan atau administrasi individu dijalankan oleh fungsi Lambda yang terintegrasi dengan titik akhir API Gateway API.

  4. Administrasi APIs untuk solusi penyewa umum (untuk penyewa, produk, dan pengguna) mengumpulkan semua parameter input, header, dan token yang diperlukan. Kemudian, administrasi APIs memanggil fungsi Lambda terkait.

  5. Izin IAM untuk administrasi APIs dan fungsi Lambda divalidasi oleh layanan IAM.

  6. Fungsi Lambda menyimpan dan mengambil data dari katalog (untuk penyewa, produk, dan pengguna) di DynamoDB dan Amazon S3.

  7. Setelah izin divalidasi, alur kerja AWS Step Functions dipanggil untuk melakukan tugas tertentu. Contoh dalam diagram menunjukkan alur kerja penyediaan penyewa.

  8. Tugas alur kerja AWS Step Functions individual dijalankan dalam alur kerja yang telah ditentukan (state machine).

  9. Setiap data penting yang diperlukan untuk menjalankan fungsi Lambda yang terkait dengan setiap tugas alur kerja diambil dari DynamoDB atau Amazon S3. Sumber daya AWS lainnya mungkin perlu disediakan dengan menggunakan templat CloudFormation AWS.

  10. Jika diperlukan, alur kerja mengirimkan permintaan untuk menyediakan sumber daya AWS tambahan untuk produk SaaS tertentu ke akun AWS produk tersebut.

  11. Jika permintaan berhasil atau gagal, alur kerja akan menerbitkan pembaruan status sebagai pesan ke topik Amazon SNS.

  12. Amazon SNS berlangganan topik Amazon SNS alur kerja Step Functions.

  13. Amazon SNS kemudian mengirimkan pembaruan status alur kerja kembali ke pengguna AWS.

  14. Log dari setiap tindakan layanan AWS, termasuk jejak audit panggilan API, dikirim ke CloudWatch. Aturan dan alarm khusus dapat dikonfigurasi CloudWatch untuk setiap kasus penggunaan.

  15. Log diarsipkan dalam bucket Amazon S3 untuk tujuan audit.

Otomatisasi dan skala

Pola ini menggunakan CloudFormation template untuk membantu mengotomatiskan penerapan solusi penyewa umum. Template juga dapat membantu Anda dengan cepat meningkatkan atau menurunkan sumber daya terkait.

Untuk informasi selengkapnya, lihat Bekerja dengan CloudFormation templat AWS di Panduan CloudFormation Pengguna AWS.

Alat

Layanan AWS

  • Amazon API Gateway membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.

  • Amazon Cognito menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk aplikasi web dan seluler.

  • AWS CloudTrail membantu Anda mengaudit tata kelola, kepatuhan, dan risiko operasional akun AWS Anda.

  • Amazon CloudWatch membantu Anda memantau metrik sumber daya AWS Anda dan aplikasi yang Anda jalankan di AWS secara real time.

  • Amazon DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

  • AWS Lambda adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.

  • AWS Step Functions adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan fungsi AWS Lambda dan layanan AWS lainnya untuk membangun aplikasi yang penting bagi bisnis.

Praktik terbaik

Solusi dalam pola ini menggunakan pesawat kontrol tunggal untuk mengelola orientasi beberapa penyewa dan untuk menyediakan akses ke beberapa produk SaaS. Bidang kontrol membantu pengguna administratif mengelola empat bidang khusus fitur lainnya:

  • Pesawat keamanan

  • Bidang alur kerja

  • Pesawat komunikasi

  • Penebangan dan pemantauan pesawat

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Tetapkan persyaratan untuk platform SaaS multi-penyewa Anda.

Tetapkan persyaratan terperinci untuk hal-hal berikut:

  • Penyewa

  • Pengguna

  • Peran

  • Produk SaaS

  • Langganan

  • Pertukaran profil

Arsitek cloud, administrator sistem AWS

Siapkan layanan Amazon Cognito.

Ikuti petunjuk di Memulai Amazon Cognito di Panduan Pengembang Amazon Cognito.

Arsitek awan

Konfigurasikan kebijakan IAM yang diperlukan.

Buat kebijakan IAM yang diperlukan untuk kasus penggunaan Anda. Kemudian, petakan kebijakan ke peran IAM di Amazon Cognito.

Untuk informasi selengkapnya, lihat Mengelola akses menggunakan kebijakan dan kontrol akses berbasis peran di Panduan Pengembang Amazon Cognito.

Administrator cloud, arsitek Cloud, keamanan AWS IAM

Konfigurasikan izin API yang diperlukan.

Siapkan izin akses API Gateway dengan menggunakan peran dan kebijakan IAM, serta otorisasi Lambda.

Untuk petunjuknya, lihat bagian berikut dari Panduan Pengembang Amazon API Gateway:

Administrator cloud, Arsitek cloud
TugasDeskripsiKeterampilan yang dibutuhkan

Buat katalog data yang diperlukan.

  1. Buat tabel DynamoDB untuk menyimpan data untuk katalog pengguna. Pastikan Anda menyertakan atribut dan peran pengguna. Selain itu, pastikan Anda melakukan pemodelan data pada tabel katalog untuk mempertahankan atribut yang diperlukan dan opsional untuk setiap pengguna dan peran.

  2. Buat tabel DynamoDB untuk menyimpan data untuk katalog produk. Pastikan Anda memodelkan kasus penggunaan khusus untuk produk SaaS Anda.

  3. Buat tabel DynamoDB untuk menyimpan data untuk katalog penyewa. Pastikan Anda menyiapkan model berlangganan untuk penyewa, produk, dan lisensi untuk langganan dan tag multi-SaaS.

Untuk informasi selengkapnya, lihat Menyiapkan DynamoDB di Panduan Pengembang Amazon DynamoDB.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Buat fungsi Lambda dan API Gateway APIs untuk menjalankan tugas bidang kontrol yang diperlukan.

Buat fungsi Lambda terpisah dan API Gateway APIs untuk menambahkan, menghapus, dan mengelola hal-hal berikut:

  • Pengguna

  • Penyewa

  • Produk

Untuk informasi selengkapnya, lihat Menggunakan AWS Lambda dengan Amazon API Gateway di Panduan Pengembang AWS Lambda.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Identifikasi tugas yang harus dijalankan oleh alur kerja AWS Step Functions.

Identifikasi dan dokumentasikan persyaratan alur kerja AWS Step Functions terperinci untuk hal-hal berikut:

  • Pengguna

  • Penyewa

  • Produk

penting

Pastikan bahwa pemangku kepentingan utama menyetujui persyaratan.

Pemilik aplikasi

Buat alur kerja AWS Step Functions yang diperlukan.

  1. Buat alur kerja yang diperlukan untuk pengguna, penyewa, dan produk di AWS Step Functions. Untuk informasi selengkapnya, lihat Panduan Pengembang AWS Step Functions.

  2. Identifikasi mekanisme coba lagi dan penanganan kesalahan. Untuk informasi selengkapnya, lihat Menangani kesalahan, mencoba ulang, dan menambahkan peringatan ke Mesin Status Fungsi Langkah di Blog AWS.

  3. Menerapkan langkah-langkah alur kerja dengan menggunakan fungsi Lambda. Untuk petunjuknya, lihat Membuat mesin status Step Functions yang menggunakan Lambda di Panduan Pengembang AWS Step Functions.

  4. Integrasikan layanan eksternal apa pun dengan AWS Step Functions sesuai kebutuhan.

  5. Pertahankan status setiap alur kerja dalam tabel DynamoDB dan komunikasikan setiap status alur kerja menggunakan Amazon SNS.

Pengembang aplikasi, Membangun prospek
TugasDeskripsiKeterampilan yang dibutuhkan

Buat topik Amazon SNS.

Buat topik Amazon SNS untuk menerima pemberitahuan tentang hal berikut:

  • Status alur kerja

  • Kesalahan

  • Percobaan ulang

Untuk informasi selengkapnya, lihat Membuat topik SNS di Panduan Pengembang Amazon SNS.

Pemilik aplikasi, arsitek Cloud

Berlangganan titik akhir untuk setiap topik Amazon SNS.

Untuk menerima pesan yang dipublikasikan ke topik Amazon SNS, Anda harus berlangganan titik akhir untuk setiap topik.

Untuk informasi selengkapnya, lihat Berlangganan topik Amazon SNS di Panduan Pengembang Amazon SNS.

Pengembang aplikasi, arsitek Cloud
TugasDeskripsiKeterampilan yang dibutuhkan

Aktifkan logging untuk setiap komponen solusi penyewa umum.

Aktifkan logging di tingkat komponen untuk setiap sumber daya dalam solusi penyewa umum yang Anda buat.

Untuk petunjuk, lihat yang berikut ini:

catatan

Anda dapat mengkonsolidasikan log untuk setiap sumber daya ke akun logging terpusat dengan menggunakan kebijakan IAM. Untuk informasi selengkapnya, lihat Pencatatan terpusat dan pagar keamanan beberapa akun.

Pengembang aplikasi, administrator sistem AWS, administrator Cloud
TugasDeskripsiKeterampilan yang dibutuhkan

Buat CloudFormation template.

Otomatiskan penerapan dan pemeliharaan solusi penyewa umum penuh dan semua komponennya dengan menggunakan templat. CloudFormation

Untuk informasi selengkapnya, lihat Panduan CloudFormation Pengguna AWS.

Pengembang aplikasi, DevOps insinyur, CloudFormation pengembang

Sumber daya terkait