Artikel ini membahas cara menghosting situs di Google Cloud. Google Cloud menyediakan platform yang tangguh, fleksibel, andal, dan skalabel untuk menayangkan situs. Google membangun Google Cloud menggunakan infrastruktur yang sama dengan yang digunakan Google untuk menayangkan konten dari situs seperti Google.com, YouTube, dan Gmail. Anda dapat menghosting konten situs dengan menggunakan jenis dan desain infrastruktur yang paling sesuai dengan kebutuhan.
Artikel ini mungkin berguna jika Anda:
- Memahami cara membuat situs dan telah menerapkan serta menjalankan beberapa infrastruktur hosting web sebelumnya.
- Mengevaluasi apakah dan bagaimana cara memigrasikan situs Anda ke Google Cloud.
Jika Anda ingin membuat situs sederhana, pertimbangkan untuk menggunakan Google Sites, yakni alat pembuat halaman web dan wiki terstruktur. Untuk informasi selengkapnya, buka Bantuan Sites.
Memilih opsi
Jika Anda baru pertama kali menggunakan Google Cloud, sebaiknya mulailah dengan menggunakan jenis teknologi yang sudah Anda kenal. Misalnya, jika saat ini Anda menggunakan server hardware atau virtual machine (VM) untuk menghosting situs Anda, mungkin dengan penyedia cloud lain atau di hardware Anda sendiri, Compute Engine memberikan paradigma yang sudah dikenal untuk Anda. Jika Anda sudah menggunakan penawaran platform-as-a-service (PaaS), seperti Heroku atau Engine Yard, App Engine mungkin merupakan tempat terbaik untuk memulai. Jika Anda lebih suka komputasi serverless, Cloud Run mungkin adalah pilihan yang tepat untuk Anda.
Setelah terbiasa dengan Google Cloud, Anda dapat mempelajari kelengkapan produk dan layanan yang disediakan Google Cloud. Misalnya, jika memulai dengan menggunakan Compute Engine, Anda dapat meningkatkan kemampuan situs menggunakan Google Kubernetes Engine (GKE) atau memigrasikan sebagian atau semua fungsi ke App Engine dan Cloud Run.
Tabel berikut merangkum opsi hosting Anda di Google Cloud:
Opsi | Produk | Penyimpanan data | Load balancing | Skalabilitas | Logging dan pemantauan |
---|---|---|---|---|---|
Situs statis | Cloud Storage Firebase Hosting |
Bucket Cloud Storage | HTTP(S) opsional |
Secara otomatis | |
Virtual machine | Compute Engine | Cloud SQL, Cloud Storage, Firestore, dan Bigtable, atau Anda dapat menggunakan penyedia penyimpanan eksternal lainnya. Persistent disk berbasis hard disk, yang disebut persist disk standar, dan persistent disk solid state (SSD). |
HTTP(S) Proxy TCP Proxy SSL Penghentian IPv6 Network Lintas region Internal |
Secara otomatis dengan grup instance terkelola | |
Container | GKE | Mirip dengan Compute Engine, tetapi berinteraksi dengan persistent disk secara berbeda |
Network HTTP(S) |
Autoscaler cluster | |
Platform terkelola | App Engine |
Layanan Google Cloud seperti Cloud SQL, Firestore, Cloud Storage, dan database pihak ketiga yang dapat diakses | HTTP(S) Dikelola oleh Google |
Dikelola oleh Google | |
Serverless | Cloud Run |
Layanan Google Cloud seperti Cloud SQL, Firestore, Cloud Storage, dan database pihak ketiga yang dapat diakses | HTTP(S) Dikelola oleh Google |
Dikelola oleh Google |
Artikel ini dapat membantu Anda memahami teknologi utama yang dapat digunakan untuk hosting web di Google Cloud dan memberikan gambaran sekilas tentang cara kerja teknologi tersebut. Artikel ini menyediakan link ke artikel dokumentasi, tutorial, dan solusi lengkap yang dapat membantu Anda memperdalam pemahaman, saat Anda sudah siap.
Memahami biaya
Karena ada begitu banyak variabel dan setiap penerapannya berbeda, Anda dapat memberikan saran khusus terkait biaya di luar cakupan artikel ini. Untuk memahami prinsip-prinsip Google tentang cara kerja penetapan harga di Google Cloud, lihat halaman harga. Untuk memahami harga setiap layanan, lihat bagian harga produk. Anda juga dapat menggunakan kalkulator harga untuk memperkirakan tampilan penggunaan Google Cloud Anda. Anda dapat memberikan detail tentang layanan yang ingin digunakan, lalu melihat perkiraan harga.
Menyiapkan layanan nama domain
Biasanya, Anda ingin mendaftarkan nama domain untuk situs Anda. Anda dapat menggunakan registrar nama domain publik, seperti Google Domains, untuk mendaftarkan nama unik untuk situs Anda. Jika ingin mengontrol domain name system (DNS) sepenuhnya, Anda dapat menggunakan Cloud DNS untuk berfungsi sebagai penyedia DNS. Dokumentasi Cloud DNS menyertakan panduan memulai untuk membantu Anda memulai.
Jika sudah memiliki penyedia DNS yang ingin digunakan, umumnya Anda perlu
membuat beberapa data dengan penyedia tersebut. Untuk nama domain seperti
example.com
, buat data A
dengan penyedia DNS. Untuk
sub-domain www.example.com
, buat data CNAME
untuk www
agar mengarahkannya
ke domain example.com
. Data A
memetakan nama host ke alamat IP.
Data CNAME
membuat alias untuk data A
.
Jika registrar nama domain Anda juga merupakan penyedia DNS, itulah mungkin hal yang perlu Anda lakukan. Jika Anda menggunakan penyedia terpisah untuk pendaftaran dan DNS, pastikan registrar nama domain Anda memiliki server nama yang benar terkait dengan domain Anda.
Setelah membuat perubahan DNS, pembaruan data dapat memerlukan waktu beberapa saat untuk diterapkan, bergantung pada nilai time to live (TTL) di zona Anda. Jika ini adalah nama host baru, perubahan akan diterapkan dengan cepat karena DNS resolver tidak memiliki nilai sebelumnya yang di-cache dan dapat menghubungi penyedia DNS untuk mendapatkan informasi yang diperlukan untuk merutekan permintaan.
Menghosting situs statis
Cara termudah untuk menayangkan konten situs melalui HTTP(S) adalah dengan menghosting halaman web statis. Halaman web statis ditayangkan tanpa perubahan, seperti yang ditulis, biasanya dengan menggunakan HTML. Menggunakan situs statis merupakan opsi yang bagus jika halaman situs Anda jarang berubah setelah dipublikasikan, seperti postingan blog atau halaman yang merupakan bagian dari situs bisnis kecil. Anda dapat melakukan banyak hal dengan halaman web statis, tetapi jika Anda ingin situs Anda memiliki interaksi yang kuat dengan pengguna melalui kode sisi server, sebaiknya pertimbangkan opsi lain yang dibahas dalam artikel ini.
Menghosting situs statis dengan Cloud Storage
Untuk menghosting situs statis di Cloud Storage, Anda harus membuat
Bucket Cloud Storage,
mengupload konten, dan menguji situs baru Anda. Anda dapat
menyajikan data langsung daristorage.googleapis.com
,
atau Anda bisa
memverifikasi bahwa Anda adalah pemilik domain
dan menggunakan
nama domain Anda.
Anda dapat membuat halaman web statis sesuai pilihan Anda. Misalnya, Anda dapat menulis halaman secara manual dengan menggunakan HTML dan CSS. Anda dapat menggunakan pembuat situs statis, seperti Jekyll, Ghost, atau Hugo, untuk membuat konten. Dengan generator situs statis, Anda dapat membuat situs statis dengan menulis markdown, serta menyediakan template dan alat. Pembuat situs umumnya menyediakan server web lokal yang dapat Anda gunakan untuk melihat pratinjau konten.
Setelah situs statis berfungsi, Anda dapat memperbarui halaman statis dengan menggunakan
proses apa pun yang Anda sukai. Proses tersebut dapat semudah menyalin halaman
yang telah diperbarui secara manual ke bucket. Anda dapat memilih untuk menggunakan pendekatan yang lebih otomatis,
seperti menyimpan konten di GitHub, lalu menggunakan
webhook
untuk menjalankan
skrip yang memperbarui bucket. Sistem yang lebih canggih dapat menggunakan alat
continuous-integration/continuous-delivery (CI/CD), seperti
Jenkins,
untuk memperbarui konten dalam
bucket. Jenkins memiliki plugin
Cloud Storage
yang menyediakan langkah pasca-build Google Cloud Storage Uploader
untuk memublikasikan artefak
build ke Cloud Storage.
Jika Anda memiliki aplikasi web yang perlu menyajikan konten statis atau media statis yang diupload pengguna, penggunaan Cloud Storage dapat menjadi cara yang hemat biaya dan efisien untuk menghosting dan menyajikan konten ini, sekaligus mengurangi jumlah permintaan dinamis ke aplikasi web Anda.
Selain itu, Cloud Storage dapat langsung menerima konten yang dikirimkan pengguna. Fitur ini memungkinkan pengguna mengupload file media besar secara langsung dan aman tanpa proxy melalui server Anda.
Untuk mendapatkan performa terbaik dari situs statis, lihat Praktik terbaik untuk Cloud Storage.
Untuk informasi lebih lanjut, lihat halaman berikut:
- Menghosting situs statis
- J is for Jenkins (postingan blog)
- Band Aid 30 on Google Cloud (postingan blog)
- Dokumentasi Cloud Storage
Menghosting situs statis dengan Firebase Hosting
Firebase Hosting menyediakan hosting statis yang cepat dan aman untuk aplikasi web Anda. Dengan Firebase Hosting, Anda dapat men-deploy aplikasi web dan konten statis ke jaringan penayangan konten (CDN) global hanya dengan satu perintah.
Berikut adalah beberapa manfaat yang Anda dapatkan jika menggunakan Firebase Hosting:
- SSL tanpa konfigurasi sudah disertakan dalam Firebase Hosting. Menyediakan sertifikat SSL di domain kustom secara gratis.
- Semua konten Anda ditayangkan melalui HTTPS.
- Konten Anda ditayangkan kepada pengguna dari edge CDN di seluruh dunia.
- Dengan Firebase CLI, aplikasi Anda dapat aktif dan berjalan dalam hitungan detik. Gunakan alat command line untuk menambahkan target deployment ke dalam proses build Anda.
- Anda akan mendapatkan fitur pengelolaan rilis, seperti deployment atomik aset baru, pembuatan versi lengkap, dan rollback dengan sekali klik.
- Hosting menawarkan konfigurasi yang berguna untuk aplikasi web satu halaman dan situs lain yang lebih mirip dengan aplikasi.
- Hosting dibuat untuk digunakan secara lancar bersama fitur Firebase lainnya.
Untuk informasi lebih lanjut, lihat halaman berikut:
Menggunakan virtual machine dengan Compute Engine
Untuk kasus penggunaan Infrastructure as a Service (IaaS), Google Cloud menyediakan Compute Engine. Compute Engine menyediakan infrastruktur komputasi yang kuat, tetapi Anda harus memilih dan mengonfigurasi komponen platform yang ingin digunakan. Dengan Compute Engine, Anda bertanggung jawab untuk mengonfigurasi, mengelola, dan memantau sistem. Google memastikan bahwa resource tersedia, andal, dan siap untuk Anda gunakan, tetapi Anda yang menentukan untuk menyediakan dan mengelolanya. Keuntungannya, di sini, adalah Anda memiliki kendali penuh atas sistem dan fleksibilitas tak terbatas.
Gunakan Compute Engine untuk merancang dan men-deploy hampir semua sistem hosting situs yang Anda inginkan. Anda dapat menggunakan VM, yang disebut instances, untuk membangun aplikasi, seperti yang Anda lakukan jika memiliki infrastruktur hardware sendiri. Compute Engine menawarkan berbagai jenis mesin untuk menyesuaikan konfigurasi agar sesuai dengan kebutuhan dan anggaran Anda. Anda dapat memilih sistem operasi, development stack, bahasa, framework, layanan, dan teknologi software lain yang Anda inginkan.
Menyiapkan secara otomatis dengan Google Cloud Marketplace
Cara termudah untuk men-deploy stack hosting web lengkap adalah dengan menggunakan Google Cloud Marketplace. Hanya dengan beberapa klik, Anda dapat men-deploy lebih dari 100 solusi yang terwujud sepenuhnya dengan Google Click to Deploy atau Bitnami.
Misalnya, Anda dapat menyiapkan stack LAMP atau WordPress dengan Cloud Marketplace. Sistem men-deploy stack software lengkap yang berfungsi hanya dalam beberapa menit pada satu instance. Sebelum men-deploy, Cloud Marketplace menampilkan perkiraan biaya untuk menjalankan situs, memberi Anda informasi yang jelas tentang versi komponen software yang diinstalnya, dan memungkinkan Anda menyesuaikan konfigurasi dengan mengubah nama instance komponen, memilih jenis mesin, dan memilih ukuran disk. Setelah melakukan deployment, Anda memiliki kontrol penuh atas instance Compute Engine, konfigurasinya, dan software-nya.
Menyiapkan secara manual
Anda juga dapat membuat infrastruktur di Compute Engine secara manual, dengan membangun konfigurasi dari awal atau membangun di deployment Google Cloud Marketplace. Misalnya, Anda mungkin ingin menggunakan versi komponen software yang tidak ditawarkan oleh Cloud Marketplace, atau mungkin Anda lebih suka untuk menginstal dan mengonfigurasi semuanya sendiri.
Memberikan framework lengkap dan praktik terbaik untuk menyiapkan situs berada di luar cakupan artikel ini. Namun, jika dilihat secara umum, sisi teknis dari penyiapan infrastruktur hosting web di Compute Engine mengharuskan Anda:
- Memahami persyaratannya. Jika membuat situs baru, pastikan Anda memahami komponen yang diperlukan, seperti instance, kebutuhan penyimpanan, dan infrastruktur jaringan. Jika memigrasikan aplikasi dari solusi yang sudah ada, Anda mungkin sudah memahami persyaratan ini. Tetapi, Anda perlu memikirkan bagaimana penyiapan yang ada dipetakan ke Layanan Google Cloud.
- Merencanakan desain. Pikirkan arsitektur Anda dan tuliskan desain Anda. Bersikaplah sejelas mungkin.
- Membuat komponen. Komponen yang mungkin biasanya Anda anggap sebagai aset fisik, seperti komputer dan tombol jaringan, disediakan melalui layanan di Compute Engine. Misalnya, jika menginginkan komputer, Anda harus membuat instance Compute Engine. Jika Anda menginginkan persistent HDD, Anda juga membuatnya. Infrastruktur sebagai alat kode, seperti Terraform, menjadikan proses ini mudah dan dapat diulang.
- Mengonfigurasi dan menyesuaikan. Setelah memiliki komponen yang diinginkan, Anda harus mengonfigurasi, menginstal dan mengonfigurasi software, serta menulis dan men-deploy kode penyesuaian apa pun yang diperlukan. Anda dapat mereplikasi konfigurasi dengan menjalankan skrip shell, yang membantu mempercepat deployment di masa mendatang. Terraform juga membantu di sini, dengan menyediakan template konfigurasi yang deklaratif dan fleksibel untuk deployment otomatis resource. Anda juga dapat memanfaatkan alat otomatisasi IT, seperti Puppet dan Chef.
- Men-deploy aset. Diasumsikan Anda memiliki halaman web dan gambar.
- Menguji. Pastikan semuanya berfungsi seperti yang Anda harapkan.
- Men-deploy ke produksi. Buka situs Anda agar dapat dilihat dan digunakan oleh dunia.
Untuk membantu Anda memulai dan memahami cara menyiapkan instance Compute Engine secara manual, coba satu atau beberapa tutorial berikut:
Menyimpan data dengan Compute Engine
Sebagian besar situs web membutuhkan beberapa jenis penyimpanan. Anda mungkin memerlukan penyimpanan karena berbagai alasan, seperti menyimpan file yang diupload pengguna, dan tentu saja aset yang digunakan oleh situs Anda.
Google Cloud menyediakan berbagai layanan penyimpanan terkelola, termasuk:
- Database SQL di Cloud SQL, yang merupakan layanan database relasional yang terkelola sepenuhnya untuk MySQL, PostgreSQL, dan SQL Server.
- Dua opsi penyimpanan data NoSQL: Firestore dan Bigtable.
- Memorystore, yang merupakan layanan penyimpanan data dalam memori yang terkelola sepenuhnya untuk Redis dan Memcached Redis dan Memcached.
- Penyimpanan objek yang konsisten, skalabel, dan berkapasitas besar di
Cloud Storage.
Cloud Storage tersedia dalam beberapa kelas:
- Standar memberikan ketersediaan maksimum.
- Nearline menyediakan pilihan hemat biaya yang ideal untuk data yang diakses kurang dari sebulan sekali.
- Coldline menyediakan pilihan hemat biaya yang ideal untuk data yang diakses kurang dari sekali dalam satu kuartal.
- Archive memberikan pilihan biaya terendah untuk pengarsipan, pencadangan, dan pemulihan dari bencana.
- Persistent disk di Compute Engine untuk digunakan sebagai penyimpanan utama instance Anda. Compute Engine menawarkan persistent disk berbasis hard disk, yang disebut Persistent disk standar, dan persistent disk solid state (SSD). Anda juga dapat memilih untuk menyiapkan teknologi penyimpanan pilihan Anda di Compute Engine menggunakan persistent disk. Misalnya, Anda dapat menyiapkan PostgreSQL sebagai database SQL atau MongoDB sebagai penyimpanan NoSQL. Untuk memahami seluruh rentang dan manfaat layanan penyimpanan di Google Cloud, lihat Memilih opsi penyimpanan.
Load balancing dengan Compute Engine
Untuk situs yang beroperasi dalam skala besar, penggunaan teknologi load balancing untuk mendistribusikan beban kerja di antara server sering kali merupakan persyaratan. Anda memiliki berbagai opsi saat merancang server web yang di-load balanced di Compute Engine, termasuk:
- Load balancing HTTP(S).
Menjelaskan dasar-dasar penggunaan Cloud Load Balancing.
- Load balancing berbasis konten. Menunjukkan cara mendistribusikan traffic ke berbagai instance berdasarkan URL yang masuk.
- Load balancing lintas region. Mendemonstrasikan konfigurasi instance VM di berbagai region dan menggunakan load balancing HTTP atau HTTPS untuk mendistribusikan traffic di berbagai region.
- Load balancing proxy TCP. Mendemonstrasikan penyiapan load balancing Proxy TCP global untuk layanan yang ada di beberapa region.
- Load balancing proxy SSL. Mendemonstrasikan penyiapan load balancing Proxy SSL global untuk layanan yang ada di beberapa region.
- Penghentian IPv6 untuk load balancing HTTP(S), Proxy SSL, dan Proxy TCP. Menjelaskan penghentian IPv6 dan opsi untuk mengonfigurasi load balancer untuk menangani permintaan IPv6.
- Load balancing jaringan. Menunjukkan skenario dasar yang menyiapkan konfigurasi load balancing lapisan 3 untuk mendistribusikan traffic HTTP di seluruh instance yang responsif.
- Load balancing lintas region menggunakan backend Microsoft IIS. Menunjukkan cara menggunakan load balancer Compute Engine untuk mendistribusikan traffic ke server Microsoft Internet Information Services (IIS).
- Menyiapkan load balancing internal Anda dapat menyiapkan load balancer yang mendistribusikan traffic jaringan di jaringan pribadi yang tidak terekspos ke internet. Load balancing internal tidak hanya berguna untuk aplikasi intranet yang memungkinkan semua traffic tetap berada di jaringan pribadi, tetapi juga untuk aplikasi web yang kompleks dengan frontend yang mengirimkan permintaan ke server backend menggunakan jaringan pribadi.
Deployment load balancing bersifat fleksibel dan Anda dapat menggunakan Compute Engine dengan solusi yang sudah ada. Misalnya, load balancing HTTP(S) menggunakan Nginx adalah salah satu kemungkinan solusi yang dapat Anda gunakan sebagai pengganti load balancer Compute Engine.
Distribusi konten dengan Compute Engine
Karena waktu respons adalah metrik dasar untuk situs mana pun, menggunakan CDN untuk menurunkan latensi dan meningkatkan performa sering kali menjadi persyaratan, terutama untuk situs dengan traffic web global.
Cloud CDN menggunakan titik kehadiran edge Google yang didistribusikan secara global untuk mengirimkan konten dari lokasi cache yang terdekat dengan pengguna. Cloud CDN berfungsi dengan load balancing HTTP(S). Untuk menayangkan konten di luar Compute Engine, Cloud Storage, atau keduanya dari satu alamat IP, aktifkan Cloud CDN untuk load balancer HTTP(S).
Penskalaan otomatis dengan Compute Engine
Anda dapat menyiapkan arsitektur untuk menambahkan dan menghapus server sesuai permintaan yang bervariasi. Pendekatan ini dapat membantu memastikan situs Anda berperforma baik saat beban puncak, sekaligus menjaga biaya tetap terkendali selama periode permintaan yang lebih umum. Compute Engine menyediakan autoscaler yang dapat Anda gunakan untuk tujuan ini.
Penskalaan otomatis adalah fitur grup instance terkelola. Grup instance terkelola adalah kumpulan instance virtual machine yang homogen, yang dibuat dari template instance umum. Autoscaler menambahkan atau menghapus instance dalam grup instance terkelola. Meskipun Compute Engine memiliki grup instance terkelola dan tidak terkelola, Anda hanya dapat menggunakan grup instance terkelola dengan autoscaler. Untuk informasi selengkapnya, lihat penskalaan otomatis di Compute Engine.
Untuk mengetahui lebih dalam hal yang diperlukan untuk membangun solusi aplikasi web yang skalabel dan tangguh, lihat Membangun aplikasi web yang skalabel dan tangguh.
Logging dan pemantauan dengan Compute Engine
Google Cloud menyertakan fitur yang dapat Anda gunakan untuk mengawasi apa yang terjadi dengan situs Anda.
Cloud Logging mengumpulkan dan menyimpan log dari aplikasi dan layanan di Google Cloud. Anda dapat melihat atau mengekspor log dan mengintegrasikan log pihak ketiga menggunakan agen logging.
Cloud Monitoring menyediakan dasbor dan pemberitahuan untuk situs Anda. Anda mengonfigurasi Monitoring dengan Konsol Google Cloud. Anda dapat meninjau metrik performa untuk layanan cloud, virtual machine, dan server open source umum, seperti MongoDB, Apache, Nginx, dan Elasticsearch. Anda dapat menggunakan Cloud Monitoring API untuk mengambil data pemantauan dan membuat metrik kustom.
Cloud Monitoring juga menyediakan cek uptime, yang mengirimkan permintaan ke situs Anda untuk melihat apakah situs tersebut merespons atau tidak. Anda dapat memantau ketersediaan situs dengan men-deploy kebijakan pemberitahuan yang akan menimbulkan insiden jika cek uptime gagal.
Mengelola DevOps dengan Compute Engine
Untuk mengetahui informasi tentang cara mengelola DevOps dengan Compute Engine, lihat artikel berikut:
- Pengujian beban terdistribusi menggunakan Kubernetes
- Menggunakan Jenkins untuk build terdistribusi di Compute Engine
Menggunakan container dengan GKE
Anda mungkin sudah menggunakan container, seperti container Docker. Untuk hosting web, container menawarkan beberapa keuntungan, termasuk:
- Komponenisasi. Anda dapat menggunakan container untuk memisahkan berbagai komponen aplikasi web. Misalnya, situs Anda menjalankan server web dan database. Anda dapat menjalankan komponen ini dalam container terpisah, dengan mengubah dan memperbarui satu komponen tanpa memengaruhi komponen lainnya. Seiring dengan semakin kompleksnya desain aplikasi Anda, container sangat cocok untuk arsitektur berorientasi layanan, termasuk microservice. Desain semacam ini mendukung skalabilitas, di antara tujuan lainnya.
- Portabilitas. Container memiliki semua yang diperlukan untuk dijalankan aplikasi Anda dan dependensinya dipaketkan menjadi satu. Anda dapat menjalankan container di berbagai platform, tanpa perlu mengkhawatirkan detail sistem yang mendasarinya.
- Penerapan cepat. Saat tiba waktunya untuk men-deploy, sistem Anda di-build dari sekumpulan definisi dan image, sehingga bagian-bagiannya dapat di-deploy dengan cepat, andal, dan otomatis. Container biasanya berukuran kecil dan di-deploy jauh lebih cepat dibandingkan dengan, misalnya, virtual machine.
Komputasi container di Google Cloud menawarkan lebih banyak keuntungan untuk hosting web, termasuk:
- Orkestrasi. GKE adalah layanan terkelola yang dibangun berdasarkan Kubernetes, yaitu sistem orkestrasi container open source yang diperkenalkan oleh Google. Dengan GKE, kode Anda dijalankan di container yang merupakan bagian dari cluster yang terdiri dari instance Compute Engine. Daripada mengelola container satu per satu atau membuat dan menonaktifkan setiap container secara manual, Anda dapat mengelola cluster secara otomatis melalui GKE, yang menggunakan konfigurasi yang Anda tentukan.
- Pendaftaran gambar. Container Registry atau Artifact Registry menyediakan penyimpanan pribadi untuk image Docker di Google Cloud. Anda dapat mengakses registry melalui endpoint HTTPS, sehingga Anda dapat mengambil image dari mesin mana pun, baik itu instance Compute Engine atau hardware Anda sendiri. Layanan registry menghosting image kustom Anda di Cloud Storage dalam project Google Cloud Anda. Pendekatan ini memastikan secara default bahwa image kustom Anda hanya dapat diakses oleh akun utama yang memiliki akses ke project Anda.
- Mobilitas. Ini berarti Anda memiliki fleksibilitas untuk memindahkan dan menggabungkan workload dengan penyedia cloud lain, atau menggabungkan workload cloud computing dengan implementasi lokal untuk membuat solusi hybrid.
Menyimpan data dengan GKE
Karena GKE berjalan di Google Cloud dan menggunakan instance Compute Engine sebagai node, opsi penyimpanan Anda memiliki banyak kesamaan dengan penyimpanan di Compute Engine. Anda dapat mengakses Cloud SQL, Cloud Storage, Firestore, dan Bigtable melalui API-nya, atau Anda dapat menggunakan penyedia penyimpanan eksternal lainnya jika ingin. Namun, GKE berinteraksi dengan persistent disk Compute Engine dengan cara yang berbeda dari instance Compute Engine biasa.
Instance Compute Engine menyertakan disk yang terpasang. Saat Anda menggunakan
Compute Engine, selama instance tersebut ada, volume disk akan tetap bersama
instance tersebut. Anda bahkan dapat melepas disk dan menggunakannya dengan instance
yang berbeda. Namun dalam sebuah kontainer, file di disk bersifat sementara. Saat container
dimulai ulang, misalnya setelah error, file di disk akan hilang. Kubernetes mengatasi
masalah ini menggunakan abstraksi
volume
dan Kelas Penyimpanan. Salah satu jenis kelas penyimpanan adalah
GCE PD
.
Artinya, Anda dapat menggunakan persistent disk Compute Engine dengan container
agar file data tidak terhapus saat Anda menggunakan GKE.
Untuk memahami fitur dan manfaat volume, Anda harus memahami sedikit tentang pod terlebih dahulu. Anda dapat menganggap pod sebagai host logis khusus aplikasi untuk satu atau beberapa container. Pod berjalan pada instance node. Saat container menjadi anggota pod, container tersebut dapat berbagi beberapa resource, termasuk satu set volume penyimpanan bersama. Volume ini memungkinkan data untuk tetap berlaku saat container dimulai ulang dan dibagikan di antara container dalam pod. Tentu saja, Anda juga dapat menggunakan satu container dan volume dalam pod, tetapi pod adalah abstraksi wajib untuk menghubungkan resource ini secara logis satu sama lain.
Sebagai contoh, lihat tutorial Menggunakan persistent disk dengan WordPress dan MySQL.
Load balancing dengan GKE
Banyak arsitektur hosting web besar harus memiliki beberapa server berjalan yang dapat berbagi permintaan traffic. Karena Anda dapat membuat dan mengelola beberapa container, node, dan pod dengan GKE, sangat cocok untuk menggunakan sistem hosting web yang di-load balanced.
Menggunakan load balancing jaringan
Cara termudah untuk membuat load balancer di GKE adalah dengan menggunakan load balancing jaringan Compute Engine. Load balancing jaringan dapat menyeimbangkan beban sistem Anda berdasarkan data protokol internet yang masuk, seperti alamat, port, dan jenis protokol. Load balancing jaringan menggunakan aturan penerusan. Aturan ini mengarah ke kumpulan target yang mencantumkan instance mana yang tersedia untuk digunakan untuk load balancing.
Dengan load balancing jaringan, Anda dapat melakukan load balancing pada protokol berbasis TCP/UDP tambahan seperti traffic SMTP, dan aplikasi Anda dapat memeriksa paket secara langsung.
Anda dapat men-deploy load balancing jaringan cukup dengan menambahkan kolom type: LoadBalancer
ke file konfigurasi layanan.
Menggunakan load balancing HTTP(S)
Jika memerlukan fitur load balancing yang lebih canggih, seperti load balancing HTTPS, load balancing berbasis konten, atau load balancing lintas region, Anda dapat mengintegrasikan layanan GKE dengan HTTP/HTTPS Compute Engine fitur load balancing berikutnya. Kubernetes menyediakan Resource Ingress yang mengenkapsulasi kumpulan aturan untuk mengarahkan traffic eksternal ke endpoint Kubernetes. Di GKE, Resource ingress menangani penyediaan dan konfigurasi load balancer HTTP/HTTPS Compute Engine.
Untuk informasi selengkapnya tentang penggunaan load balancing HTTP/HTTPS di GKE, lihat Menyiapkan load balancing HTTP dengan Ingress.
Penskalaan dengan GKE
Untuk mengubah ukuran cluster secara otomatis, Anda dapat menggunakan Cluster Autoscaler. Fitur ini secara berkala memeriksa apakah ada pod yang menunggu node dengan resource bebas, tetapi tidak dijadwalkan. Jika pod tersebut ada, maka autoscaler akan mengubah ukuran node pool jika perubahan ukuran akan memungkinkan pod yang menunggu untuk dijadwalkan.
Autoscaler Cluster juga memantau penggunaan semua node. Jika node tidak diperlukan dalam jangka waktu yang lama, dan semua podnya dapat dijadwalkan di tempat lain, maka node tersebut akan dihapus.
Untuk informasi selengkapnya tentang Autoscaler Cluster, batasan, dan praktik terbaiknya, lihat Dokumentasi Autoscaler Cluster.
Logging dan pemantauan dengan GKE
Seperti di Compute Engine, Logging dan Monitoring menyediakan layanan logging dan pemantauan Anda. Logging mengumpulkan dan menyimpan log dari aplikasi dan layanan. Anda dapat melihat atau mengekspor log dan mengintegrasikan log pihak ketiga menggunakan agen logging.
Pemantauan menyediakan dasbor dan pemberitahuan untuk situs Anda. Anda mengonfigurasi Monitoring dengan Konsol Google Cloud. Anda dapat meninjau metrik performa untuk layanan cloud, virtual machine, dan server open source umum seperti MongoDB, Apache, Nginx, dan Elasticsearch. Anda dapat menggunakan Monitoring API untuk mengambil data pemantauan dan membuat metrik kustom.
Mengelola DevOps dengan GKE
Saat menggunakan GKE, Anda sudah mendapatkan banyak manfaat yang dipikirkan kebanyakan orang saat mereka memikirkan DevOps. Hal ini terutama berlaku untuk kemudahan pengemasan, deployment, dan pengelolaan. Untuk kebutuhan alur kerja CI/CD, Anda dapat memanfaatkan alat yang dibangun untuk cloud, seperti Cloud Build, dan Cloud Deploy, atau alat populer seperti Jenkins. Untuk informasi lebih lanjut, lihat artikel berikut:
Membangun di platform terkelola dengan App Engine
Di Google Cloud, platform as a service (PaaS) terkelola disebut App Engine. Saat membuat situs di App Engine, Anda dapat berfokus pada coding fitur dan membiarkan Google menangani pengelolaan infrastruktur pendukungnya. App Engine menyediakan berbagai fitur yang membuat skalabilitas, load balancing, logging, pemantauan, dan keamanan jauh lebih mudah daripada jika Anda harus membangun dan mengelolanya sendiri. Dengan App Engine, Anda dapat melakukan kode dalam berbagai bahasa pemrograman, dan dapat menggunakan berbagai layanan Google Cloud lainnya.
App Engine menyediakan lingkungan standar, yang memungkinkan Anda menjalankan aplikasi di lingkungan dalam sandbox yang aman. Lingkungan standar App Engine mendistribusikan permintaan ke beberapa server, dan menskalakan server untuk memenuhi permintaan traffic. Aplikasi Anda berjalan di lingkungannya sendiri yang aman dan andal yang terpisah dari hardware, sistem operasi, atau lokasi fisik server.
Untuk memberi Anda lebih banyak opsi, App Engine menawarkan lingkungan fleksibel. Saat Anda menggunakan lingkungan fleksibel, aplikasi Anda berjalan pada instance Compute Engine yang dapat dikonfigurasi, tetapi App Engine mengelola lingkungan hosting untuk Anda. Ini berarti Anda dapat menggunakan runtime tambahan, termasuk runtime kustom, untuk pilihan bahasa pemrograman lainnya. Anda juga dapat memanfaatkan beberapa fleksibilitas yang ditawarkan Compute Engine, seperti memilih dari berbagai opsi CPU dan memori.
Bahasa pemrograman
Lingkungan standar App Engine menyediakan runtime default, dan Anda menulis kode sumber dalam bahasa pemrograman yang didukung versi tertentu.
Dengan lingkungan fleksibel, Anda dapat menulis kode sumber dalam versi bahasa pemrograman yang didukung. Anda dapat menyesuaikan runtime ini atau menyediakan runtime Anda sendiri dengan image Docker atau Dockerfile kustom.
Jika bahasa pemrograman yang Anda gunakan menjadi perhatian utama, Anda harus memutuskan apakah runtime yang disediakan oleh lingkungan standar App Engine memenuhi persyaratan Anda. Jika tidak, Anda harus mempertimbangkan untuk menggunakan lingkungan fleksibel.
Untuk menentukan lingkungan yang paling sesuai dengan kebutuhan aplikasi Anda, lihat Memilih lingkungan App Engine.
Memulai tutorial berdasarkan bahasa
Tutorial berikut dapat membantu Anda memulai menggunakan lingkungan standar App Engine:
- Halo Dunia di Python
- Hello World di Java
- Halo Dunia dalam PHP
- Halo Dunia dalam Ruby
- Halo Dunia di Go
- Halo Dunia di Node.js
Tutorial berikut dapat membantu Anda mulai menggunakan lingkungan fleksibel:
- Mulai menggunakan Python
- Mulai menggunakan Java
- Mulai menggunakan PHP
- Mulai menggunakan Go
- Mulai menggunakan Node.js
- Mulai menggunakan Ruby
- Mulai menggunakan .NET
Menyimpan data dengan App Engine
App Engine memberi Anda opsi untuk menyimpan data:
Nama | Struktur | Konsistensi |
---|---|---|
Firestore | Tanpa skema | Sangat konsisten. |
Cloud SQL | Relasional | Sangat konsisten. |
Cloud Storage | File dan metadata yang terkait | Sangat konsisten kecuali saat melakukan operasi daftar yang mendapatkan daftar bucket atau objek. |
Anda juga dapat menggunakan beberapa database pihak ketiga dengan lingkungan standar.
Untuk detail selengkapnya tentang penyimpanan di App Engine, lihat Memilih opsi penyimpanan, lalu pilih bahasa pemrograman pilihan Anda.
Saat menggunakan lingkungan fleksibel, Anda dapat menggunakan semua opsi penyimpanan yang sama seperti yang dapat Anda lakukan dengan lingkungan standar, serta rentang database pihak ketiga yang lebih luas. Untuk informasi lebih lanjut tentang database pihak ketiga di lingkungan fleksibel, lihat Menggunakan database pihak ketiga.
Load balancing dan penskalaan otomatis dengan App Engine
Secara default, App Engine otomatis merutekan permintaan masuk ke backend instance yang sesuai dan melakukan load balancing untuk Anda. Namun, jika Anda ingin memanfaatkan kemampuan load balancing HTTP(S) tingkat perusahaan yang berfitur lengkap dari Google Cloud, Anda dapat menggunakan grup endpoint jaringan serverless.
Untuk penskalaan, App Engine dapat secara otomatis membuat dan menonaktifkan instance saat traffic berfluktuasi, atau Anda dapat menentukan jumlah instance yang akan dijalankan, berapa pun jumlah traffic.
Logging dan pemantauan dengan App Engine
Di App Engine, permintaan akan dicatat secara otomatis ke dalam log, dan Anda dapat melihat
log ini di Konsol Google Cloud. App Engine juga berfungsi dengan
library standar bahasa tertentu yang menyediakan fungsi logging dan
meneruskan entri log ke log di Konsol Google Cloud. Misalnya,
di Python
Anda dapat menggunakan modul logging Python standar, dan
di Java
Anda dapat mengintegrasikan appender logback atau java.util.logging
dengan Cloud Logging. Pendekatan ini dapat menggunakan fitur lengkap Cloud Logging
dan hanya memerlukan beberapa baris kode khusus Google Cloud.
Cloud Monitoring menyediakan fitur untuk memantau aplikasi App Engine Anda. Melalui konsol Google Cloud, Anda dapat memantau insiden, cek uptime, dan detail lainnya.
Membangun di platform serverless dengan Cloud Run
Platform serverless Google Cloud memungkinkan Anda untuk menulis kode dengan cara yang Anda suka tanpa perlu memperhatikan infrastruktur dasar. Anda dapat membangun aplikasi serverless full stack dengan penyimpanan, database, machine learning Google Cloud, dan lainnya.
Untuk situs dalam container, Anda juga dapat men-deploy-nya ke Cloud Run selain menggunakan GKE. Cloud Run adalah platform serverless yang terkelola sepenuhnya dan memungkinkan Anda menjalankan aplikasi dalam container yang sangat skalabel di Google Cloud. Anda hanya membayar saat kode Anda berjalan.
Dengan menggunakan container dengan Cloud Run, Anda dapat memanfaatkan teknologi matang seperti Nginx, Express.js, dan Django untuk membangun situs, mengakses database SQL di Cloud SQL, dan merender halaman HTML dinamis.
Dokumentasi Cloud Run menyertakan quickstart untuk membantu Anda.
Menyimpan data dengan Cloud Run
Container Cloud Run bersifat sementara dan Anda perlu memahami kuota dan batasnya untuk kasus penggunaan Anda. File dapat disimpan sementara untuk pemrosesan di instance container, tetapi penyimpanan ini keluar dari memori yang tersedia untuk layanan seperti yang dijelaskan dalam kontrak runtime.
Untuk penyimpanan persisten, yang mirip dengan App Engine, Anda dapat memilih layanan Google Cloud seperti Cloud Storage, Firestore, atau Cloud SQL. Atau, Anda juga dapat menggunakan solusi penyimpanan pihak ketiga.
Load balancing dan penskalaan otomatis dengan Cloud Run
Secara default, saat Anda membangun di Cloud Run, Cloud Run otomatis merutekan permintaan yang masuk ke container back-end yang sesuai dan melakukan load balancing untuk Anda. Namun, jika Anda ingin memanfaatkan kemampuan load balancing HTTP(S) tingkat perusahaan yang berfitur lengkap dari Google Cloud, Anda dapat menggunakan grup endpoint jaringan serverless.
Dengan load balancing HTTP(S), Anda dapat mengaktifkan Cloud CDN atau menayangkan traffic dari beberapa region. Selain itu, Anda dapat menggunakan middleware seperti API Gateway untuk meningkatkan kualitas layanan Anda.
Untuk Cloud Run, Google Cloud mengelola penskalaan instance container untuk Anda. Setiap revisi secara otomatis diskalakan ke jumlah instance container yang diperlukan untuk menangani semua permintaan yang masuk. Jika revisi tidak menerima traffic apa pun, secara default revisi akan diskalakan ke nol instance container. Namun, jika diinginkan, Anda dapat mengubah default ini untuk menentukan instance yang akan tetap tidak ada aktivitas atau warm menggunakan setelan instance minimum.
Logging dan pemantauan dengan Cloud Run
Cloud Run memiliki dua jenis log yang secara otomatis dikirim ke Cloud Logging:
- Log permintaan: log permintaan yang dikirim ke layanan Cloud Run. Log ini dibuat secara otomatis.
- Log container: log yang dikeluarkan dari instance container, biasanya dari kode Anda sendiri, yang ditulis ke lokasi yang didukung seperti yang dijelaskan dalam Menulis log container.
Anda dapat melihat log untuk layanan Anda dengan beberapa cara:
- Gunakan halaman Cloud Run di Konsol Google Cloud.
- Gunakan Logs Explorer Cloud Logging di Konsol Google Cloud.
Kedua metode tampilan ini memeriksa log yang sama yang disimpan di Cloud Logging, tetapi Logs Explorer memberikan detail yang lebih lengkap dan kemampuan pemfilteran yang lebih baik.
Cloud Monitoring memberikan pemantauan performa, metrics, dan cek uptime Cloud Run, serta pemberitahuan untuk mengirim notifikasi saat batas metrik tertentu terlampaui. Harga Google Cloud Observability berlaku, yang berarti tidak ada biaya untuk metrik pada versi Cloud Run yang terkelola sepenuhnya. Perlu diperhatikan bahwa Anda juga dapat menggunakan Metrik kustom Cloud Monitoring.
Cloud Run terintegrasi dengan Cloud Monitoring tanpa perlu penyiapan atau konfigurasi. Ini berarti, metrik layanan Cloud Run Anda akan otomatis direkam saat layanan tersebut berjalan.
Membuat sistem pengelolaan konten
Menghosting situs berarti mengelola aset situs Anda. Cloud Storage menyediakan repositori global untuk aset ini. Salah satu arsitektur umum men-deploy konten statis ke Cloud Storage, lalu akan disinkronkan ke Compute Engine untuk merender halaman dinamis. Cloud Storage dapat digunakan dengan banyak sistem pengelolaan konten pihak ketiga, seperti WordPress, Drupal, dan Joomla. Cloud Storage juga menawarkan API yang kompatibel dengan Amazon S3, sehingga sistem apa pun yang kompatibel dengan Amazon S3 dapat berfungsi dengan Cloud Storage.
Diagram di bawah ini merupakan contoh arsitektur untuk sistem pengelolaan konten.
Langkah selanjutnya
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.