Mengakses klaster atau grup replikasi Anda - Amazon ElastiCache untuk Redis

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

Mengakses klaster atau grup replikasi Anda

Instans Amazon ElastiCache Anda dirancang untuk diakses melalui instans Amazon EC2.

Jika Anda meluncurkan instans ElastiCache Anda di Amazon Virtual Private Cloud (Amazon VPC), Anda dapat mengakses instans ElastiCache Anda dari instans Amazon EC2 di Amazon VPC yang sama. Anda juga dapat menggunakan peering VPC untuk mengakses instans ElastiCache Anda dari Amazon EC2 di Amazon VPC yang berbeda.

Jika Anda meluncurkan instans ElastiCache Anda di EC2 Classic, Anda mengizinkan instans EC2 untuk mengakses klaster Anda dengan memberikan akses ke grup keamanan cache Anda kepada grup keamanan Amazon EC2 yang terkait dengan instans tersebut. Secara default, akses ke klaster dibatasi pada akun yang meluncurkan klaster tersebut.

Memberikan akses ke klaster atau grup replikasi Anda

Anda meluncurkan klaster Anda ke EC2-VPC

Jika Anda meluncurkan klaster ke Amazon Virtual Private Cloud (Amazon VPC), Anda dapat terhubung ke klaster ElastiCache Anda hanya dari instans Amazon EC2 yang berjalan di Amazon VPC yang sama. Dalam hal ini, Anda akan perlu memberikan izin masuk jaringan kepada klaster.

catatan

Pastikan Anda telah mengaktifkan Local Zones jika Anda menggunakannya. Untuk informasi lain, lihat Mengaktifkan Local Zones. Dengan mengaktifkannya, VPC Anda diperluas ke Zona Lokal dan VPC Anda akan memperlakukan subnet seperti subnet apa pun di Availability Zone yang lain. Gateway, tabel rute dan pertimbangan grup keamanan lainnya yang berkaitan akan menyesuaikan secara otomatis.

Untuk memberikan izin masuk jaringan dari grup keamanan Amazon VPC ke klaster
  1. Masuk ke AWS Management Console dan buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.

  2. Pada panel navigasi, di bagian Jaringan & Keamanan, pilih Grup Keamanan.

  3. Dari daftar grup keamanan, pilih grup keamanan untuk Amazon VPC Anda. Kecuali Anda membuat grup keamanan untuk penggunaan ElastiCache, grup keamanan ini akan diberi nama default.

  4. Pilih tab Masuk, lalu lakukan hal berikut:

    1. Pilih Edit.

    2. Pilih Tambahkan aturan.

    3. Di kolom Jenis, pilih Aturan TCP khusus.

    4. Di kotak Rentang port, ketik nomor port untuk simpul klaster Anda. Nomor ini harus sama dengan yang Anda tentukan saat meluncurkan klaster. Port default untuk Redis adalah 6379.

    5. Di kotak Sumber, pilih Di mana saja yang memiliki rentang port (0.0.0.0/0). Dengan memilih opsi ini, setiap instans Amazon EC2 yang Anda luncurkan di Amazon VPC Anda dapat terhubung ke simpul ElastiCache Anda.

      penting

      Membuka klaster ElastiCache untuk 0.0.0.0/0 tidak mengekspos klaster ke Internet karena klaster tidak memiliki alamat IP publik sehingga klaster tidak dapat diakses dari luar VPC. Namun, grup keamanan default dapat diterapkan ke instans Amazon EC2 lainnya di akun pelanggan, dan instans tersebut mungkin memiliki alamat IP publik. Jika instans tersebut menjalankan sesuatu di port default, layanan tersebut dapat terekspos secara tak disengaja. Oleh karena itu, sebaiknya buat Grup Keamanan VPC yang akan digunakan secara eksklusif oleh ElastiCache. Untuk informasi selengkapnya, lihat Grup Keamanan Khusus.

    6. Pilih Simpan.

Saat Anda meluncurkan instans Amazon EC2 ke Amazon VPC Anda, instans tersebut dapat terhubung ke klaster ElastiCache Anda.

Mengakses sumber daya ElastiCache dari luar AWS

Amazon ElastiCache adalah layanan AWS yang menyediakan penyimpanan nilai-kunci dalam memori berbasis cloud. Layanan ini dirancang untuk diakses secara eksklusif dari dalam AWS. Namun, jika klaster ElastiCache di-host di dalam VPC, Anda dapat menggunakan instans Network Address Translation (NAT) untuk menyediakan akses luar.

Persyaratan

Persyaratan berikut harus dipenuhi agar Anda dapat mengakses sumber daya ElastiCache Anda dari luar AWS:

  • Klaster harus berada dalam VPC dan diakses melalui instans Network Address Translation (NAT). Tidak ada pengecualian untuk persyaratan ini.

  • Instans NAT harus diluncurkan di VPC yang sama dengan klaster.

  • Instans NAT harus diluncurkan di subnet publik yang terpisah dari klaster.

  • Alamat IP Elastis (EIP) harus dikaitkan dengan instans NAT. Fitur penerusan port iptables digunakan untuk meneruskan port di instans NAT ke port simpul cache di dalam VPC.

Pertimbangan

Perhatikan pertimbangan berikut saat mengakses sumber daya ElastiCache Anda dari luar ElastiCache.

  • Klien terhubung ke port EIP dan cache dari instans NAT. Penerusan port di instans NAT meneruskan lalu lintas ke simpul klaster cache yang sesuai.

  • Jika simpul klaster ditambahkan atau diganti, aturan iptables perlu diperbarui untuk mencerminkan perubahan ini.

Batasan

Pendekatan ini harus digunakan untuk tujuan pengujian dan pengembangan saja. Sebaiknya jangan digunakan untuk produksi karena batasan berikut:

  • Instans NAT bertindak sebagai proxy antara klien dan beberapa klaster. Penambahan proxy berdampak pada performa klaster cache. Dampaknya meningkat dengan jumlah klaster cache yang Anda akses melalui instans NAT.

  • Lalu lintas dari klien ke instans NAT tidak terenkripsi. Oleh karena itu, Anda harus menghindari pengiriman data sensitif melalui instans NAT.

  • Instans NAT menambahkan overhead untuk mempertahankan instans lain.

  • Instans NAT berfungsi sebagai satu titik kegagalan. Untuk informasi tentang cara mengatur NAT ketersediaan tinggi di VPC, lihat Ketersediaan Tinggi untuk Instans NAT Amazon VPC: Contoh.

Cara mengakses sumber daya ElastiCache dari luar AWS

Prosedur berikut menunjukkan cara terhubung ke sumber daya ElastiCache Anda menggunakan instans NAT.

Langkah-langkah ini mengasumsikan sebagai berikut:

  • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379

  • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379

Selanjutnya Anda membutuhkan NAT ke arah yang berlawanan:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55

Anda juga perlu mengaktifkan penerusan IP, yang dinonaktifkan secara default:

sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl --system

  • Anda mengakses klaster Redis dengan:

    • Alamat IP – 10.0.1.230

    • Port Redis default – 6379

    • Grup keamanan — sg-bd56b7da

    • Alamat IP instans AWS – sg-bd56b7da

  • Klien tepercaya Anda memiliki alamat IP 198.51.100.27.

  • Instans NAT Anda memiliki Alamat IP Elastis 203.0.113.73.

  • Instans NAT Anda memiliki grup keamanan sg-ce56b7a9.

Untuk terhubung ke resource ElastiCache Anda menggunakan instans NAT
  1. Buat instans NAT di VPC yang sama dengan klaster cache Anda tetapi di subnet publik.

    Secara default, wizard VPC akan meluncurkan tipe simpul cache.m1.small. Anda harus memilih ukuran simpul berdasarkan kebutuhan Anda. Anda harus menggunakan EC2 NAT AMI agar dapat mengakses ElastiCache dari luar AWS.

    Untuk informasi tentang cara membuat instans NAT, lihat Instans NAT di Panduan Pengguna VPC AWS.

  2. Buat aturan grup keamanan untuk klaster cache dan instans NAT.

    Grup keamanan instans NAT dan instans cluster harus memiliki aturan berikut:

    • Dua aturan masuk

      • Satu untuk mengizinkan koneksi TCP dari klien tepercaya ke setiap port cache yang diteruskan dari instans NAT (6379 - 6381).

      • Sedetik untuk mengizinkan akses SSH ke klien tepercaya.

      Grup keamanan instans NAT - aturan masuk
      Tipe Protokol Rentang port Sumber
      Aturan TCP Kustom TCP 6379-6380 198.51.100.27/32
      SSH TCP %22 203.0.113.73/32
    • Aturan keluar untuk mengizinkan koneksi TCP ke port cache (6379).

      Grup keamanan instans NAT - aturan keluar
      Tipe Protokol Rentang port Tujuan
      Aturan TCP Kustom TCP 6379 sg-ce56b7a9 (Grup Keamanan instans klaster)
    • Aturan masuk untuk grup keamanan klaster yang mengizinkan koneksi TCP dari instans NAT ke port cache (6379).

      Grup keamanan instans klaster - aturan masuk
      Tipe Protokol Rentang port Sumber
      Aturan TCP Kustom TCP 6379 sg-bd56b7da (Grup Keamanan Klaster)
  3. Validasi aturan.

    • Konfirmasikan bahwa klien tepercaya dapat melakukan SSH ke instans NAT.

    • Konfirmasikan bahwa klien tepercaya dapat terhubung ke klaster dari instans NAT.

  4. Tambahkan aturan iptables ke instans NAT.

    Aturan iptables harus ditambahkan ke tabel NAT untuk setiap simpul di klaster untuk meneruskan port cache dari instans NAT ke simpul klaster. Contohnya mungkin terlihat seperti berikut:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379

    Nomor port harus unik untuk setiap simpul di klaster. Misalnya, jika bekerja dengan klaster Redis tiga simpul menggunakan port 6379 - 6381, aturan akan terlihat seperti berikut:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379
  5. Konfirmasikan bahwa klien tepercaya dapat terhubung ke klaster.

    Klien tepercaya harus terhubung ke EIP yang terkait dengan instans NAT dan port klaster yang sesuai dengan simpul klaster yang sesuai. Misalnya, string koneksi untuk PHP mungkin terlihat seperti berikut:

    redis->connect( '203.0.113.73', 6379 ); redis->connect( '203.0.113.73', 6380 ); redis->connect( '203.0.113.73', 6381 );

    Klien telnet juga dapat digunakan untuk memverifikasi koneksi. Misalnya:

    telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
  6. Simpan konfigurasi iptables.

    Simpan aturan setelah Anda menguji dan memverifikasinya. Jika Anda menggunakan distribusi Linux berbasis Redhat (seperti Amazon Linux), jalankan perintah berikut:

    service iptables save

Topik terkait

Topik-topik berikut mungkin menarik bagi Anda.