Menggunakan Google Cloud Armor, load balancing, dan Cloud CDN untuk men-deploy frontend global yang dapat diprogram

Last reviewed 2025-04-02 UTC

Dokumen ini memberikan arsitektur referensi untuk aplikasi web yang dihosting di Google Cloud. Arsitektur ini menggunakan frontend global yang menggabungkan Google Cloud praktik terbaik untuk membantu menskalakan, mengamankan, dan mempercepat pengiriman aplikasi yang terhubung ke internet. Arsitektur mencakup dukungan untuk Cloud Build, serta alat continuous integration (CI) dan continuous delivery (CD) pihak ketiga seperti Jenkins dan GitLab. Arsitektur ini ditujukan bagi developer dan pemilik aplikasi yang ingin menskalakan aplikasi mereka dengan load balancer, dan melindungi aplikasi mereka dari serangan berbasis web dan distributed denial of service (DDoS) dengan firewall aplikasi web (WAF).

Arsitektur

Diagram berikut menunjukkan arsitektur yang dijelaskan dalam dokumen ini.

Arsitektur aplikasi web.

Dalam arsitektur ini, aplikasi di-load balance dengan Load Balancer Aplikasi eksternal global, yang mendistribusikan traffic HTTP dan HTTPS di beberapa backend instance, di beberapa region. Cloud CDN mempercepat aplikasi yang terhubung ke internet dengan menggunakan titik kehadiran (PoP) edge Google dan berfungsi dengan Load Balancer Aplikasi eksternal global untuk mengirimkan konten kepada pengguna. Backend dilindungi oleh kebijakan keamanan Google Cloud Armor yang menyediakan pemfilteran Lapisan 7 dengan membersihkan permintaan masuk untuk serangan web umum atau atribut Lapisan 7 lainnya, sehingga membantu memblokir traffic sebelum mencapai layanan backend ber-load balancer. Perlindungan terhadap serangan DDoS volumetrik diaktifkan secara default.

Saat pengguna meminta konten dari layanan Anda, permintaan tersebut akan dikirim ke frontend global untuk aplikasi yang terhubung ke internet, yang disediakan oleh Cross-Cloud Network. Permintaan dievaluasi oleh kebijakan keamanan Google Cloud Armor, dimulai dengan kebijakan keamanan edge Google Cloud Armor. Jika permintaan diizinkan dan dapat dipenuhi oleh Cloud CDN, konten akan diambil dari cache Google Cloud Armor dan dikirim kembali ke pengguna. Jika permintaan menghasilkan cache miss, permintaan tersebut akan dievaluasi oleh kebijakan backend, lalu, sesuai dengan aturan kebijakan, ditolak atau dipenuhi oleh server backend Anda.

Komponen arsitektur

Diagram sebelumnya mencakup komponen berikut:

  • Load Balancer Aplikasi eksternal global: Load Balancer Aplikasi ini adalah load balancer Lapisan 7 berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan layanan. Load Balancer Aplikasi mendistribusikan traffic HTTP dan HTTPS ke backend yang dihosting di berbagai platform. Google Cloud Load Balancer Aplikasi memiliki fitur berikut:

    • Backend yang dapat dikonfigurasi: Arsitektur ini menggunakan dua Grup Instance Terkelola (MIG) di region yang berbeda, tetapi Anda dapat mengonfigurasi backend apa pun yang didukung oleh Load Balancer Aplikasi eksternal global. Anda dapat menggunakan load balancer yang sama untuk GKE, Cloud Run, fungsi Cloud Run, dan aplikasi App Engine, serta aplikasi yang dihosting secara lokal dan di cloud lain menggunakan konfigurasi backend yang berbeda. Untuk mempelajari lebih lanjut, lihat Ringkasan Load Balancer Aplikasi.
    • Pemisahan traffic: Anda dapat menggunakan Load Balancer Aplikasi untuk pengelolaan traffic, termasuk pengelolaan versi software dengan mengirim pengguna yang berbeda ke server backend yang berbeda. Dalam arsitektur yang dijelaskan dalam dokumen ini, terdapat pembagian traffic sederhana 60/40. Namun, Anda dapat mengubah pembagian ini untuk membuat skema pengelolaan traffic yang lebih kompleks. Untuk mempelajari opsi konfigurasi tambahan, lihat waktu tunggu dan percobaan ulang yang dapat dikonfigurasi dan tentukan mode penyeimbangan pilihan Anda.
  • Cloud CDN: Platform Cloud CDN bertindak sebagai cache. Di-deploy dengan server asal untuk menyediakan rangkaian lengkap fitur Cloud CDN, termasuk QUIC dan HTTP/2, serta kontrol pemilihan rute dan caching. Pendekatan ini memungkinkan aplikasi Anda diskalakan secara global tanpa mengorbankan performa, dan juga mengurangi biaya bandwidth dan komputasi front-end. Konfigurasi default yang digunakan front end global didasarkan pada praktik terbaik penayangan konten Cloud CDN dan praktik terbaik keamanan web.

  • Google Cloud Armor: Komponen ini mencakup aturan WAF dan Perlindungan DDoS. Arsitektur ini memiliki konfigurasi dasar Google Cloud Armor berikut, yang membantu memitigasi vektor ancaman umum:

Produk yang digunakan

Arsitektur referensi ini menggunakan produk Google Cloud berikut:

Pertimbangan desain

Bagian ini memberikan panduan untuk membantu Anda menggunakan dokumen ini sebagai titik awal untuk mengembangkan arsitektur yang memenuhi persyaratan spesifik Anda dalam hal keamanan, keandalan, efisiensi operasional, biaya, dan performa.

Keamanan, privasi, dan kepatuhan

Bagian ini menjelaskan faktor tambahan yang harus Anda pertimbangkan saat menggunakan arsitektur referensi ini untuk men-deploy aplikasi web.

Menetapkan dasar pengukuran keamanan

Untuk membantu meningkatkan keamanan Anda lebih lanjut, arsitektur yang dijelaskan dalam dokumen ini juga kompatibel dengan blueprint dasar-dasar Enterprise. Blueprint ini membantu organisasi yang menggunakan Google Cloud untuk membuat dasar keamanan bagi semua workload di masa mendatang, termasuk penyiapan Identity and Access Management (IAM), Cloud Key Management Service, dan Security Command Center.

Melindungi data pengguna dengan Cloud CDN

Dalam arsitektur ini, sebaiknya Anda tidak meng-cache konten khusus pengguna. Untuk menyimpan dalam cache jenis konten HTML (text/html) dan JSON (application/json), tetapkan header cache-control eksplisit dalam respons Cloud CDN. Pastikan Anda tidak menyimpan data satu pengguna dalam cache dan menayangkannya ke semua pengguna.

Mengontrol akses ke aplikasi Anda dengan IAP

Arsitektur ini juga kompatibel dengan Identity-Aware Proxy (IAP). IAP memverifikasi identitas pengguna, lalu menentukan apakah pengguna tersebut harus diizinkan untuk mengakses aplikasi. Untuk mengaktifkan IAP untuk Load Balancer Aplikasi untuk mode eksternal global atau mode klasik, Anda harus mengaktifkannya di layanan backend load balancer. Permintaan HTTP/HTTPS masuk dievaluasi oleh Google Cloud Armor sebelum dikirim untuk load balancing oleh Load Balancer Aplikasi. Jika Google Cloud Armor memblokir permintaan, IAP tidak mengevaluasi permintaan tersebut. Jika Google Cloud Armor mengizinkan permintaan, IAP akan mengevaluasi permintaan tersebut. Permintaan diblokir jika IAP tidak mengautentikasi permintaan. Untuk mempelajari lebih lanjut, lihat Mengintegrasikan Google Cloud Armor dengan produk Google lainnya.

Pengoptimalan biaya

Sebagai panduan umum, penggunaan Cloud CDN bersama dengan Google Cloud Armor dapat membantu meminimalkan efek biaya transfer data keluar.

Cloud CDN

Objek statis yang disajikan ke klien dari cache tidak ditransmisikan melalui load balancer. Strategi caching yang efektif dapat mengurangi jumlah data keluar yang diproses oleh load balancer dan lebih menghemat biaya.

Google Cloud Armor

Google Cloud Armor membantu Anda menurunkan biaya dengan mencegah akun Anda dikenai biaya untuk traffic yang tidak diinginkan. Permintaan yang diblokir oleh Google Cloud Armor tidak menghasilkan respons dari aplikasi Anda, sehingga secara efektif mengurangi jumlah data keluar yang diproses oleh load balancer. Pengaruhnya terhadap biaya Anda bergantung pada persentase traffic yang tidak diinginkan yang diblokir oleh kebijakan keamanan Google Cloud Armor yang Anda terapkan.

Biaya akhir juga dapat bervariasi, bergantung pada jumlah layanan atau aplikasi yang ingin Anda lindungi, jumlah kebijakan dan aturan Google Cloud Armor yang Anda miliki, pengisian dan keluar cache, serta volume data. Untuk mempelajari lebih lanjut, lihat referensi berikut:

Deployment

Untuk men-deploy arsitektur referensi ini, gunakan contoh Terraform. Untuk mempelajari lebih lanjut, lihat file README. Folder web_app_protection_example menyertakan file (main.tf). Kode dalam file ini membuat arsitektur yang dijelaskan dalam dokumen ini, dan memberikan dukungan tambahan untuk deployment otomatis.

Struktur folder di folder Terraform adalah sebagai berikut:

Saat Anda melakukan perubahan pada cabang tempat pipeline Anda didasarkan, perubahan tersebut akan memicu eksekusi pipeline dan perubahan akan diintegrasikan ke dalam rilis baru setelah selesai. Saat Anda menarik toolkit untuk pertama kalinya, solusi akan dimuat ke project Google Cloud yang Anda pilih.

Langkah berikutnya

Pelajari lebih lanjut praktik terbaik untuk Google Cloud produk yang digunakan dalam arsitektur referensi ini:

Kontributor

Penulis:

Kontributor lainnya: