Dokumen ini menjelaskan cara menggunakan ALB untuk menyeimbangkan beban trafik gRPC dan menyediakan ingress terpadu bagi komunikasi layanan backend. ALB mendukung koneksi frontend HTTPS terenkripsi ke grup server backend gRPC melalui HTTP/2.
Informasi latar belakang
gRPC adalah framework open-source berkinerja tinggi untuk remote procedure call (RPC). Framework ini menggunakan Protocol Buffers sebagai Interface Definition Language (IDL) dan berkomunikasi melalui HTTP/2.
gRPC mengatasi tantangan komunikasi lintas bahasa antar layanan. IDL-nya menghasilkan kode secara otomatis untuk mendefinisikan dan memanggil layanan jarak jauh. Dengan pengkodean biner dan multiplexing HTTP/2, gRPC memberikan kinerja tinggi, latensi rendah, serta transfer data yang efisien.
gRPC cocok untuk arsitektur layanan mikro, komunikasi lintas bahasa, dan sistem terdistribusi berskala besar. Framework ini mendukung panggilan unary, streaming permintaan-respons, serta streaming dua arah.
Untuk informasi lebih lanjut tentang gRPC, lihat dokumentasi resmi gRPC.
Skenario
Sebuah perusahaan menerapkan layanan gRPC di virtual private cloud (VPC) di wilayah China (Hangzhou). Di dalam VPC tersebut, sebuah instans ALB dan grup server yang mendukung gRPC telah diterapkan. Instans ALB dikonfigurasi dengan pendengar HTTPS yang mengaktifkan HTTP/2, sedangkan grup server dikonfigurasi dengan pemeriksaan kesehatan gRPC.
Klien perlu mengakses layanan gRPC yang diterapkan di VPC melalui instans ALB.
Prasyarat
-
Anda telah membuat instans ALB. Untuk informasi selengkapnya, lihat Buat dan kelola instans ALB.
-
Anda telah menyiapkan server backend dan menerapkan layanan gRPC pada server tersebut. Untuk panduan penerapan, lihat dokumentasi resmi gRPC.
-
Anda telah mendaftarkan nama domain dan menyelesaikan Pendaftaran ICP yang diperlukan. Untuk informasi selengkapnya, lihat Daftarkan nama domain Alibaba Cloud dan Proses Pendaftaran ICP.
-
Anda telah membeli Sertifikat SSL atau mengunggah sertifikat pihak ketiga ke Certificate Management Service. Sertifikat tersebut harus dikaitkan dengan nama domain Anda. Untuk informasi selengkapnya tentang cara membuat sertifikat, lihat Aktifkan akses HTTPS untuk layanan web menggunakan sertifikat komersial.
Langkah 1: Buat grup server
-
Masuk ke Konsol ALB.
-
Pada bilah navigasi atas, pilih wilayah tempat instans ALB diterapkan.
-
Pada panel navigasi kiri, pilih .
-
Pada halaman Server Groups, klik Create Server Group.
-
Pada kotak dialog Create Server Group, konfigurasikan parameter berikut lalu klik Create.
Topik ini hanya menjelaskan parameter yang relevan dengan skenario ini. Untuk parameter lainnya, gunakan nilai default atau sesuaikan dengan kebutuhan.
Parameter
Deskripsi
Server Group Type
Pilih tipe grup server. Pada contoh ini, dipilih Server.
VPC
Pilih VPC dari instans ALB Anda. Hanya server dalam VPC ini yang dapat ditambahkan ke grup server.
Backend Server Protocol
Pada contoh ini, pilih gRPC.
Health Check
Aktifkan fitur ini.
Health Check Settings
Klik Modify dan konfigurasikan pengaturan pemeriksaan kesehatan:
-
Health Check Protocol: Pada contoh ini, pilih gRPC.
-
Health Check Method: Pada contoh ini, pilih POST.
-
Health Check Status Codes: Pilih kode status yang menunjukkan respons sehat. Kode ini harus sesuai dengan kode status yang dikembalikan oleh layanan gRPC Anda. Pada contoh ini, kode statusnya adalah
12.
-
-
Pada halaman Server Groups, temukan grup server yang telah Anda buat lalu klik ID-nya.
-
Klik tab Backend Servers lalu klik Add Backend Server.
-
Pada panel Add Backend Server, pilih instans ECS yang telah Anda buat lalu klik Next.
-
Pada langkah Ports/Weights, atur port dan bobot untuk setiap instans ECS lalu klik OK.
CatatanPort yang dikonfigurasi untuk instans ECS harus sesuai dengan port yang digunakan oleh layanan gRPC. Pastikan juga aturan security group untuk instans tersebut mengizinkan trafik pada port ini.
Langkah 2: Konfigurasi pendengar HTTPS
-
Masuk ke Konsol Application Load Balancer (ALB).
-
Pada bilah navigasi atas, pilih wilayah tempat instans Anda diterapkan.
-
Pada panel navigasi kiri, klik Instances.
-
Pada halaman Instances, temukan instans yang ingin Anda kelola lalu klik Create Listener di kolom Actions.
-
Pada halaman Configure Listener, konfigurasikan parameter berikut. Gunakan nilai default untuk parameter lainnya atau sesuaikan dengan kebutuhan, lalu klik Next.
Parameter
Deskripsi
Listener Protocol
Pilih HTTPS.
Listener Port
Pada contoh ini, digunakan port 443.
Catatan-
Jika protokol backend grup server diatur ke gRPC, protokol pendengar harus HTTPS.
-
gRPC berkomunikasi melalui HTTP/2. Saat protokol backend grup server diatur ke gRPC, pendengar HTTPS harus mengaktifkan HTTP/2.0. ALB mengaktifkan fitur ini secara default. Pastikan opsi Enable HTTP/2 tetap aktif dan jangan menonaktifkannya.
-
-
Pada halaman Configure SSL Certificate, konfigurasikan parameter berikut. Gunakan nilai default untuk parameter lainnya atau sesuaikan dengan kebutuhan, lalu klik Next.
Parameter
Deskripsi
Server Certificate
Pilih Sertifikat SSL yang telah disiapkan.
-
Pada halaman Select Server Group, konfigurasikan parameter berikut. Gunakan nilai default untuk parameter lainnya atau sesuaikan dengan kebutuhan, lalu klik Next.
Parameter
Deskripsi
Server Group
Pilih grup server gRPC yang telah Anda buat.
-
Pada halaman Configuration Review, periksa konfigurasi. Jika sudah benar, klik Submit dan tunggu hingga pendengar dibuat.
Langkah 3: Konfigurasi resolusi DNS
Untuk lingkungan produksi, kami merekomendasikan memetakan nama domain kustom ke nama domain instans ALB dengan membuat Rekaman CNAME.
-
Pada panel navigasi kiri, pilih .
-
Pada halaman Instances, salin nama DNS instans ALB yang telah dibuat.
-
Ikuti langkah-langkah berikut untuk menambahkan Rekaman CNAME.
CatatanJika nama domain Anda didaftarkan oleh penyedia selain Alibaba Cloud, Anda harus menambahkan nama domain tersebut ke Konsol DNS Alibaba Cloud sebelum dapat mengonfigurasi resolusi DNS. Untuk informasi selengkapnya, lihat Kelola nama domain. Jika nama domain Anda didaftarkan di Alibaba Cloud, lanjutkan ke langkah-langkah berikut.
-
Masuk ke Konsol DNS Alibaba Cloud.
-
Pada halaman Authoritative DNS Resolution, temukan nama domain target lalu klik Settings di kolom Operations.
-
Pada halaman Settings, klik Add Record.
-
Pada panel Add Record, konfigurasikan Rekaman CNAME dengan mengatur parameter berikut, lalu klik OK.
Parameter
Deskripsi
Record Type
Pilih CNAME dari daftar drop-down.
Hostname
Awalan nama domain Anda. Tutorial ini menggunakan @.
CatatanUntuk menggunakan domain root, atur hostname menjadi
@.Query Source
Pilih Default.
Record Value
Masukkan nama DNS instans ALB yang telah Anda salin.
TTL
Time to live (TTL) adalah durasi rekaman DNS disimpan dalam cache di server DNS. Gunakan nilai default.
-
Langkah 4: Verifikasi konektivitas
Setelah menyelesaikan langkah-langkah di atas, klien dapat mengakses layanan gRPC melalui ALB. Gunakan alat seperti grpcurl untuk menguji konektivitas.
Anda tidak dapat langsung mengakses layanan gRPC dari browser web. Kami merekomendasikan menggunakan alat seperti grpcurl untuk menguji konektivitas.
Pada klien, jalankan perintah grpcurl -insecure -v <Nama domain>:<Port pendengar> <Nama layanan gRPC>/<Metode> untuk mengakses layanan gRPC pada instans ECS.
Tanggapan yang mirip dengan contoh berikut mengonfirmasi bahwa klien dapat mengakses layanan gRPC melalui ALB.
[root@iZbp1xxx.0Z ~]# grpcurl -insecure -v xxx.com:443 helloworld.Greeter/SayHello
Resolved method descriptor:
rpc SayHello ( .helloworld.HelloRequest ) returns ( .helloworld.HelloReply );
Request metadata to send:
(empty)
Response headers received:
accept-encoding: identity,gzip
content-type: application/grpc
date: Mon, 04 Jul 2022 08:53:01 GMT
grpc-accept-encoding: identity,deflate,gzip
vary: Accept-Encoding
Response contents:
{
"message": "remoteip:47.xxx.xxx.195 x-forwarded-for:47.xxx.xxx.xx5 user-agent:grpcurl/v1.8.0 grpc-go/1.30.0 hostname:iZbp12xxx0kZ server addr:192.168.1.239 "
}
Response trailers received:
(empty)
Sent 0 requests and received 1 response
Dokumen terkait
-
Untuk informasi selengkapnya tentang parameter dan pertimbangan untuk pendengar HTTPS, lihat Tambahkan pendengar HTTPS.
-
Untuk informasi selengkapnya tentang parameter dan pertimbangan untuk grup server, lihat Buat dan kelola grup server.
-
Untuk informasi selengkapnya tentang parameter dan pertimbangan untuk pemeriksaan kesehatan, lihat Pemeriksaan kesehatan ALB.