S'identifier / Créer un compte
  • Actualités
  • Dossiers
  • Tests
  • Commentaires
  • INpactiens
Publicité

[Pratique] ZeroBin et Amazon Elastic Beanstalk : mise en ligne pour les nuls

AWS à la rescousse de votre liberté ?

Au début du mois, PasteBin annonçait vouloir faire le ménage au sein des données qu'il héberge. Pour rappel, ce service permet de stocker des morceaux de texte de toutes sortes, et de les partager simplement. Après avoir été plusieurs fois médiatisées suite à des publications de groupes tels que les Anonymous, l'équipe du site a décidé que cela suffisait.

Depuis, l'on a vu de nombreuses solutions alternatives émerger, parmi lesquelles ZeroBin, proposé sous licence libre (OSI zlib/libpng) par Seb Sauvage, via ce projet Github. Celui-ci se veut ainsi différent par bien des aspects. Outre son code ouvert et sa licence, il se veut simple et minimaliste, mais propose aussi des fonctionnalités de chiffrement des données (une démonstration en ligne est disponible par ici).

ZeroBin : Pastebin en version chiffrée et libre

Zerobin

Ainsi, tous les textes que vous envoyez sur un site exploitant Zerobin sont compressés et chiffrés (AES-256) côté client, et stockés en l'état. Le principe est assez simple : vous collez un texte dans la zone centrale et lors de l'envoi une clef AES-256 est créée puis utilisée pour chiffrer les données. Celles-ci sont alors envoyées au serveur et identifiées par un code unique.

Votre navigateur vous indique alors une URL contenant ce code, mais aussi la clef nécessaire pour la lecture des données. Un maximum de 2 Mo peut être stocké à chaque fois, et vous aurez la possibilité d'ouvrir des commentaires (qui seront chiffré eux aussi). Ils sont anonymes, mais un identifiant visuel basé sur l'IP vous permettra de distinguer les différents protagonistes.

Zerobin

De plus, vous pouvez définir une durée d'expiration variant de 10 minutes à 1 an, ou même utiliser un mode « Burn after reading », les moteurs de recherche ne peuvent indexer les pages produites ou leur contenu déchiffré et une protection par mot de passe devrait bientôt être permise.

Une solution INtéressante, mais qui demandera tout de même des précautions

Bien entendu, la protection est surtout effective concernant un éventuel accès aux données du serveur. Rien n'empêche l'utilisation d'attaques au niveau de votre navigateur ou du type « Man in the middle ». De plus, la mise en place d'un service ressemblant à Zerobin, mais n'en ayant pas les fonctionnalités de sécurité est tout à fait possible. Attention donc aux serveurs que vous utilisez. La meilleure solution est d'ailleurs d'héberger vous même le service, ce qui s'avère assez simple.

Zerobin

Car Zerobin utilise PHP, ainsi que Javascript côté client et ne nécessite pas de base de données. C'est d'ailleurs ce qui nous a donné l'idée de l'utiliser afin de tester une fonctionnalité du « Cloud » d'Amazon (voir notre dossier sur Juju) : Elastic Beanstalk (EB).

Déploiement simplifié : le cas d'Elastic Beanstalk d'Amazon

Pour faire simple, il s'agit ici de proposer aux développeurs de déployer simplement leurs applications Java ou PHP au sein d'AWS. Le tout se fait en quelques clics, via un package WAR pour JAVA, un fichier Zip ou via GIT dans le cas de PHP.

Une fois l'envoi des données effectué, le système se charge de mettre en place les instances nécessaires, de les configurer et un « Load balancer » permettra d'adapter le fonctionnement au succès que rencontre l'application, selon des règles prédéfinies, que vous pourrez décider de changer.

Si vous disposez d'un compte AWS il vous suffira donc de vous rendre au sein de la page dédiée à EB de votre console de gestion. Si vous n'avez aucune application en cours de fonctionnement, vous pourrez choisir d'uploader la vôtre. 

Amazon AWS Elastic Beanstalk

Il vous faudra alors lui trouver un nom, une description, lui choisir un environnement (Amazon Linux 64 bits avec PHP 5.3 dans notre cas) et sélectionner le fichier .zip que vous aurez téléchargé sur le site du projet Zerobin. 

Mise en ligne d'une application PHP : un fichier ZIP, quelques paramètres... et voilà !

Vous devrez ensuite choisir un nom d'environnement qui sera utilisé comme sous-domaine via lequel votre application sera disponible. Là aussi vous pourrez remplir une description. Plusieurs options vous seront alors proposées : le type d'instance, une clef pour un éventuel accès SSH, une adresse mail pour recevoir une notification des modifications effectuées sur votre environnement, l'URL exacte à surveiller pour vérifier le fonctionnement de l'application.

Amazon AWS Elastic BeanstalkAmazon AWS Elastic Beanstalk

Un récapitulatif sera alors affiché, vous devrez alors attendre quelques minutes le temps que le système se mette en place. On se retrouve ainsi sur un système assez proche de ce que proposait Juju, mais pour des applications maison, ou qui n'auraient pas de charme à disposition. De plus, le système fonctionne depuis n'importe quel navigateur.

Amazon AWS Elastic BeanstalkAmazon AWS Elastic Beanstalk

Une fois l'application mise en place, il vous suffira de vous rendre sur l'URL indiquée pour vérifier que tout est bien en place. Comme nous le disions plus tôt, vous aurez alors la possibilité de configurer de nombreux détails du fonctionnement de votre instance afin de l'adapter à vos besoins, ou même de tout supprimer : 

Amazon AWS Elastic BeanstalkAmazon AWS Elastic BeanstalkAmazon AWS Elastic Beanstalk

Vous pourrez aussi suivre l'état de votre instance via des logs, une liste des évènements et un système de surveillance complet.

Le contrôle des instance reste total, un déploiement possible via GIT

Notez qu'en cas de mise à jour de l'application, il vous suffira de déployer la nouvelle version de la même manière. Dans le cas de l'utilisation de GIT pour vos développements, notez que vous pourrez utiliser ce système de gestion des versions via un module spécifique à installer sur votre système, vous trouverez la méthode détaillée indiquée par ici.

Amazon AWS Elastic Beanstalk

Si vous voulez contrôler l'instance créée, ainsi que ses éléments, vous pourrez bien entendu vous rendre dans le panneau de contrôle d'EC2 pour les instances ou de S3 pour la partie stockage, avec toutes les options que cela vous ouvre (création d'AMI, de snapshot...).

Notez que sous Azure, un tel déploiement simplifié devrait aussi être possible via l'application Webmatrix proposée par Microsoft, actuellement au stade de Beta et pour laquelle un module de déploiement pour Azure est proposé.

Elastic Beanstalk : une solution pratique pour les développeurs en herbe

Au final, vous pourrez donc mettre simplement en place un serveur dédié vous permettant de stocker vos contenus via Zerobin chez AWS, de manière chiffrée et occasionnelle, sans avoir à vous en faire pour un éventuel coût d'hébergement, Amazon ne facturant les services d'AWS qu'en fonction de leur utilisation. Atttention néanmoins, les données ne sont pas stockées de manière définitive mais sur le stockage éphémère de l'instance. Ainsi, si vous redémarrez celle-ci, les données contenues seront perdues.

Bien entendu, EB vous ouvre aussi des possibilités bien plus importantes que le simple exemple que nous avons utilisé ici, ZeroBin étant plutôt destiné à un hébergement sur un petit serveur mutualisé, ou en complément d'autres applications au sein d'un tel environnement. Mais cette solution pourra aussi séduire les amateurs de simplicité et flexibilité qui ne veulent pas forcément s'encombrer d'un contrat à l'année avec un hébergeur, ou qui ne veulent que tester de telles applications en ligne, lors d'une phase de développement par exemple.
Publiée le 30/04/2012 à 16:30

Soutenez l'indépendance de Next INpact en devenant Premium

  • Tout le contenu de Next INpact sans pub
  • Et bien plus encore...
;