Jouer avec AWS et ses services EC2, S3 …

Je teste depuis quelques temps les serveurs cloud Amazon, Google, Azure (et hum Gandi). J’ai été calmé par Azure qui facture très vite mais rembourse très lentement. Pour le moment je pars sur de l’AWS EC2 et S3 pour plusieurs raisons:

  • La documentation est vraiment bien faite
  • L’ergonomie est très bonne, on comprends ce qu’on fait
  • L’API NodeJS de S3 est top
  • Les micros instance sont gratuite pendant 1an
  • L’intégration DNS avec Gandi marche très bien

Ainsi j’ai commencé à migrer tout mes sites web WordPress et NodeJS. Par ou commencer ?

Etape 1 : Créer une instance EC2

Alors je m’inspire d’un bout de ce tutoriel très didactique.

Créer un compte Amazon.

Aller sur la page de Amazon EC2. Vous devrez indiquer votre carte bleu mais ne serez pas débité.

Démarrer une instace EC2

Connectez-vous sur la console Amazon pour créer une instance EC2. Surtout choisissez AVANT la LOCALISATION. J’ai choisi Ireland pour être dans la zone Euro.

Choisir une instance Amazon Linux AMI

Choisir le plus petit modèle sur lequel est indiqué Free Tier.

Choisir l’espace disque. Vous pouvez monter à 30Go gratuitement. Le coût est calculé en I/O sur les SSD.

Passer le tagging, puis sélectionner les ports. HTTP, HTTPS, … Il faut que je creuse le sujet pour comprendre comment activer l’envoi de mail

Puis lancer la création de l’instance. ATTENTION Le site fait apparaître une popup permettant de créer et télécharger une pair de clef pour se connecter à l’instance. Mettez là dans un endroit sécurisé.

Et voilà ! Vous pouvez lui donner un nom. Je ne sais pas comment ça se passe si l’on souhaite changer la configuration machine pour passer sur du payant plus performant ou sécurisé.

Etape 2 : Créer une IP Elastique

Vous pouvez gratuitement créer une adresse IP élastique que vous pourrez ensuite associer à votre instance. Mais à quoi ça sert ?

  • C’est une adresse IP plus « humaine »
  • Vous pouvez basculer l’IP d’une instance à l’autre lors de maintenance
  • Dans Gandi vous pourrez rajouter un record

Etape 3 : Se connecter avec Putty

Pour se connecter avec Putty (j’utilise Putty Portable) le tutoriel est ici.

  • Télécharger Putty (ou sa version Portable)
  • Télécharger et lancer Puttygen.exe
  • Charger votre clef .pem (forcer le filtre)
  • Sauvegarder la « Private Key » en .ppk

Puis dans Putty il suffit de renseigner le fichier .ppk

Pensez à enregistrer car c’est pénible à refaire.

Etape 4 : Installer un LAMP

Alors c’est super simple toute l’explication se trouve sur Amazon.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html

Etant chez Orange j’ai une IP Dynamique donc je ne peux pas configurer PHPMyAdmin pour y avoir accès depuis pour desktop. Mais ce n’est pas grave.

Pour un n00b comme moi, j’apprécie les conseils de sécurité de ce tuto pour isoler l’utilisateur Apache.

Etape 5 : Installer un WordPress

Alors c’est super simple toute l’explication se trouve sur Amazon.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

Encore une fois de très bon conseils de sécurité. Ensuite je compléterais par:

  • Importer vos précédents Article tout de suite
  • Utiliser les plugins Akismet, Jetpack, CookieNotice, …
  • J’ai du augmenter l’upload dans /etc/php-*.ini
  • Acheter un template sur ThemeForest.

Etape 6 : Installer un NodeJS

Alors ça devient plus compliqué ! Je vous conseils de lire:

Faire un update des package

Installer GCC++ and Make.

Installer GIT

Installer NodeJS

Attention l’URL à changé ! le principe reste le même il faut le compiler.

Installer NPM

Déjà il faut faire une manipulation pour indiquer ou installer les modules.

Ajouter :/usr/local/bin au secure_path

Puis le principe reste le même il faut le compiler. Attention l’URL à changé ! Je me suis placer à côté du répertoire node.

Premier Serveur

Pour tester, créer un fichier package.json

Créer un fichier app.js

Hello from EC2

« ); }); app.listen(80);

Et lancer, vous devriez voir la page dans votre navigateur.

Alors c’est là ou je me dis qu’il manque une explication pour cloisonner les droits. Ca m’embête de lancer Node en sudo. Si vous avez des bonnes pratiques ça m’instéresse !

Installer Forever

On change de tutoriel pour permettre à notre script d’être toujours opérationnel.

Une astuce pour faire de la redirection de port (je ne vois pas trop l’intérêt vu que Amazon permet d’ouvrir des ports)

Télécharger Forever en global

Script start.js

Script stop.js

Et voilà !

Etape 7 : Installer SARAH

Actuellement Je télécharge SARAH v4 depuis github.

Note: je dois investiguer sur un bug sur RPi: les plugins SARAH perdent la varialle NODE_PATH et donc le chemin vers les modules communs !

Merci Johan: Ensuite pour les updates il suffit de faire un git pull

Etape 8 : SES : Simple Email Service

Le service est gratuit SES jusqu’à 62.000 emails/mois. Il suffit d’y associer un nom de domaine et une adresse email.

Depuis Juillet 2015, il est fortement conseillé d’utiliser IAM pour créer un utilisateur dont le rôle sera restreint à l’envoi de mail. Surtout mettez un nom cours sinon ça ne passe pas sous WordPress et notez bien les SMTP login/pass (en régénérant ça ne marchait pas)

WordPress

L’extension Easy WP SMTP permet d’utiliser le SMTP de Amazon SES. Il faut renseigner les identifiants et mots de passe correspondant sur le port 25 en TLS.

NodeJS

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *