WordPress di Azure Kubernetes Service

Azure Cache for Redis
Azure Front Door
Azure Kubernetes Service (AKS)
Azure Load Balancer
Azure NetApp Files

Artikel ini menjelaskan solusi kontainer untuk menghosting instalasi WordPress yang besar dan intensif penyimpanan di Azure. Solusi ini memaksimalkan skalabilitas dan keamanan. Komponen utama termasuk Azure Front Door, Azure Kubernetes Service (AKS), dan Azure NetApp Files.

Arsitektur

Architecture diagram of an AKS WordPress deployment. Azure NetApp Files stores static content. Private endpoints provide access to other services.

Unduh file Visio arsitektur ini.

Catatan

Anda dapat memperluas solusi ini dengan menerapkan tips dan rekomendasi yang tidak spesifik untuk metode hosting WordPress tertentu. Untuk tips umum untuk menyebarkan penginstalan WordPress, lihat WordPress di Azure.

Aliran data

  • Pengguna mengakses situs web front-end melalui Azure Front Door dengan Azure Web Application Firewall diaktifkan.
  • Azure Front Door menggunakan instans internal Azure Load Balancer sebagai asal. Load balancer internal adalah komponen tersembunyi dari AKS. Azure Front Door mengambil data apa pun yang tidak di-cache.
  • Load balancer internal mendistribusikan lalu lintas masuk ke pod dalam AKS.
  • Azure Key Vault menyimpan rahasia seperti kunci privat, yang merupakan sertifikat X.509.
  • Aplikasi WordPress menggunakan titik akhir privat untuk mengakses instans server fleksibel Azure Database for MySQL. Aplikasi WordPress mengambil informasi dinamis dari layanan database terkelola ini.
  • Semua konten statis dihosting di Azure NetApp Files. Solusi ini menggunakan driver Astra Trident Container Storage Interface (CSI) dengan protokol NFS.

Komponen

  • Azure Front Door adalah jaringan pengiriman konten cloud modern. Sebagai jaringan server terdistribusi, Azure Front Door secara efisien mengirimkan konten web kepada pengguna. Jaringan pengiriman konten meminimalkan latensi dengan menyimpan konten cache di server edge di lokasi titik kehadiran di dekat pengguna akhir.
  • Azure Virtual Network menyediakan cara bagi sumber daya yang disebarkan untuk berkomunikasi satu sama lain, internet, dan jaringan lokal. Jaringan virtual menyediakan isolasi dan segmentasi. Mereka juga memfilter dan merutekan lalu lintas dan memungkinkan untuk membangun koneksi antara berbagai lokasi. Dalam solusi ini, kedua jaringan terhubung melalui peering jaringan virtual.
  • Azure DDoS Protection menyediakan fitur mitigasi DDoS yang ditingkatkan. Saat Anda menggabungkan fitur-fitur ini dengan praktik terbaik desain aplikasi, fitur ini membantu melindungi dari serangan DDoS. Anda harus mengaktifkan DDoS Protection pada jaringan virtual perimeter.
  • Kelompok keamanan jaringan menggunakan daftar aturan keamanan untuk mengizinkan atau menolak lalu lintas jaringan masuk atau keluar berdasarkan alamat IP sumber atau tujuan, port, dan protokol. Dalam subnet skenario ini, aturan kelompok keamanan jaringan membatasi arus lalu lintas antar komponen aplikasi.
  • Load Balancer mendistribusikan lalu lintas masuk berdasarkan aturan dan hasil pemeriksaan kesehatan. Load balancer memberikan latensi rendah dan throughput tinggi. Dengan menyebarkan lalu lintas di beberapa server, load balancer menambahkan skalabilitas ke aplikasi Protokol Kontrol Transmisi (TCP) dan Protokol Datagram Pengguna (UDP). Dalam skenario ini, load balancer mendistribusikan lalu lintas dari jaringan pengiriman konten ke server web front-end.
  • AKS adalah layanan Kubernetes yang dikelola sepenuhnya yang dapat Anda gunakan untuk menyebarkan, mengelola, dan menskalakan aplikasi dalam kontainer.
  • Azure NetApp Files menyediakan solusi penyimpanan intensif performa dan sensitif latensi yang dikelola sepenuhnya. Dalam solusi ini, Azure NetApp Files menghosting semua konten WordPress sehingga semua pod memiliki akses ke data.
  • Azure Cache for Redis adalah penyimpanan data dalam memori. Anda dapat menggunakan Azure Cache for Redis untuk menghosting cache kunci-nilai dalam solusi ini. Cache tersebut dibagikan di antara semua pod dan digunakan untuk plug-in pengoptimalan performa WordPress.
  • Key Vault menyimpan dan mengontrol akses ke kata sandi, sertifikat, dan kunci.
  • Azure Database for MySQL - server fleksibel adalah layanan database relasional yang didasarkan pada mesin database MySQL sumber terbuka. Opsi penyebaran server yang fleksibel adalah layanan terkelola penuh yang memberikan kontrol dan fleksibilitas terperinci atas fungsi manajemen database dan pengaturan konfigurasi. Dalam skenario ini, Azure Database for MySQL menyimpan data WordPress.

Alternatif

  • Alih-alih menggunakan layanan terkelola Azure Cache for Redis, Anda dapat menggunakan pod yang dihost sendiri dalam kluster AKS sebagai cache.
  • Alih-alih menggunakan solusi penyimpanan terkelola seperti Azure NetApp Files, Anda dapat menggunakan solusi yang dihost sendiri seperti penyimpanan Rook-Ceph. Untuk informasi selengkapnya, lihat cara Menggunakan Rook Ceph di Azure Kubernetes Service.

Detail skenario

Contoh skenario ini sesuai untuk penginstalan WordPress yang besar dan intensif penyimpanan. Model penyebaran ini dapat menskalakan untuk memenuhi lonjakan lalu lintas ke situs.

Kemungkinan kasus penggunaan

  • Blog lalu lintas tinggi yang menggunakan WordPress sebagai sistem manajemen konten mereka
  • Situs web bisnis atau e-niaga yang menggunakan WordPress

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Keandalan

Keandalan memastikan aplikasi Anda dapat mencapai komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keandalan.

Pertimbangkan rekomendasi berikut saat Anda menyebarkan solusi ini:

  • Solusi ini menggunakan pod di AKS dan load balancer untuk mendistribusikan lalu lintas ingress. Pendekatan ini memberikan ketersediaan tinggi meskipun ada kegagalan pod.
  • Solusi ini mendukung beberapa wilayah, replikasi data, dan penskalaan otomatis. Komponen mendistribusikan lalu lintas ke pod. Pemeriksaan kesehatan digunakan sehingga lalu lintas didistribusikan hanya ke pod yang sehat.
  • Semua komponen jaringan dihadapkan oleh Azure Front Door. Pendekatan ini membuat sumber daya jaringan dan aplikasi tahan terhadap masalah yang jika tidak akan mengganggu lalu lintas dan memengaruhi akses pengguna akhir.
  • Azure Front Door adalah layanan global yang mendukung set skala komputer virtual yang disebarkan di wilayah lain.
  • Saat Anda menggunakan Azure Front Door untuk menyimpan semua respons, Anda mendapatkan manfaat ketersediaan kecil. Secara khusus, ketika asal tidak merespons, Anda masih dapat mengakses konten. Tetapi penembolokan tidak menyediakan solusi ketersediaan lengkap.
  • Untuk meningkatkan ketersediaan, replikasi penyimpanan Azure NetApp Files antar wilayah yang dipasangkan. Untuk informasi selengkapnya, lihat Replikasi lintas wilayah dengan Azure NetApp Files.
  • Untuk meningkatkan ketersediaan Azure Database for MySQL, ikuti opsi ketersediaan tinggi yang memenuhi kebutuhan Anda.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

Pertimbangkan praktik terbaik berikut saat Anda menyebarkan solusi ini:

  • Gunakan Web Application Firewall di Azure Front Door untuk membantu melindungi lalu lintas jaringan virtual yang mengalir ke tingkat aplikasi front-end. Untuk informasi selengkapnya, lihat Azure Web Application Firewall di Azure Front Door.
  • Jangan izinkan lalu lintas internet keluar mengalir dari tingkat database.
  • Jangan izinkan akses publik ke penyimpanan privat, dan nonaktifkan akses publik ke sumber daya. Gunakan titik akhir privat untuk Azure Database for MySQL, Azure Cache for Redis, Key Vault, dan Azure Container Registry. Untuk informasi selengkapnya, lihat Azure Private Link.

Untuk informasi selengkapnya tentang keamanan WordPress, lihat Tips keamanan dan performa WordPress Umum dan dokumentasi keamanan Azure.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

Tinjau pertimbangan biaya berikut saat Anda menyebarkan solusi ini:

  • Ekspektasi lalu lintas (GB/bulan). Volume lalu lintas Anda adalah faktor yang memiliki efek terbesar pada biaya Anda. Jumlah lalu lintas yang Anda terima menentukan jumlah simpul AKS yang Anda butuhkan dan harga untuk transfer data keluar. Volume lalu lintas juga berkorelasi langsung dengan jumlah data yang disediakan oleh jaringan pengiriman konten Anda, di mana biaya transfer data keluar lebih murah.
  • Jumlah data yang dihosting. Penting untuk mempertimbangkan jumlah data yang Anda host, karena harga Azure NetApp Files didasarkan pada kapasitas yang dipesan. Untuk mengoptimalkan biaya, pesan kapasitas minimum yang Anda butuhkan untuk data Anda.
  • Menulis persentase. Pertimbangkan berapa banyak data baru yang Anda tulis ke situs web Anda dan biaya untuk menyimpannya. Untuk penyebaran multi-wilayah, jumlah data baru yang Anda tulis ke situs web Anda berkorelasi dengan jumlah data yang dicerminkan di seluruh wilayah Anda.
  • Konten statis versus dinamis. Pantau performa dan kapasitas penyimpanan database Anda untuk menentukan apakah SKU yang lebih murah dapat mendukung situs Anda. Database menyimpan konten dinamis, dan jaringan pengiriman konten menyimpan konten statis.
  • Pengoptimalan kluster AKS. Untuk mengoptimalkan biaya kluster AKS Anda, ikuti tips umum untuk AKS, seperti panduan tentang ukuran VM dan reservasi Azure. Untuk informasi selengkapnya, lihat Pengoptimalan biaya AKS.

Efisiensi kinerja

Efisiensi performa adalah kemampuan beban kerja Anda untuk diskalakan agar memenuhi permintaan yang diberikan oleh pengguna dengan cara yang efisien. Untuk informasi selengkapnya, lihat Gambaran umum pilar efisiensi performa.

Skenario ini menggunakan pod di AKS untuk menghosting ujung depan. Dengan fitur skala otomatis, jumlah pod yang menjalankan tingkat aplikasi front-end dapat secara otomatis menskalakan sebagai respons terhadap permintaan pelanggan. Mereka juga dapat menskalakan berdasarkan jadwal yang ditentukan. Untuk informasi selengkapnya, lihat Opsi penskalaan untuk aplikasi di Azure Kubernetes Service (AKS).

Penting

Untuk performa terbaik, penting untuk memasang volume persisten yang menggunakan protokol NFS versi 4.1. Contoh YAML berikut menunjukkan cara mengonfigurasi PersistentVolume objek untuk tujuan ini. Perhatikan nilai mountOptions bidang .

kind: PersistentVolume
...
    accessModes:
    - ReadWriteMany
    mountOptions:
    - vers=4.1
    nfs:
      server: xx.xx.xx.xx

Kontributor

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

Penulis utama:

Kontributor lain:

  • Adrian Calinescu | Arsitek Solusi Cloud Senior

Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.

Langkah berikutnya

Dokumentasi produk:

Modul pelatihan Microsoft: