View a markdown version of this page

Prasyarat dan pengaturan cluster - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Prasyarat dan pengaturan cluster

Di bagian ini, Anda mengatur infrastruktur untuk tutorial ketersediaan tinggi. Anda membuat grup keamanan, membuat key pair, meluncurkan instans Amazon EC2, menginstal Pacemaker dan DRBD, membuat klaster, dan mengonfigurasi replikasi tingkat blok antar instance.

Membuat dan mengkonfigurasi grup keamanan

Buat grup keamanan yang memungkinkan semua lalu lintas antar instance cluster. Untuk tutorial ini, Anda membuka semua port untuk menyederhanakan pengaturan. Langkah ini membutuhkan VPC. Jika Anda tidak memilikinya, lihat Membuat VPC.

Konsol
  • Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

  • Di panel navigasi, pilih Grup Keamanan, lalu pilih Buat grup keamanan.

  • Masukkan nama (misalnya,pacemaker-cluster-sg) dan deskripsi.

  • Pilih VPC Anda.

  • Pilih Buat grup keamanan.

  • Setelah pembuatan, pilih grup keamanan baru dan edit aturan masuknya. Pilih Tambahkan aturan. Setel Type to All traffic dan Source ke ID grup keamanan itu sendiri. Ini memungkinkan semua lalu lintas antar instance dalam grup keamanan ini.

  • Tambahkan aturan masuk kedua untuk akses SSH. Atur Type ke SSH dan Source ke IP Saya.

AWS Command Line Interface
  • Buat grup keamanan.

    aws ec2 create-security-group \ --group-name pacemaker-cluster-sg \ --description "Security group for Pacemaker HA cluster" \ --vpc-id your-vpc-id

    Perhatikan GroupId dari output (misalnya,sg-0123456789abcdef0).

  • Tambahkan aturan masuk untuk mengizinkan semua lalu lintas dari instans dalam grup keamanan yang sama.

    aws ec2 authorize-security-group-ingress \ --group-id security-group-id \ --protocol all \ --source-group security-group-id
  • Tambahkan aturan masuk untuk mengizinkan akses SSH dari alamat IP Anda.

    aws ec2 authorize-security-group-ingress \ --group-id security-group-id \ --protocol tcp \ --port 22 \ --cidr your-ip/32

Membuat pasangan kunci

Buat key pair yang akan digunakan untuk akses SSH ke semua instance. Gunakan key pair yang sama untuk semua instance dalam tutorial ini.

Konsol
  • Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

  • Di panel navigasi, pilih Key Pairs, lalu pilih Create key pair.

  • Masukkan nama (misalnya,pacemaker-key).

  • Pilih RSA sebagai jenis key pair dan .pem sebagai format file.

  • Pilih Buat pasangan kunci. File kunci pribadi diunduh secara otomatis.

Awas

Simpan file kunci pribadi (.pem) di lokasi yang aman. Anda tidak dapat mengunduhnya lagi. Anda memerlukan file ini ke SSH ke dalam instance Anda.

AWS Command Line Interface
  • Buat key pair.

    aws ec2 create-key-pair \ --key-name key-name \ --query 'KeyMaterial' \ --output text > pacemaker-key.pem
  • Atur izin yang benar pada file kunci pribadi.

    chmod 400 pacemaker-key.pem

Luncurkan instans EC2

Luncurkan dua instance Ubuntu Amazon EC2 di grup keamanan yang Anda buat. Jenis instance kecil (misalnya,t3.small) sudah cukup untuk tutorial ini.

Konsol
  • Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

  • Pilih Luncurkan Instans.

  • Masukkan nama untuk contoh (misalnya,pacemaker-instance-1).

  • Di bawah Application and OS Images, cari Ubuntu dan pilih AMI Server Ubuntu (misalnya, Ubuntu Server 24.04 LTS).

  • Di bawah Jenis instans, pilih t3.small.

  • Di bawah Pasangan kunci, pilih kunci yang Anda buat sebelumnya.

  • Di bawah Pengaturan jaringan, pilih Edit, pilih VPC Anda dan subnet, dan di bawah Firewall (grup keamanan), pilih Pilih grup keamanan yang ada dan pilih. pacemaker-cluster-sg

  • Pilih Luncurkan instans.

  • Ulangi untuk setiap contoh tambahan (misalnya,pacemaker-instance-2). Pastikan semua instance berada dalam VPC dan grup keamanan yang sama.

AWS Command Line Interface
  • Luncurkan sebuah instans.

    aws ec2 run-instances \ --image-id ubuntu-ami-id \ --instance-type t3.small \ --key-name key-name \ --security-group-ids security-group-id \ --subnet-id subnet-id \ --count 1 \ --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=pacemaker-instance-1}]'

    Ulangi dengan Value=pacemaker-instance-2 untuk contoh kedua.

Anda memerlukan alamat IP pribadi dari setiap instance untuk konfigurasi cluster.

  • Konsol: Di konsol Amazon EC2, pilih instance dan temukan alamat IPv4 pribadi di tab Detail.

  • AWS Command Line Interface:

    aws ec2 describe-instances \ --filters "Name=tag:Name,Values=pacemaker-instance-*" \ --query "Reservations[*].Instances[*].[Tags[?Key=='Name'].Value|[0],PrivateIpAddress]" \ --output table

Instal utilitas Pacemaker

SSH ke setiap instance dan instal utilitas Pacemaker.

ssh -i pacemaker-key.pem ubuntu@instance-public-ip
sudo apt update sudo apt install -y pacemaker pcs resource-agents-extra resource-agents-common resource-agents-base

Konfigurasikan komunikasi jaringan

  1. Uji komunikasi antar instance. Pada instance tujuan, jalankan perintah berikut untuk mendengarkan ping dari instance sumber.

    sudo tcpdump host source-instance-private-ip

    Pada instance sumber, jalankan perintah berikut untuk melakukan ping ke instance tujuan.

    ping -c 4 destination-instance-private-ip

    Anda akan melihat tanggapan ping di kedua sisi. Jika tidak, verifikasi bahwa grup keamanan Anda mengizinkan semua lalu lintas antar instance.

  2. Nonaktifkan manajemen nama host cloud-init. Pada instans Ubuntu Amazon EC2, cloud-init dapat mengembalikan nama host dan perubahan saat reboot. /etc/hosts Jalankan ini pada setiap instance untuk mencegahnya.

    sudo bash -c 'cat > /etc/cloud/cloud.cfg.d/99-preserve-hostconfig.cfg <<EOF preserve_hostname: true manage_etc_hosts: false EOF'
  3. Tetapkan nama host pada setiap instance. Pacemaker menggunakan nama host untuk mengidentifikasi instance cluster.

    Pada contoh 1:

    sudo hostnamectl set-hostname instance1

    Pada contoh 2:

    sudo hostnamectl set-hostname instance2
  4. Konfigurasikan/etc/hosts. Pada setiap instance, tambahkan IP pribadi dan pasangan nama host ke. /etc/hosts Ini memungkinkan instance untuk menyelesaikan satu sama lain dengan nama host.

    sudo tee -a /etc/hosts <<EOF instance1-private-ip instance1 instance2-private-ip instance2 EOF

Buat cluster Pacemaker

  1. Mulai daemon pcs pada setiap instance.

    sudo systemctl enable pcsd.service sudo systemctl start pcsd.service
  2. Atur kata sandi peretas. haclusterPengguna adalah akun sistem yang dibuat secara otomatis saat Anda menginstal pcs paket. Alat pacu jantung menggunakan akun ini untuk otentikasi cluster antar instance. Tetapkan kata sandi yang sama pada setiap instance.

    sudo passwd hacluster
  3. Otorisasi host PC. Otorisasi instance cluster satu sama lain. Jalankan ini pada setiap contoh.

    sudo pcs host auth instance1 instance2

    Anda akan diminta untuk hacluster nama pengguna dan kata sandi.

  4. Siapkan cluster. Jalankan perintah ini hanya pada satu contoh. --forceBendera menghancurkan cluster yang ada di perangkat.

    sudo pcs cluster setup my-gg-cluster instance1 instance2 --force
  5. Mulai cluster. Jalankan perintah ini hanya pada satu contoh.

    sudo pcs cluster start --all sudo pcs cluster enable --all
  6. Verifikasi status cluster pada salah satu instance.

    sudo pcs status

Mengatur DRBD

DRBD (Distributed Replicated Block Device) adalah modul kernel Linux yang mereplikasi perangkat penyimpanan antar instance secara real time. Ia bekerja pada tingkat perangkat blok — tingkat disk mentah di bawah sistem file — sehingga semua data yang ditulis ke disk pada satu instance dicerminkan ke yang lain. Ini memastikan bahwa jika instance utama gagal, instance siaga memiliki salinan data yang identik.

  1. Buat dan lampirkan volume EBS. Buat volume EBS untuk setiap instance. Volume harus berada di Availability Zone yang sama dengan instance.

    Konsol
    • Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/

    • Di panel navigasi, pilih Volume, lalu pilih Buat volume.

    • Setel tipe Volume ke gp3, Ukuran ke 8 GiB, dan Availability Zone ke zona yang sama dengan instance Anda.

    • Pilih Buat volume.

    • Pilih volume baru, pilih Tindakan > Lampirkan volume, pilih instance target, atur nama perangkat/dev/xvdbz, dan pilih Lampirkan volume.

    • Ulangi untuk setiap contoh.

    AWS Command Line Interface
    • Buat volume di Availability Zone yang sama dengan instans Anda.

      aws ec2 create-volume \ --volume-type gp3 \ --size 8 \ --availability-zone instance-availability-zone

      Perhatikan VolumeId dari output.

    • Lampirkan volume ke sebuah instance.

      aws ec2 attach-volume \ --volume-id volume-id \ --instance-id instance-id \ --device /dev/xvdbz

      Ulangi untuk setiap contoh.

  2. Verifikasi volume. SSH ke setiap instance dan verifikasi volume dilampirkan dengan mencantumkan perangkat blok.

    lsblk

    Pada jenis Nitro-based instance sepertit3.small, volume muncul sebagai perangkat NVMe (misalnya,/dev/nvme1n1), bukan. /dev/xvdbz Gunakan lsblk untuk mengidentifikasi nama perangkat yang sebenarnya, dan gunakan nama itu dalam konfigurasi DRBD.

  3. Instal utilitas DRBD pada setiap instance.

    sudo apt install -y drbd-utils
  4. Konfigurasikan sumber daya DRBD. Buat direktori konfigurasi sumber daya DRBD dan file pada kedua instance.

    sudo mkdir -p /etc/drbd.d sudo vi /etc/drbd.d/greengrass.res

    Tambahkan konfigurasi berikut. Ganti nama host dan alamat IP dengan nilai Anda.

    resource greengrass { protocol C; on instance1 { device /dev/drbd0; disk /dev/instance1-device-name; address instance1-private-ip:7788; meta-disk internal; } on instance2 { device /dev/drbd0; disk /dev/instance2-device-name; address instance2-private-ip:7788; meta-disk internal; } }
  5. Buat dan mulai sumber daya DRBD. Jalankan pada kedua contoh.

    sudo drbdadm create-md greengrass sudo drbdadm up greengrass

    Verifikasi dengan lsblk yang drbd0 muncul di bawah perangkat volume EBS Anda (misalnya, xvdbz ataunvme1n1).

  6. Tetapkan contoh utama. Jalankan perintah berikut pada instance1 hanya untuk memaksanya menjadi primer dan menunggu sinkronisasi.

    sudo drbdadm -- --overwrite-data-of-peer primary greengrass sudo drbdadm status

    Tunggu hingga kedua instance ditampilkan UpToDate untuk status disk. Setelah disinkronkan, semua instance lainnya menjadi instance siaga.

  7. Format dan pasang perangkat DRBD.

    Pada contoh utama saja, format perangkat DRBD:

    sudo mkfs.ext4 /dev/drbd0

    Pada semua contoh, buat direktori mount:

    sudo mkdir -p /greengrass/v2

    Pada instance utama saja, pasang perangkat DRBD:

    sudo mount /dev/drbd0 /greengrass/v2
  8. Verifikasi status sinkronisasi DRBD.

    sudo drbdadm status mount | grep 'drbd'