New Relic sur du Beanstalk PHP

Ces derniers temps j’ai beaucoup travaillé sur les produits Amazon Web Services. J’ai notamment utilisé Beanstalk pour mettre en production un site web important. Pour mesurer l’activité des serveurs et l’utilisation de l’application j’ai utilisé le service New Relic. En plus il existe un partenariat entre AWS et New Relic pour utiliser un compte standard gratuitement (vous économisez $50 par mois).

Pour utiliser New Relic il faut l’installer sur une image et en faire une nouvelle AMI. Dans un premier temps j’ai fait l’erreur de faire une image depuis une instance EC2 lancée par Beanstalk. Ca ne peut pas fonctionner car vous intégrez votre application à l’image. La procédure est assez simple une fois qu’on a compris ça.

  1. Notez la référence de l’AMI utilisée en ce moment pas Beanstalk (dans mon cas ami-df9b9cab)
  2. Lancez une nouvelle instance EC2 basée sur l’AMI notée juste avant
  3. Loggez vous sur la VM pour y installer New Relic. Toute la doc est disponible ici, mais pour du PHP sous centos 64 bits ça donne ça :
    sudo rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
    

sudo yum install newrelic-php5

sudo newrelic-install

sudo chown elasticbeanstalk:elasticbeanstalk /etc/php.d/newrelic.ini

sudo chmod 777 /etc/php.d/newrelic.ini</pre>

  1. Editez ensuite le fichier /etc/php.d/newrelic.ini pour indiquer votre clé API dans “newrelic.license” et changez le nom de l’application dans “newrelic.appname”. Par contre j’ai remarqué que sur ma VM le démon New Relic n’était pas lancé automatiquement au démarrage. Il faut donc exécuter la ligne de commande :
    sudo chkconfig newrelic-daemon on
  2. Ensuite on peut ajouter le monitoring du serveur
    sudo yum install newrelic-sysmond
    sudo nrsysmond-config --set license_key=YOUR_LICENSE_KEY
    sudo /etc/init.d/newrelic-sysmond start

Une fois que vous avez bien vérifié que les services sont bien lancés au démarrage, vous pouvez construire une AMI depuis la console. Ensuite il faut indiquer la référence de l’AMI au niveau de la configuration de l’environnement Beanstalk dans “Custom AMI ID”

C’est aussi simple que ça 😉