Kali ini saya akan membahas tentang error yang terjadi pada saat EC2 pada AWS melakukan koneksi ke RDS. Environment yang digunakan pada kasus ini adalah laravel dan menggunakan OS Amazon linux AMI. Error terjadi secara acak.

Error php_network_getaddresses: getaddrinfo failed: Name or service not known :

SQLSTATE[HY000][2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from `table` where `id` = 001 and `users`.`deletet_at` is null limit 1)

Cara mengatasi php_network_getaddresses: getaddrinfo failed: Name or service not known :

  1. Check hostname RDS, misal : client-project.ap-southeast-2.rds.amazonaws.com
  2. Pastikan EC2 dapat melakukan koneksi ke RDS dengan melakukan perintah :
    mysql -u user -p -h client-project.ap-southeast-2.rds.amazonaws.com
  3. Lakukan dig pada hostname RDS untuk mengetahui IP Address untuk hostname RD tersebut
    dig +short client-project.ap-southeast-2.rds.amazonaws.com
    Misalkan IP Addressnya adalah : 172.29.29.29
  4. Tambahkan IP Address & Hostname pada file /etc/hosts menggunakan editor favorit kalian, bisa menggunakan nano, vi ataupun vim.
    172.29.29.29 client-project.ap-southeast-2.rds.amazonaws.com

Lalu check apakah masalah masih terjadi. Pada kasus saya setelah menambahkan mapping ip address & hostname pada dns lokal atau file /etc/hosts masalah yang terjadi tidak muncul lagi.