Secara default, node SSH DataWorks terhubung ke satu instans Elastic Compute Service (ECS) tertentu. Jika instans tersebut gagal atau kehabisan sumber daya, tugas SSH akan tertunda atau berhenti. Dengan mengarahkan lalu lintas SSH melalui Alibaba Cloud Network Load Balancer (NLB), Anda dapat mendistribusikan tugas ke beberapa instans ECS dan menghilangkan single point of failure (SPOF)—tanpa mengubah logika tugas apa pun.
Topik ini memandu Anda melalui seluruh proses penyiapan: membuat instans ECS, mengonfigurasi NLB, menambahkan instans NLB sebagai sumber data SSH, serta memverifikasi bahwa tugas didistribusikan ke berbagai instans.
Cara kerja
Saat Anda mengonfigurasi sumber data SSH menggunakan nama domain instans NLB, setiap permintaan tugas dari node SSH DataWorks akan ditangkap oleh listener NLB. NLB memilih instans ECS yang sehat berdasarkan kebijakan penyeimbangan bebannya, lalu meneruskan permintaan tersebut ke instans tersebut. Instans ECS menjalankan tugas, dan hasilnya dikembalikan secara transparan melalui NLB serta ditampilkan di log eksekusi node SSH.
Tabel berikut merangkum perbedaan antara menjalankan tugas SSH dengan dan tanpa NLB:
| Dimensi | Tanpa penyeimbangan beban | Dengan penyeimbangan beban |
|---|---|---|
| Dampak kegagalan | Tugas pada instans ECS yang terdampak tertunda atau berhenti | NLB mengalihkan tugas ke instans yang sehat secara otomatis |
| Kontinuitas tugas | Terputus saat satu-satunya instans gagal | Dipertahankan di seluruh kelompok server |
| Kejenuhan sumber daya | Tugas gagal ketika satu instans kehabisan sumber daya | Permintaan didistribusikan ke beberapa instans |
| Upaya O&M | Memerlukan intervensi manual untuk pemulihan | Pemeriksaan kesehatan NLB menangani failover secara otomatis |
Kapan menggunakan fitur ini
Konfigurasikan penyeimbangan beban berbasis NLB untuk node SSH Anda jika:
-
Kegagalan tugas SSH akibat kegagalan instans ECS atau kehabisan sumber daya tidak dapat diterima
-
Tugas berjalan cukup lama sehingga restart instans selama eksekusi akan memutus alur kerja
-
Anda mengelola beberapa instans ECS untuk beban kerja SSH dan menginginkan failover otomatis tanpa mengubah logika tugas
Prasyarat
Sebelum memulai, pastikan bahwa:
-
Pengguna RAM telah ditambahkan ke ruang kerja Anda dengan peran Develop atau Workspace Administrator. Untuk informasi lebih lanjut, lihat Tambahkan anggota ke ruang kerja.
PentingPeran Workspace Administrator memiliki izin yang lebih luas daripada yang biasanya diperlukan. Tetapkan dengan hati-hati.
-
Kelompok sumber daya arsitektur tanpa server telah dikaitkan dengan ruang kerja Anda. Untuk informasi lebih lanjut, lihat Gunakan kelompok sumber daya arsitektur tanpa server.
Batasan
-
Kode node SSH tidak boleh melebihi
128 KB. -
Kelompok sumber daya DataWorks, instans ECS, dan instans NLB harus berada dalam virtual private cloud (VPC) yang sama di wilayah yang sama. Perbedaan VPC atau wilayah akan menyebabkan kegagalan koneksi.
Langkah 1: Buat instans ECS
Buat minimal dua instans ECS. Contoh ini menggunakan dua instans dengan data sampel berbeda untuk memverifikasi bahwa penyeimbangan beban berfungsi.
Buat instans
-
Buka halaman pembelian ECS dan klik Custom Launch.
-
Konfigurasikan parameter berikut: Untuk informasi lebih lanjut tentang pengaturan parameter, lihat Buat instans di tab Custom Launch.
Parameter Deskripsi Region Pilih wilayah tempat ruang kerja DataWorks Anda berada Network and Zone Pilih VPC dan vSwitch yang digunakan oleh kelompok sumber daya arsitektur tanpa server Anda Security Group Pilih security group yang terkait dengan vSwitch kelompok sumber daya arsitektur tanpa server Other parameters Konfigurasikan sesuai kebutuhan bisnis Anda -
Atur Quantity menjadi
2di sisi kanan halaman pembelian. -
Klik Create Order dan ikuti petunjuk untuk menyelesaikan pembelian.
Siapkan data sampel
Login ke setiap instans ECS dan tulis data sampel berbeda agar Anda dapat memverifikasi penyeimbangan beban nanti.
-
Login ke Konsol ECS dan pilih wilayah tempat instans berada.
-
Di halaman Instances, klik Connect di kolom Actions untuk suatu instans. Di kotak dialog Remote connection, klik Sign in now.
-
Di kotak dialog Instance Login, masukkan informasi autentikasi untuk login.
-
Jalankan perintah berikut di ECS Instance 1:
echo "I am the second server" > /tmp/a.txt -
Ulangi langkah 2–3 untuk ECS Instance 2, lalu jalankan:
echo "Saya adalah server kedua" > /tmp/a.txtecho "I am the second server" > /tmp/a.txt
Langkah 2: Buat instans NLB
Buat instans NLB yang mengarahkan lalu lintas SSH ke instans ECS Anda. Untuk informasi lebih lanjut, lihat Buat dan kelola instans NLB.
Buat instans NLB di wilayah yang sama dengan ruang kerja DataWorks Anda. Perbedaan wilayah akan menyebabkan kegagalan koneksi.
-
Login ke Konsol NLB. Di bilah navigasi atas, pilih wilayah target.
-
Di panel navigasi kiri, klik Instances. Di halaman Instances, klik Create NLB. Halaman Cloud Service Buy Page akan muncul.
-
Konfigurasikan parameter berikut:
Bagian Parameter Nilai Network Network Type Internal-facing VPC VPC tempat kelompok sumber daya arsitektur tanpa server Anda ditempatkan Zone Zona tempat vSwitch kelompok sumber daya arsitektur tanpa server berada IP Version IPv4 Management Settings Instance Name Masukkan nama kustom Resource Group Pilih kelompok sumber daya default -
Klik Create Now. Pada halaman Confirm Order, klik Activate Now.
Langkah 3: Buat kelompok server backend
Setelah instans NLB berada dalam status Active, buat kelompok server dan tambahkan instans ECS ke dalamnya. Untuk informasi lebih lanjut, lihat Kelompok server NLB.
-
Di Konsol NLB, temukan instans NLB dan klik ID-nya untuk membuka halaman detail instans.
-
Di bagian Quick Start with NLB, klik Create Server Group.
-
Di kotak dialog Create Server Group, atur Server Group Name menjadi
ECS_NLBlalu klik Create. -
Di kotak dialog konfirmasi, klik Add Backend Server.
-
Di tab Backend Servers, klik Add Backend Server. Di panel yang muncul, pilih kedua instans ECS.
-
Klik Next untuk melanjutkan ke langkah Ports/Weights. Atur Port menjadi
22untuk setiap instans, lalu klik OK.
Tunggu hingga proses penambahan selesai sebelum melanjutkan.
Langkah 4: Konfigurasikan listener
Tambahkan listener TCP pada port 22 untuk mengarahkan lalu lintas SSH dari NLB ke kelompok server. Untuk informasi lebih lanjut, lihat Tambahkan listener TCP.
-
Di halaman detail instans NLB, klik Create Listener di bagian Quick Start with NLB.
-
Di halaman Configure Server Load Balancer, atur Listener Protocol menjadi TCP dan Listener Port menjadi
22. Klik Next. -
Di langkah Select Server Group, pilih Server Type dan pilih
ECS_NLBdari daftar kelompok server. Klik Next. -
Di langkah Configuration Review, pastikan instans ECS dan port listener sudah benar. Klik Submit.
Langkah 5: Tambahkan instans NLB sebagai sumber data SSH
Konfigurasikan sumber data SSH di DataWorks menggunakan nama domain instans NLB sebagai alamat host. Untuk informasi lebih lanjut, lihat Sumber data SSH.
Konfigurasikan sumber data
-
Login ke Konsol DataWorks. Di panel navigasi kiri, pilih More > Management Center.
-
Pilih ruang kerja dari daftar drop-down dan klik Go to Management Center.
-
Di panel navigasi kiri, klik Data Sources. Di tab Data Sources, klik Add Data Source.
-
Di kotak dialog Add Data Source, klik SSH. Di halaman Add SSH Data Source, konfigurasikan parameter berikut: Untuk mendapatkan nama domain instans NLB: Di Konsol NLB, buka halaman detail instans, buka bagian Basic Information di tab Instance Details, lalu klik Copy di samping Domain Name.
Parameter Nilai Data Source Name Nama kustom. Contoh: SSH_DBConfiguration Mode Connection String Mode (tetap) Authentication Method DataWorks SSH Public Key Authentication (disarankan) Host Address Nama domain instans NLB (lihat di bawah) Host Port 22Username rootPublic Key Klik Generate Key Pair untuk menghasilkan kunci
Tambahkan kunci publik ke setiap instans ECS
Selesaikan langkah ini sebelum menguji konektivitas jaringan. Jika dilewati, pengujian konektivitas akan gagal.
Setelah mengklik Generate Key Pair, salin kunci publik yang dihasilkan dan tambahkan ke file .ssh/authorized_keys di setiap instans ECS:
-
Salin kunci publik yang ditampilkan di halaman Add SSH Data Source.
-
Login ke ECS Instance 1 (ikuti langkah-langkah di Langkah 1: Buat instans ECS) dan jalankan:
echo "<public-key>" >> ~/.ssh/authorized_keysGanti
<public-key>dengan kunci yang telah Anda salin. -
Ulangi untuk ECS Instance 2.
Uji konektivitas
Di bagian Connection Configuration, temukan kelompok sumber daya arsitektur tanpa server yang terkait dengan ruang kerja Anda dan klik Test Network Connectivity di kolom Connection Status.
Langkah 6: Buat dan jalankan node SSH
Buat node SSH di Data Studio, jalankan beberapa kali, dan pastikan bahwa NLB mendistribusikan permintaan ke kedua instans ECS.
Buat node
-
Di halaman Workspaces, temukan ruang kerja dan pilih Shortcuts > Data Studio di kolom Actions.
-
Di panel navigasi kiri Data Studio, klik ikon
. Klik ikon
di samping Workspace Directories dan pilih Create Node > General > SSH. -
Di kotak dialog Create Node, atur Name lalu klik OK.
Konfigurasikan dan jalankan node
-
Di editor kode, masukkan:
cat /tmp/a.txt -
Dari daftar drop-down Select DataSource di bagian atas tab konfigurasi, pilih
SSH_DB. -
Di panel navigasi kanan, klik Debugging Configurations. Pilih kelompok sumber daya arsitektur tanpa server dari daftar drop-down Resource Group.
-
Klik Save di bilah alat, lalu klik Run.
Verifikasi hasil
Jalankan node beberapa kali. Karena NLB mendistribusikan tugas ke instans ECS secara acak berdasarkan algoritma penyeimbangan bebannya, Anda mungkin melihat hasil berbeda antar eksekusi:
Hasil eksekusi 1 
Hasil eksekusi 2
Mendapatkan hasil yang sama dalam beberapa eksekusi berturut-turut adalah hal normal—NLB mungkin mendistribusikan tugas ke instans yang sama dalam beberapa eksekusi. Melihat hasil dari kedua instans dalam beberapa eksekusi menegaskan bahwa penyeimbangan beban berfungsi.
Jika semua eksekusi secara konsisten menghasilkan hasil yang sama, periksa hal berikut:
-
Kunci publik telah ditambahkan dengan benar ke
.ssh/authorized_keysdi kedua instans ECS -
Kedua instans menunjukkan status sehat di kelompok server NLB
-
Port listener (
22) sesuai dengan port server backend
Langkah selanjutnya
-
Untuk memantau status kesehatan server backend di kelompok server NLB Anda, lihat Kelompok server NLB.
-
Untuk mempelajari lebih lanjut tentang pengembangan node SSH, lihat Pengembangan node.
Lampiran: Prinsip implementasi
Gambar berikut menunjukkan cara NLB mendistribusikan tugas di DataWorks untuk memastikan eksekusi tugas SSH yang stabil.
Setelah Anda menambahkan beberapa instans ECS ke kelompok server instans NLB, dan menetapkan nama domain instans NLB sebagai alamat host sumber data SSH di DataWorks, saat Anda mengonfigurasi node SSH, permintaan tugas pada node SSH akan dipantau oleh listener yang dikonfigurasi untuk instans NLB berdasarkan sumber data tersebut, dan tugas terkait akan didistribusikan ke instans ECS yang sehat untuk dijalankan berdasarkan kebijakan penyeimbangan beban. Hasil eksekusi dikembalikan secara transparan oleh instans NLB dan ditampilkan secara real time di log eksekusi node SSH.