Mengakses ElastiCache klaster atau grup replikasi - Amazon ElastiCache

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

Mengakses ElastiCache klaster atau grup replikasi

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

Jika meluncurkan ElastiCache instans di Amazon Virtual Private Cloud (AmazonVPC), Anda dapat mengakses ElastiCache instans dari EC2 instans Amazon di Amazon yang samaVPC. Atau, dengan menggunakan VPC peering, Anda dapat mengakses ElastiCache instans Anda dari Amazon EC2 di Amazon yang berbeda. VPC

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

Memberikan akses ke klaster atau grup replikasi Anda

Anda meluncurkan cluster Anda ke EC2 - VPC

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

catatan

Pastikan Anda telah mengaktifkan Zona Lokal jika Anda menggunakannya. Untuk informasi selengkapnya, lihat Mengaktifkan Zona Lokal. Dengan demikian, Anda VPC diperluas ke Zona Lokal tersebut dan Anda VPC akan memperlakukan subnet sebagai subnet apa pun di Availability Zone lainnya dan gateway yang relevan, tabel rute, dan pertimbangan grup keamanan lainnya. akan disesuaikan secara otomatis.

Untuk memberikan masuknya jaringan dari grup VPC keamanan Amazon ke klaster
  1. Masuk ke AWS Management Console dan buka EC2 konsol Amazon 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 AndaVPC. Kecuali Anda membuat grup keamanan untuk ElastiCache digunakan, 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 Type, pilih TCPAturan kustom.

    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 Memcached adalah 11211 Port default untuk Valkey dan Redis adalah. OSS 6379

    5. Di kotak Sumber, pilih Anywhere yang memiliki rentang port (0.0.0.0/0) sehingga EC2 instans Amazon apa pun yang Anda luncurkan di Amazon VPC dapat terhubung ke node Anda. ElastiCache

      penting

      Membuka ElastiCache cluster ke 0.0.0.0/0 tidak mengekspos cluster ke Internet karena tidak memiliki alamat IP publik dan oleh karena itu tidak dapat diakses dari luar. VPC Namun, grup keamanan default dapat diterapkan ke EC2 instans Amazon 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, kami sarankan untuk membuat Grup VPC Keamanan yang akan digunakan secara eksklusif oleh ElastiCache. Untuk informasi selengkapnya, lihat Grup Keamanan Kustom.

    6. Pilih Simpan.

Saat meluncurkan EC2 instans Amazon ke AmazonVPC, instans tersebut akan dapat terhubung ke ElastiCache cluster Anda.

Mengakses ElastiCache sumber daya dari luar AWS

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

Persyaratan

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

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

  • NATInstance harus diluncurkan VPC sama dengan cluster.

  • NATInstance harus diluncurkan di subnet publik yang terpisah dari cluster.

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

Pertimbangan

Pertimbangan berikut harus diingat saat mengakses ElastiCache sumber daya Anda dari luar. ElastiCache

  • Klien terhubung ke port EIP dan cache NAT instance. Port forwarding pada NAT instance meneruskan lalu lintas ke node cluster 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:

  • NATInstance ini bertindak sebagai proxy antara klien dan beberapa cluster. Penambahan proksi berdampak pada performa klaster cache. Dampaknya meningkat dengan jumlah cluster cache yang Anda akses melalui instance. NAT

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

  • NATInstance menambahkan overhead untuk mempertahankan instance lain.

  • NATInstance berfungsi sebagai titik kegagalan tunggal. Untuk informasi tentang cara mengatur ketersediaan NAT tinggiVPC, lihat Ketersediaan Tinggi untuk VPC NAT Instans Amazon: Contoh.

Cara mengakses ElastiCache sumber daya dari luar AWS

Prosedur berikut menunjukkan cara menghubungkan ke ElastiCache sumber daya Anda menggunakan sebuah NAT instance.

Langkah-langkah ini mengasumsikan hal 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 perlu ke NAT 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 Memcached dengan:

    • Alamat IP – 10.0.1.230

    • Port Memcached default – 11211

    • Grup keamanan – *10\.0\.0\.55*

  • Anda mengakses cluster Valkey atau Redis OSS dengan:

    • Alamat IP – 10.0.1.230

    • Port standar - 6379

    • Grup keamanan – sg-bd56b7da

    • AWS alamat IP contoh — sg-bd56b7da

  • Klien tepercaya Anda memiliki alamat IP 198.51.100.27.

  • NATInstance Anda memiliki Alamat IP Elastis 203.0.113.73.

  • NATInstance Anda memiliki grup keamanan sg-ce56b7a9.

Untuk terhubung ke ElastiCache sumber daya Anda menggunakan NAT instans
  1. Buat NAT instance yang VPC sama dengan cluster cache Anda tetapi di subnet publik.

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

    Untuk informasi tentang membuat NAT instance, lihat NATInstans di Panduan AWS VPC Pengguna.

  2. Buat aturan grup keamanan untuk cluster cache dan NAT instance.

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

    • Dua aturan masuk

      • Dengan Memcached, aturan pertama adalah mengizinkan TCP koneksi dari klien tepercaya ke setiap port cache yang diteruskan dari NAT instance (11211 - 11213).

      • Dengan Valkey dan RedisOSS, aturan pertama adalah mengizinkan TCP koneksi dari klien tepercaya ke setiap port cache yang diteruskan dari NAT instance (6379 - 6381).

      • Aturan kedua untuk memungkinkan SSH akses ke klien tepercaya.

      NATgrup keamanan instance - aturan masuk dengan Memcached
      Tipe Protokol Rentang port Sumber
      TCPAturan Kustom TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NATgrup keamanan instance - aturan masuk dengan Valkey atau Redis OSS
      Tipe Protokol Rentang port Sumber
      TCPAturan Kustom TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • Dengan Memcached, aturan keluar untuk memungkinkan TCP koneksi ke port cache (11211).

      NATgrup keamanan instance - aturan keluar
      Tipe Protokol Rentang Port Tujuan
      TCPAturan Kustom TCP 11211 sg-ce56b7a9 (Grup Keamanan instans klaster)
    • Dengan Valkey atau RedisOSS, aturan keluar untuk memungkinkan TCP koneksi ke port cache (6379).

      NATgrup keamanan instance - aturan keluar
      Tipe Protokol Rentang Port Tujuan
      TCPAturan Kustom TCP 6379 sg-ce56b7a9 (Grup Keamanan instans klaster)
    • Dengan Memcached, aturan masuk untuk grup keamanan cluster yang memungkinkan TCP koneksi dari NAT instance ke port cache (11211).

      Grup keamanan instans klaster - aturan masuk
      Jenis Protokol Rentang port Sumber
      TCPAturan Kustom TCP 11211 sg-bd56b7da (Grup Keamanan) NAT
    • Dengan Valkey atau RedisOSS, aturan masuk untuk grup keamanan cluster yang memungkinkan TCP koneksi dari NAT instance ke port cache (6379).

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

    • Konfirmasikan bahwa klien tepercaya dapat SSH melakukan NAT instance.

    • Konfirmasikan bahwa klien tepercaya dapat terhubung ke cluster dari NAT instance.

  4. Memcache

    Tambahkan aturan iptables ke NAT instance.

    Aturan iptables harus ditambahkan ke NAT tabel untuk setiap node di cluster untuk meneruskan port cache dari NAT instance ke node cluster. Contohnya mungkin terlihat seperti berikut:

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

    Nomor port harus unik untuk setiap simpul di klaster. Misalnya, jika ada klaster Memcached tiga simpul menggunakan port 11211 - 11213, aturan akan terlihat seperti berikut:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211

    Konfirmasikan bahwa klien tepercaya dapat terhubung ke klaster.

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

    $memcached->connect( '203.0.113.73', 11211 ); $memcached->connect( '203.0.113.73', 11212 ); $memcached->connect( '203.0.113.73', 11213 );

    Klien telnet juga dapat digunakan untuk memverifikasi koneksi. Misalnya:

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valkey atau Redis OSS

    Tambahkan aturan iptables ke NAT instance.

    Aturan iptables harus ditambahkan ke NAT tabel untuk setiap node di cluster untuk meneruskan port cache dari NAT instance ke node cluster. 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 OSS cluster Redis tiga node menggunakan port 6379 - 6381, aturannya 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

    Konfirmasikan bahwa klien tepercaya dapat terhubung ke klaster.

    Klien tepercaya harus terhubung ke EIP yang terkait dengan NAT instance dan port cluster yang sesuai dengan node cluster 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
  5. 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.