Session du 01 février 2024 à 20h00
tag
Data Science & IA
tag
Développement Web & Frameworks
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Déployer Django : VPS, AWS et PythonAnywhere
-
discussion VPS Vs solutions type python anywhere.
- exemple avec AWS et Linode
-
résolution de notre problème d'API post d'il y a 2 semaines.
-
Quelques manipulation de dataframe avec des re échantillonnage de dataframe et des fusions.
00:00:00 :J'ai vu la discussion sur le Discord, je peux me tromper mais je ne suis pas trop d'accord avec lefait que c'est hyper risqué de déployer un APPS etc. AWS tout ça on parle quand même de Amazon
00:00:18 :ou même quand on va sur GCP la Google Cloud Platform ou Azure, les firewalls sont mis enplace. Après oui c'est sûr ça fait des applications qui sont exposées mais voilà si vous travaillez
00:00:33 :avec des bases de données, avec des bases de données etc. normalement c'est sûr. Pour moiil n'y a pas plus de danger avec un VPS qu'avec un hébergeur comme Python Envware ou des chosescomme ça. Parce qu'en fait avec un VPS tu ne fais rien quasiment, tu as juste à renseigner où sont tes sites
00:00:58 :statiques c'est tout et puis après ça fait le beau tout seul. Mais avec un VPS c'est à toi de gérervraiment la sécurité en général ou non ? Non la sécurité pas plus que ce que tu as avec
00:01:11 :Django de base qui gère toutes les requêtes etc. les validations, ta base de données elle estprotégée au même titre qu'elle serait sur un VPS ou ailleurs. Donc pour moi il n'y a pas de
00:01:27 :l'aspect sécurité pour moi c'est pas un sujet que ce soit sur un WVS ou sur Python Envware maisen fait c'est vrai que sur Python Envware en fait t'as déjà pas de soucis pour le retard 3 minutesSur Python Envware c'est vrai que t'as pas à t'embêter typiquement sur Django il faudrait
00:01:48 :utiliser un JUnicorn ou quelque chose comme ça pour déployer avec un serveur de production etpour tout ce qui est fichiers statiques etc il faudrait utiliser Nginx pour servir lesfichiers statiques. Python Envware il s'en charge avec WhiteNose je crois. Voilà il n'y a pas trop
00:02:14 :de problèmes. Arnaud hésite pas si tu as des questions sur le format du mentorat. Je l'ai déjàdit je dis souvent au début de chaque session mais l'idée c'est qu'on discute ensemble queça soit un peu ouvert qu'on fasse des choses et pas forcément que vous soyez capable de faire
00:02:41 :exactement la même chose à la fin du mentorat c'est pas le but c'est vraiment de découvrir deschoses ensemble et puis que chacun partage. Moi j'ai toujours un peu quelques idées quelques
00:02:50 :sujets à présenter histoire de ne pas être sans rien la session de mentorat mais ça peut êtreaussi des questions que vous avez ou des sujets que vous voulez discuter notamment je vois qu'il y aAliganiz qui vient de se connecter qui demandait sur le discord qu'il y avait quelques questions
00:03:05 :sur les différences entre les VPS et les hébergeurs type Python Envware etc donc on va parler de ça.Et qu'est ce qu'il y avait aussi je crois que c'était Edouard il me semble. Très bien Arnaud tu
00:03:19 :vas voir. Attendez je vérifie dans le discord ce qu'on avait dit. Attends je regarde juste letruc que j'avais vu sur le discord c'était quoi c'était pas sur AWS non c'était Edouarddonc ça c'était la question d'Ianis sur AWS. J'ai prévu de faire une petite création d'instance
00:03:58 :sur AWS avec EC2 aujourd'hui puis qu'on fasse un petit le déploiement entre guillemets d'uneapplication vous verrez c'est assez simple et j'essaie juste de retrouver la question de Edouard.
00:04:08 :Ah oui c'était sur le débuggeur sur les débuggeurs on verra si on fait ça aussi je vais voir si Edouardest là en fait parce que s'il n'est pas là avec celui qui a posé la question je vais peut-être pasen parler aujourd'hui mais on verra sur le programme. Bon bah on va commencer je pense à
00:05:02 :moins que vous... ouais pardon du coup si là tu avais une question excuse moi je t'écoute si làou tu peux écrire comme tu veux. Bonjour bonsoir en fait je me laisse en fait là où je travaille
00:05:26 :là en fait parce que nous on utilise beaucoup le dotnet mais moi je commence avec un peu duPython Django. Bon c'est un petit projet en fait c'est quoi en fait c'est de on a un mail par
00:05:42 :exemple qu'on envoie à un de nos fournisseurs chaque matin le rapport on tire ça dans oraxon a une requête bien définie qu'on prend dans une base d'orax qu'on amène au fournisseur maison veut automatiser ça en fait mais je vais utiliser Django un peu je vais lui dire chaque
00:06:06 :matin par exemple de me faire cette requête et amener ça automatiquement à un mail groupé dufournisseur. Ok. J'ai commencé un peu je me fais le projet j'ai connecté la base d'orax mais j'ai
00:06:21 :quelques erreurs par exemple sur la connexion à la DB orax. Mais tu voudrais que voilà ça va êtrecompliqué je pourrais pas t'aider là dessus s'il y a juste ça comme comme info mais si tu veuxremplacer ce projet là par une base de données Django ou tu veux continuer avec ta... Non en fait
00:06:52 :la base d'orax j'ai mis dans mon sitting j'ai mis deux bases données ouais j'ai mis par défautsi je dois stocker des choses dans le default avec le SQLite. Ok. Mais j'ai mis une deuxième
00:07:08 :base d'orax mais ça c'est juste pour aller faire le select c'est juste c'est pas autre chose. Okje comprends mais ouais une base de données oracle c'est comment parce que je vois la question deGabriel aussi je t'avoue que moi j'ai jamais fait avec une base de données oracle Django. Ok. T'as
00:07:34 :un problème de connexion? C'est quoi le problème de connexion? Il m'a dit en fait quand j'essayede faire ma requête par exemple quand j'ai créé un bouton juste le bouton j'ai lié à une view àune fonction mais quand je viens je perds le problème c'est au niveau du sexe oracle le
00:07:57 :module sexe oracle qui me dit qu'il ne trouve pas je n'arrive pas à être connecté à oracle parceque le module sexe oracle n'est pas dedans et là j'arrive pas à installer le sexe oracle dans monenvironnement virtuel je ne sais pas si c'est lié à mes les config réseau ou c'est pas. Bah écoute
00:08:17 :c'est un simple c'est une librairie c'est un pip install. Oui pip install oui. Et quand tu fais çadans ton environnement virtuel il s'installe pas? Il s'installe pas mais quand je le laisse dans
00:08:28 :mon environnement virtuel ça s'installe mais dans l'environnement virtuel ça s'installe pas. Etquand tu fais un pip list tu le vois pas dans ta liste? Non je ne le vois pas je ne le vois pas.
00:08:38 :Ok. Quand tu quittes l'environnement virtuel ça fonctionne? Oui ça fonctionne ouais. Et maispar contre après faudrait montrer le code c'est ça? Ouais soit le en fait j'ai en tête ce que
00:08:57 :t'as mis dans ton settings t'as mis les connexions interface de données etc mais c'est peut-être jepense qu'il doit y avoir un problème juste dans l'installation du module quoi. Regarde au niveau
00:09:08 :des versions peut-être que... Oui en fait j'ai vu ça encore j'ai vu parce que j'étais avec leDjango je pense 5.3 ou comme ça mais j'ai vu que c'était pas compatible avec la base d'oracle
00:09:22 :parce que ma base d'oracle c'était 12 points. Et c'est pas compatible? Ouais donc je suis revenuavec un peu Django 3 points dans ce moment que j'ai reçu le CX oracle parce qu'avant je recevaisun problème de compatibilité avec l'oracle. Ah oui donc t'as déjà changé de version pour
00:09:41 :problème de compatibilité? Ouais ouais ouais. Bah écoute ouais il faudrait bah n'hésite pas situ peux poser la question sur la plateforme comme ça tu sais nous on a plus de détails c'est plussimple. Mais sinon moi c'est un bon... il faut que tu vérifies aussi toutes les réglementations que
00:10:08 :t'as d'accès sur la base de données de ta base d'oracle elle est accessible facilement t'as déjàréussi à y accéder facilement depuis un script sans souci? Oui j'ai le même user avec
00:10:20 :un script développer j'ai fait la requête et ça fonctionne. D'accord ouais bah dans ce cas làpose-toi la question peut-être il y a un problème de compatibilité et pour ton histoire de tâchesautomatiques c'est intéressant si par exemple tu déployais ton application Django sur P2W onen parlait, tu peux mettre en place des crones jobs donc c'est des tâches automatiques et là
00:10:46 :vu que c'est qu'une fois par jour bah tu pourrais mettre en place facilement graphiquementavec P2W un crone job. Donc un P2W c'est ça? Ouais. Gabriel? Tu as déjà fait toi P1 ça des crone jobs sur P2W ou pas?
00:11:04 :Ouais j'en avais déjà fait une ou deux je m'en sers pas tout le temps mais ça se fait bien. Alorsj'ai une question très rapide ça fait penser du coup à ce qu'elle disait. En fait j'ai créé une
00:11:16 :commande custom en manage.py pour mon manager et Python manage.py c'est clean réservation tu voiset ça me dégage toutes les réservations qui ne sont pas validées ni payées de plus de deuxjours. Ok. Et donc en fait je peux très bien prévoir un crone avec Python Anywhere et appeler
00:11:37 :cette commande là? Exactement ouais. C'est une bonne idée parce que oui en fait avec les crones tu peuxbalancer un script pas forcément lié à ton application web Django donc c'est faisable.
00:11:52 :Je t'en prie. Et je pense aussi la question sur le debugger c'est intéressant parce que moi desfois j'ai des soucis sur le debugger Django, je peux mettre un breakpoint et puis ça vient pas làoù je veux. Sur Django c'est un peu plus compliqué c'est un peu plus compliqué parce que comme
00:12:14 :tu as des tâches un peu asynchrone, tu as un serveur qui tourne et en plus tu as tes vues etcdonc c'est le débuggage sur Django c'est un peu plus complexe à gérer. Parce que des fois je mets
00:12:31 :le breakpoint mais ça ne vient pas là bas. Pour moi si tu as besoin de débugger surdu Django il faut plutôt essayer d'isoler. Tu vois si par exemple tu as une vue,
00:12:47 :en fait si tu as un problème sur une vue, une logique, il faut isoler ta fonction et la fairetourner sur un script parallèle. Enfin moi c'est ce que je fais parce que c'est vrai que le débuggage
00:12:56 :sur Django avec Vscode en tout cas c'est un peu hyper chiant et compliqué à mettre en place.Oui Yanis, tu avais une question Yanis?En attendant qu'Yanis mette son micro je vaisEst-ce que ça vous intéresse, qu'on aille sur AWS et qu'on se crée une instance et puisqu'on aille dedans et puis qu'on montre un petit peu que ça peut fonctionner facilement.
00:14:07 :Ok alors sur AWS vous avez ce qu'on appelle le free trial, c'est gratuit qui dure un an,donc ça c'est top. En fait ce que ça veut dire, quand vous avez des instances, ah mais je partage
00:14:36 :pas mon écran, c'est compliqué pour vous de voir ce que je veux dire, c'est bon. Donc là je suissur AWS, je vais revenir au début parce que je partageais pas au début, donc c'est tout simple,vous allez là vous tapez AWS, donc moi j'ai déjà un compte, mais vous pouvez vous créer un compte
00:15:01 :gratuitement. Alors en fait j'avais une question par rapport à, un peu comme Gabriel, mais parrapport à Streamlit. Ouais. En fait j'ai fait un script pour automatiser mes créations de fiches
00:15:22 :de vocabulaire, j'en ai un peu parlé sur Discord. En fait mon script, je lui donne juste un lienGoogle Drive avec des images et automatiquement il va me créer des fiches de vocabulaire avecune base de données TinyDB. Ok. Est-ce que c'est possible d'automatiser ça, par exemple je laisse
00:15:42 :le lien Drive et j'alimente avec des nouvelles images chaque jour et ça se fait automatiquement,mon script se lance automatiquement chaque jour par exemple. Ouais c'est possible, ton script il
00:15:55 :tourne sur quoi? Pour l'instant c'est juste en local. Bah s'il est en local il faudra que, jesais pas si tu es sur Windows ou sur Linux ou Mac, sur Windows, pour moi le plus simple c'estque tu définisses une tâche journalière dans Windows qui va lancer ton script, parce qu'en
00:16:18 :fait si tu veux lancer des tâches automatiques chaque jour, il faut forcément que ça soit surune machine qui soit disponible. Donc souvent c'est pour ça qu'on met en place des serveurs,
00:16:26 :parce que notre PC local il n'est pas toujours allumé 24-24. Oui forcément, mais par rapportà une application Streamlit, ça se déploie sur Python Anywhere? Non, ça c'est une des contraintes
00:16:46 :que tu as avec Python Anywhere, c'est que justement tu peux déployer une application Django facilementou faire des scripts en interne, mais tu peux pas déployer ce genre d'application sur Streamlit. En
00:16:58 :tout cas à ma connaissance, la dernière fois que j'avais été voir, mais c'est pas fait pour ça. Etpar contre avec une instance AWS EC2, tu pourrais le faire facilement. D'accord, ok. Je vais te
00:17:15 :montrer comment on peut déployer une application Streamlit sur EC2 facilement. Tu connais leStreamlit Cloud? Oui, mais j'avais déjà utilisé, mais j'ai fait une grosse erreur, j'ai perdu la
00:17:38 :base de données. C'était une base de données SQLite. Je l'ai déployé sur le truc gratuit deStreamlit, et à un moment la base de données a complètement réinitialisé. Ah merde. Ouais d'accord,
00:17:59 :en fait pour ce genre de cas, le plus safe c'est d'avoir une base de données plutôt MySQL où làtu as ta base de données sur un serveur qui est indépendant de ton application, et comme ça t'évitesce genre de problème. Mais bon forcément après c'est pas le même setup. Après pour mon cas,
00:18:24 :je pense qu'il n'y a pas de souci avec Streamlit Cloud. Est-ce que c'est possibled'automatiser ça chaque jour? C'est ce que j'étais en train de me dire, non je ne pense pas,
00:18:34 :parce que Streamlit Cloud, en fait ils font juste tourner l'application et tu ne peux pas mettre enplace un... Pour moi il faut un VPS, ou le mieux c'est un VPS où tu auras une cronjob qui lancera
00:18:46 :ton script Streamlit. Mais après, si tu veux lancer automatiquement ton application qui vafaire tes fiches de vocabulaire, en gros c'est un truc automatique, donc pourquoi tu n'aurais pasbesoin de Streamlit en fait, parce que Streamlit ça donne une interface graphique et que tu peuxaller cliquer sur des boutons etc et tu as juste une partie de ton application Streamlit qui fait
00:19:17 :des choses automatiques, c'est ça? C'est simplement pour avoir une interface en fait beaucoup plusfacilement parce que je ne suis pas le seul qui va utiliser l'application, c'est tout. J'aurais
00:19:27 :pu le faire avec Tkinter ou autre chose. Et il y a des parties du script que tu voudras lancerautomatiquement sans que tu aies à cliquer sur des boutons sur Streamlit? C'est ça, oui. Après
00:19:40 :ce que tu as aussi, c'est les fonctions lambda sur EC2. En fait ça c'est des fonctions que tu peuxdéfinir, c'est même pas une application, c'est vraiment une fonction qui peut se déclencher,donc un peu au même titre qu'un cronjob, quand il y a une modification sur une certaine base de
00:20:00 :données sur un serveur ou des choses comme ça. Mais toi vu que tu as une base de données SQLitequi n'est pas hébergée en ligne pour l'instant, a priori ça ne fonctionnera pas. Non, je n'ai pas
00:20:13 :une base de données SQLite pour ce script là, c'est TinyDB, c'est du JSON. D'accord,ouais mais c'est un fichier local quelque part? Oui c'est ça. C'est ça que j'entends par,
00:20:26 :c'est pas sur un MySQL serveur ou des choses comme ça, c'est vraiment un fichier qui estquelque part et qui doit être disponible aussi. Oui c'est ça. Donc ça, même si c'est du JSON,
00:20:39 :c'est en termes de process, c'est pareil que SQLite, c'est un fichier plat et que tu doistransporter. Donc ici, quand vous arrivez sur AWS, quand vous créez votre compte,
00:20:51 :vous avez un an gratuit d'utilisation dans la limite de 750 heures, parce que sur AWS en faitvous payez à l'heure de CPU consommé. Donc vous vous retrouvez ici et ce que vous voulez,
00:21:08 :ce qui se rapproche, il y a plein de trucs de disponibles sur AWS, vous avez des bases dedonnées, vous avez des trucs pour faire des calculs, vous avez des containers, enfin brefil y a vraiment plein de trucs, c'est vrai qu'on peut être perdu facilement. Si vous voulez un
00:21:22 :VPS tout simple, qu'est-ce que tu voudrais résumer ? Tous ces services-là, je ne sais pas,il y a de cloud, je ne sais pas trop ce que c'est. Ok, c'est vrai que j'ai essayé d'expliquer ça
00:21:47 :sur, tu avais posé une question je crois là-dessus. Alors je vais essayer, pour moi il y adeux catégories, on va reprendre depuis le début. Tu as des fournisseurs du cloud computing. Donc
00:22:15 :ça c'est des fournisseurs de solutions. Donc là tu as par exemple AWS, Google Cloud Platform,Azure, des choses comme ça. Donc ça ce sont des fournisseurs de cloud computing et eux ils
00:22:29 :fournissent, ils mettent à disposition plein de types de, on va appeler ça des instances. Doncen fait, donc là typiquement quand on arrive sur AWS, tu as différents objets qui sont disponiblesqui te permettent de créer des choses. Donc notamment tu as tout ce qui est machine de
00:22:49 :calcul. Donc ça EC2 par exemple, c'est une machine de calcul, c'est la typologie AWS.Tu peux aussi mettre en place des bases de données. Et voilà, donc tout ça ce sont des
00:23:00 :services de cloud computing. Ça veut dire que, mais même une base de données ça reste quandmême, c'est comme un serveur, c'est juste un serveur sur lequel a été configuré une basede données. Mais il faut que tu le vois un peu comme des PC remote accessibles en ligne de
00:23:19 :commande depuis ton PC local et qui tourne 24h24 et que tu payes à la consommation à l'heure.Donc ça c'est ce qui concerne, quand on parle de cloud computing, voilà AWS, Azure, Google CloudPlatform, etc. Tout ça c'est cloud computing. Après tu as un autre type de service. On va
00:23:45 :prendre l'exemple de Python Anywhere. C'est un peu long. Donc en fait Python Anywhere c'est,ça reste du cloud computing, sauf qu'ils mettent à disposition des moyens de déployerfacilement des applications Django, Flask, il y a même FastAPI. Voilà donc en fait Python Anywhere
00:24:14 :tu peux le voir comme un petit frère de AWS parce qu'il fait du cloud computing. En faitil te met à disposition des ressources serveurs qui sont en ligne, mais c'est un petit peu pluslimité parce que là tu n'as pas à t'embêter à calculer ton prix à la consommation à l'heure,
00:24:33 :parce qu'il te dit voilà t'as des trucs à 5 euros par mois. En revanche, une fois que tu asdéployé une application Django avec, c'est lui qui te, tu sais quand tu fais Python, Manage,Run Server, etc. ça c'est lui qui s'en charge. C'est Python Anywhere qui s'en charge. Tu as juste
00:24:51 :à lui dire Python Anywhere où est-ce qu'il est mon script Django, et lui il te balance ça surinternet avec un nom de domaine, etc. Si tu avais voulu déployer ton application Django sur un VPS,
00:25:03 :que tu aurais eu sur AWS, Google Cloud Platform ou Azure, tu aurais dû toi-même définir,faire un script qui lance le serveur de production, qui te crée ton DNS, donc qui te lit tonapplication avec ton nom de domaine, etc. Donc tu as beaucoup plus de manipulations à faire,
00:25:24 :mais c'est beaucoup plus flexible. Parce que si sur ton VPS tu décides de lancer une applicationDjango, une application Streamlit, un FastAPI, etc, tu peux. Alors que sur le Python Anywhere,
00:25:36 :lui il est vraiment câblé juste pour te déployer ton application Django et il ne fera rien d'autre,si tu as choisi de déployer ça. C'est ça. Donc ça c'est un peu la famille des cloud
00:25:56 :computing. Après tu as aussi des choses comme Hostinger, DigitalOcean, etc. Eux c'est un petitpeu, on va dire, je pense qu'on pourrait les situer entre les deux, parce qu'il me semblequ'avec Hostinger tu as des solutions qui te permettent de déployer du WordPress ou des chosescomme ça. En fait c'est des trucs qui sont préconfigurés et toi tu n'as plus qu'à choisir.
00:26:25 :Il faut le voir, je ne sais pas comment on pourrait dire ça, je n'ai pas d'image ou demétaphore sympa. Heroku c'est comme AWS, non Heroku c'est plutôt pour moi comme, ça ressemblerait
00:26:49 :à Python Anywhere ou à DigitalOcean ou à Hostinger. C'est des plateformes qui te mettent àdisposition des moyens de déployer facilement tes applications, peut-être qui te mettent àdisposition un VPS, tu vois sur DigitalOcean je crois que c'est un droplet ou quelque chosecomme ça. Donc c'est vraiment un petit espace serveur que tu peux manipuler. Tu vois là sur
00:27:14 :la commu, les gens disent Heroku, c'est comme Python Anywhere, c'est un truc que tu déploiestout seul. Il ne faut pas que tu sois, c'est facile à dire, ne te sens pas perdu avec toutes
00:27:31 :les solutions disponibles parce qu'elles ont toutes le même cœur. C'est quasiment tous desserveurs Linux et puis voilà c'est juste que d'un côté tu as plus de config à faire mais plus deflexibilité et de l'autre côté tout est déjà préconfiguré, c'est plus simple mais tu as moinsde flexibilité. Voilà un petit peu pour le topo, je ne sais pas si ça résume, si ça te clarifie un
00:28:00 :peu les choses Yanis. Mais voilà, n'hésite pas, c'est un sujet qui est complexe, n'hésite pas àcontinuer à poser des questions dessus, tout le monde continuera à répondre, j'espère quec'est un petit peu plus clair. Donc si on revient à, alors autoswitch c'est pareil que Python
00:28:26 :Anywhere, pour moi c'est la même chose, tu peux déployer une application Django facilement,mais tu n'as pas un VPS que tu peux déployer n'importe quelle application. Voilà, donc comme
00:28:46 :je vous l'ai dit, si vous voulez un petit VPS et que vous voulez tester, vous avez un an gratuit,vous pouvez faire un peu tout ce que vous voulez, dans la limite des 750 heures dépensées. Dans
00:28:57 :un mois, normalement à peu près il y a 672 heures en moyenne, c'est un peu plus, un peu moins. Maisen gros si vous faites tourner votre application, une application qui tourne H24 sur votre petitVPS AWS, ça restera gratuit tous les mois pendant un an, après il faudra payer au CPU consommé.
00:29:33 :Autoswitch, Hostinger, je ne connais pas bien Hostinger, mais en fait si ça permet de déployerautomatiquement des applications Django, bah oui c'est pareil. Mais moi je connais Python
00:29:46 :et Newer, mais je crois que Hostinger c'est un peu le même style quand même. Donc là,on se retrouve sur AWS. AWS, il y a plein de choses qui sont disponibles. Si vous voulez
00:29:58 :commencer facilement, je vous conseille d'aller voir EC2. Donc EC2, vous allez là dans service,soit vous allez le retrouver dans calcul, ou soit directement, parce que moi j'ai déjà visité,là vous allez dans EC2. Donc là vous êtes sur un dashboard un peu classique. Il y a vraiment
00:30:16 :plein d'infos, mais bon il ne faut pas se laisser impressionner. Il suffit ici d'aller dans lancerune instance. Donc vous faites lancer une instance. Voilà, vous l'appelez, donc moi je vais l'appeler
00:30:26 :docstring-demo. Ça va, c'est assez grand ou pas ? Je vais zoomer un peu. Voilà, donc vous êtes là,vous nommez le nom de votre instance, parce que vous pouvez en avoir plusieurs, donc ilfaut pouvoir s'y retrouver. Donc docstring-demo, et puis là, vous choisissez le type d'instance que
00:30:50 :vous voulez. Donc je vous conseille de choisir Amazon Linux. Je n'ai jamais eu besoin d'autrechose. Vous pouvez prendre Ubuntu, mais en fait Amazon Linux, c'est la distribution Linux d'AWS.
00:31:01 :Donc prenez ça, ne vous embêtez pas. Et donc ici, vous allez avoir une liste parmi les instancesdisponibles. Si vous êtes sur l'année gratuite, il faut que vous sélectionnez une qui est éligible
00:31:19 :à l'offre gratuite. Voilà, ça ne changera pas grand-chose. Franchement, pour ce qu'on fait,c'est après qu'on a choisi la distribution que ça change un petit peu, mais voilà. Donc vous
00:31:30 :choisissez ça, du 64 bits, on est en 2024, et voilà. Et c'est là que vous choisissez le typed'instance. Donc là, pareil, dans toute la liste, il y en a beaucoup. Vous allez voir qu'il y a des
00:31:43 :trucs avec des performances de port. Là, on a des trucs avec des 384 gigas de mémoire vive. On a48 CPU. Donc ça, c'est vraiment des trucs de malade pour faire tourner des modèles de machine
00:32:00 :learning et tout ça. Mais il y a aussi un truc de malade, c'est le prix. Vous voyez que si vousêtes sur du Linux, c'est 5 dollars l'heure. Donc vous imaginez le prix que ça représente par mois.
00:32:13 :Donc en fait, c'est les entreprises qui utilisent ça, des grosses instances, et c'est des trucsinconcevables en machine à avoir chez soi. Donc c'est ça aussi l'intérêt du cloud computing,
00:32:24 :c'est qu'on peut se permettre d'avoir des machines gigapuissantes parce qu'il faut juste uneconnexion internet. Jamais on pourrait imaginer avoir ça comme puissance à la maison. Donc nous,
00:32:38 :ce qu'on fait, c'est qu'on choisit la T2 micro. Vous voyez, on a un CPU, un giga de mémoire vive,et si on regarde la tarification, on va être à 0.0134 dollars par heure. Donc vous ferez le
00:32:55 :calcul, mais si jamais vous n'êtes pas en offre gratuite, ça vous revient à peu près à 8 dollars,je crois, 8 dollars par mois si vous prenez une instance de ce type. Ouais, 120 dollars par jour,
00:33:08 :ça commence à piquer pour faire des calculs. Ensuite, là je vous montre, c'est pas grave,si à la fin vous ne savez pas le faire tout seul, il y a plein de tutos, c'est facile,mais bon, sinon vous pouvez reprendre la rediffusion. Ensuite, il vous faut une paire
00:33:25 :de clés. C'est une paire de clés SSH un peu, j'en avais parlé dans le mentorat de la sessionprécédente, donc ceux qui n'étaient pas là, je vous invite à aller la voir pour comprendre unpeu ce que c'est. On va peut-être pas s'en servir là, mais en fait il en faut absolument une si vous
00:33:41 :voulez créer votre instance. Si vous n'en avez pas, il vous dit continuez sans paire de clés,donc c'est possible, ou sinon il vous dit de créer une paire de clés. C'est juste pour faire
00:33:49 :de la connexion SSH après, mais là on va pas s'en servir, on va se connecter directement depuisla plateforme. Donc voilà, vous avez votre paire de clés, puis après tout est préconfiguré. Je
00:34:02 :vous conseille de mettre Hello SSH Traffic depuis n'importe quelle machine, donc ça,ça veut dire que depuis n'importe quelle machine, si vous avez votre PC, si vous allez à l'hôtel,vous changez, je sais pas, vous allez à l'étranger ou quoi, vous pourrez continuer à vous connecterà votre machine. Si vous voulez restreindre l'accès SSH à votre machine depuis uniquement
00:34:19 :une adresse IP en particulier, vous pouvez, voilà, si vous avez peur d'utiliser d'autres,si vous voulez pas que les gens se connectent depuis n'importe où avec votre instance. Donc
00:34:36 :voilà, il n'y a pas grand chose, là je vous conseille de laisser juste par défaut pourfaire les premiers tests, et vous faites lancer l'instance. Donc vous avez vu que voilà,
00:34:46 :c'est pas sorcier. Là vous retournez sur votre dashboard d'instances, donc là il est en trainde, là c'est toutes les instances que vous avez, parce que comme je vous dis, vous pouvez en avoirplusieurs, mais là pour l'instant on n'a que celle-là, et il est en train de la mettre en
00:35:01 :place, donc là il est en attente, il faut patienter un petit peu, mais c'est assez rapide. Notreinstance se trouve en Europe centrale, vous pouvez choisir d'autres, si par exemple vous voulezinstaller un petit VPN pour, je sais pas, regarder des émissions américaines ou anglaises avec desservices de streaming. Bon là il est en train de la lancer, j'actualise. Voilà, donc là elle est en
00:35:28 :cours d'exécution. Donc en fait, il faut vérifier le statut de vos instances, parce qu'à partir dumoment où elle est en cours d'exécution, vous consommez du CPU, et vous êtes facturé. Donc
00:35:42 :si vous ne voulez pas être facturé sur votre instance, vous allez dessus, vous faites action,et vous dites gérer l'état de l'instance. Là vous pouvez l'arrêter, etc, ou même la terminer,
00:35:54 :donc là vous allez la résilier. Nous on vient juste de la démarrer. Donc une fois que vous êtes survos instances, là vous allez dessus, cliquez, là vous avez plein d'infos, dont l'adresse IP ici,vous allez voir qu'on va s'en servir après. Vous pouvez faire ici se connecter, et là vous avez
00:36:11 :différentes manières de vous connecter. Vous avez le client SSH, donc ça c'est ce que je vousai dit tout à l'heure, c'est on utilise la clé SSH, mais bon là on ne va pas le faire, et vous avezla connexion depuis l'interface web directement. Donc moi je fais ça pour vous montrer. EC2 instance
00:36:28 :connect, se connecter. Donc là il se connecte doucement. Et voilà, donc là on a un terminalqui est vraiment en ligne, accessible depuis n'importe quel, en fait c'est juste, si vousvous êtes ailleurs, je sais pas, chez un ami, chez un collègue, au travail, en vacances, il suffitd'aller vous connecter sur votre dashboard, et puis là vous avez une instance, vous avez une invite
00:36:59 :d'un terminal qui tourne sans souci. Donc ce qu'on va faire, c'est qu'on va essayer de se déployerune petite application Streamlit tranquillement. Donc pour ça, on va vérifier qu'on a bien
00:37:13 :Python, voilà on a bien Python 3.9. On va commencer par peut-être installer, est-ce queon a Nano, ouais on a Nano. Je vais dézoomer un peu. Alors on va installer d'abord Streamlit.
00:37:40 :Ouais il y a des choses préinstallées comme Python, tu vois, mais il n'y a pas sur les instances EC2Amazon, il n'y a pas grand chose, c'est fait exprès. Ils ont fait ça un peu clean, histoire qu'il
00:37:52 :n'y ait pas trop de trucs, c'est sans fleuritures. Donc là tu vois typiquement j'ai Python, maisaprès j'ai pas Imax, j'ai rien d'autre, j'ai juste un peu le strict nécessaire. Je crois que
00:38:05 :je n'ai même pas pip, tu vois, si je veux faire un pip 3 install Streamlit, tu vois je ne l'ai mêmepas. Donc Python 3.9, je vais me créer un environnement virtuel, je vais voir s'il est bien là,
00:38:27 :ok il est bien là, je vais l'activer, source, bin, activate, et là je vais installer Streamlit.Donc là il installe, vous voyez c'est vraiment un terminal comme si vous étiez chez vous,sauf que c'est une machine qui est en ligne et qui est gérée par AWS. Bon là il tourne un peu,
00:39:01 :c'est toujours un peu long Streamlit, il y a beaucoup de packages, là vous voyez on est àl'inconfort. J'ai peut-être pas choisi le package le plus simple, mais c'est pas grave,
00:39:52 :ok c'est bon, si je fais un pip list, on a bien le Streamlit. Donc là on va se créernotre petite application Streamlit juste pour la démo, on va l'appeler dashboard.py, import
00:40:29 :Streamlit as st, et on va dire st.write, hello.string, et puis on va se mettre un petitnom, c'est quoi déjà, c'est un textinput, parce que là j'ai pas l'autocompression,si quelqu'un peut me dire si c'est bien textinput, je vérifie là dedans, st.textinput,
00:41:24 :et on va dire st.textinput.py, c'est bon, c'est bon, c'est bon, c'est bon, c'est bon,ok, donc là on peut, c'est comment déjà, c'est ctrl O, ok, ctrl X, voilà. Donc là
00:42:06 :maintenant, ouais, textinput, merci, maintenant si je lance, je peux lancer l'applicationdirectement, donc je fais un Streamlit run dashboard, et donc là vous voyez il me ditque c'est disponible sur cette adresse IP là, qui est une adresse publique, sous ceport là, donc si je tape ici l'adresse, et ok, il mouline, je sais pourquoi il mouline,
00:42:32 :il va pas la trouver parce qu'il y a une petite sécurité à faire dans les instances,c'est, vous voyez ici, en fait il nous dit qu'il a déployé sur l'adresse IP un tel,sur le port 8501, et ça le port pour l'instant on l'a pas autorisé dans notre instance,
00:42:49 :donc il faut pas oublier d'aller l'autoriser, pour ça vous allez dans sécurité, vousallez dans le groupe de sécurité, et ici, modifier les règles entrantes, vous ajoutezune nouvelle règle, vous dites que c'est un protocole TCP, et là vous mettez le portque vous voulez, donc là nous c'est 8501, et là vous mettez 0 parce qu'en fait c'est
00:43:11 :vous voulez accepter les requêtes depuis n'importe quelle adresse IP, si vous voulez,par exemple vous pourriez définir en début là, si vous mettez un certain chiffre, vouspourriez n'accepter que les requêtes qui viennent de France par exemple, pour évitertout ce qui est attaque russe ou des choses comme ça, vous pouvez contrôler comme ça
00:43:34 :les, depuis où viennent les requêtes, donc faites enregistrer les règles, donc là normalement,si on retourne là dessus, on recopie, voilà, donc là on est sur l'application Streamlit,quel est ton joli nom, Pierre, hello Pierre, et donc ça, si je vous mets l'adresse ici,normalement si vous y allez, je sais pas si vous y allez tous en même temps ce que ça
00:44:04 :va donner, mais vous pouvez essayer d'y aller, normalement ça fonctionne, moi si ça fonctionnebien chez vous, ok super, donc voilà, on peut déployer facilement et puis gratuitementpendant un an, alors après attention, je pense, typiquement, faut vérifier, faudraitvérifier quand même, parce que vous savez, si vous allez sur Google et que vous cherchez
00:44:42 :AWS free trial, en fait il vous dit, voilà, le compte gratuit, donc là typiquement, nouson a déployé une application, une instance C2, on a 750 heures par mois gratuites, çaveut dire que pendant, s'il y a 750 heures d'utilisation de l'instance, on va pas payer,au delà on va être facturé, parce que quand vous allez vous créer un compte, même si
00:45:08 :vous utilisez le compte gratuit, vous allez devoir rentrer quand même vos coordonnéesbancaires, mais voilà, il n'y a pas de soucis, c'est juste que pendant un an vous ne serezpas débité, et même, ce qu'il faut vérifier c'est que, mais je pense que c'est pas lamême chose, si vous vous déployez l'application, les requêtes ne sont pas comptées comme du
00:45:32 :temps de consommation de CPU, c'est pas la même chose, en fait vous, c'est l'applicationqui consomme le CPU, et les requêtes, elles ne consomment pas du CPU, donc il ne faut passe dire, je vais avoir, je ne sais pas combien d'heures, parce que j'ai 1000 utilisateurs,voilà, donc c'est pas la même chose, donc ça il ne faut pas s'inquiéter pour ça.
00:45:54 :Voilà, donc ça c'était du, comment on peut déployer facilement, vous voyez avec uneinstance, c'est très simple, et là je suis comme si j'étais à la maison, on peut mêmefaire du Django, si on fait pip install Django, bon ça va peut-être être long, je vais peut-êtrepas, non non, c'est une requête, en gros la consommation CPU c'est le déploiement
00:46:31 :de l'application, c'est pas les requêtes qui vont être faites par les utilisateurs.Donc si je fais Django admin start project, docstring test, ok, ls cd, ok,donc là c'est pareil, il me dit que, en gros, ça il le met sur l'adresse locale, donc ça veut direque ça va être l'adresse IP normalement de mon serveur, qui est, je retourne instance,
00:47:23 :l'adresse IP de mon serveur public c'est celle-là, donc là c'est pareil, si je tape ça toutde suite, ça va pas passer, parce que je n'ai pas autorisé le port 8000, donc là je vais lemettre, donc sécurité, le groupe sécurité, modifier les règles entrante, ajouter une règleTCP, 8000, on autorise n'importe quelle adresse IP, on enregistre, voilà, et donc là maintenant si
00:47:53 :je retourne sur l'adresse IP de mon serveur, HTTP, qu'est-ce qu'il aime pas, c'est peut-être pas labonne adresse IP que j'ai prise, parce qu'il y en a plusieurs, c'est peut-être ça plutôt, c'étaitcombien que je vous avais donné, si c'était ça pourtant, je vais essayer avec ça, bon faut que je
00:48:32 :vois pourquoi il ne fonctionne pas avec Django, mais bon peut-être que c'est parce que là je suisen serveur de développement, voilà, ou alors il n'a pas encore pris la règle, je sais pas,ou peut-être qu'il y a déjà une application qui tourne là-dessus, il faudrait vérifier,voilà donc c'est un peu le principe de déploiement d'application un peu facilement grâce à AWS.
00:48:54 :Donc là l'instance, j'en ai pas besoin, je vais la supprimer. Franchement n'hésitez pas à vouscréer un compte, c'est gratuit, et puis allez vous amuser un petit peu là-dessus, et puis detoute façon il y a moyen de contrôler facilement les coûts, ne soyez pas trop inquiet avec ça.
00:49:11 :Résilient à l'instance, voilà, ok, donc ça c'était pour AWS, AWS création d'instanceassez facilement. Est-ce que c'est assez clair pour vous ? Non ne t'inquiète, tu pourras faire ça
00:49:38 :plus tard. Sinon tu demandes à tes enfants d'aller te chercher. Est-ce que c'est clair pour vous ?Est-ce que vous voulez voir autre chose sur AWS ? Moi en toute façon c'est vraiment, je vous dis
00:50:04 :est-ce que vous voulez voir autre chose sur AWS, je suis pas sûr que je serais capable de vousmontrer beaucoup plus. Moi c'est grosso modo ce que je fais sur AWS, je ne fais pas beaucoup plus.
00:50:12 :Bah tu vois Yannick c'est ce que je viens de dire, moi j'utilise beaucoup EC2, donc les instancesde calcul, après ça dépend du type de projet, mais tu vois en fonction du projet je choisisplus ou moins la puissance dont j'ai besoin, donc là c'était du T2, si tu fais tourner une petite
00:50:38 :application Streamlit et que tu sais que tu vas avoir que quelques utilisateurs, ça suffit largement.Pour des modèles de machine learning, en fait les modèles de machine learning ça resterait la mêmechose, j'utiliserais l'EC2 mais je prendrais des trucs plus puissants. Commande Linux, bah sauf si
00:51:00 :tu prends une instance Windows, mais ça coûte un peu plus cher, mais tu peux te retrouver avec duPowerShell ou même tu peux prendre une instance Mac, tu auras des commandes Mac qui sont trèssimilaires à celles de Linux. Des trucs plus planet friendly, alors c'est un sujet, le cloud
00:51:23 :computing c'est vrai que c'est pas toujours planet friendly, mais voilà soit on fait ducloud computing soit on n'en fait pas. Après je sais qu'il y a, je crois que c'est IONOS, je sais plus
00:51:40 :lequel fournisseur, comment il s'appelle celui-là, c'est des français et voilà je ne sais pasexactement ce qu'ils font, mais ils essayent de réduire au maximum leur empreinte carbone etvoilà. Après maintenant les data centers etc c'est quand même assez contrôlé et ils font
00:51:59 :attention à la consommation d'énergie, mais bon. Oui c'est ça, Infomaniac, merci Pierre.Ah oui c'est suisse, ouais merci. Qu'est-ce que t'entends par truc local Arnadu ?
00:52:16 :Ça te gêne toi d'utiliser, ah oui du cloud computing. Après c'est pareil, c'est sûr que çaconsomme moins d'énergie, mais si tu veux déployer, par exemple t'as un NAS chez toi, c'est à ça quetu penses, par exemple t'as un NAS chez toi en local et puis tu fais du home hosting, après
00:52:46 :forcément tu restes quand même obligé de garder allumé ton NAS allumé 24-24, donc ça consommebeaucoup moins d'énergie que le cloud computing, mais à notre échelle c'est pareil. Il n'y a
00:53:01 :malheureusement pas de solution miracle. Ouais tu vois, moi je suis d'accord avec Pierre Affeu,il y a des solutions cloud qui consomment moins que l'auto hébergement. Typiquement si j'ai un
00:53:16 :VPS sur AWS avec très peu de puissance, je vais consommer moins que si j'avais un NAS allumé24-24 chez moi. C'est quoi ça ? Je me permets d'afficher ton lien Arnaud. C'est quoi ça ?
00:53:44 :Ah ok je comprends maintenant quand tu dis des trucs un peu plus locaux,ça veut dire genre plus proche de ta région ou des choses comme ça. Et en fait c'est quoi,
00:54:08 :c'est des services ? Ah ok, ouais c'est intéressant ça. Merci pour le partage. Ah oui et d'ailleursj'avais aussi, j'avais vu, je crois que c'était Contabo VPS, ouais j'avais vu cette solution là,ils ont des cloud VPS qui sont pas trop chers aussi avec une bonne puissance. Parce que là
00:54:36 :vous voyez que pour 4,50€, moi typiquement j'ai un VPS qui tourne sur Linode H24, je paye 6€ parmois mais pour une puissance de, en fait j'ai un CPU avec uniquement un giga de RAM. Et là vous
00:54:57 :voyez que par exemple sur Contabo vous avez pour 4,50€ 6 gigas de RAM et 4 CPU donc c'estvachement intéressant. Et je crois que c'est allemand, ouais. Voilà donc n'hésitez pas un peu
00:55:14 :à fouiller quand vous voulez un fournisseur de VPS. Après la différence qu'il va y avoir,ça va être le support, les services de support que vous pourrez avoir avec chacun. Mais celui-là
00:55:32 :est très intéressant, pour la même puissance à 4,50€ on est à 35€ chez Linode. Donc ouais,pas mal. N'hésitez pas aussi, parce que là par exemple le truc des chatons je connaissais pas,
00:55:46 :merci pour le partage. Peut-être que vous connaissiez pas Contabo, mais si vous enavez d'autres, n'hésitez pas à les partager, ça peut aider tout le monde. Bah voilà, et puis
00:56:01 :qu'est-ce que je voulais vous montrer d'autre ? Est-ce que c'est un peu plus clair pour vousles VPS, tout le bazar et tout ça ? Les trucs des chatons à retenir. Le cPanel, c'est sur quelle
00:56:21 :plateforme ça le cPanel ? Bah je suis désolé, je peux pas te répondre, je connais, j'utilise pasces plateformes là. Gabriel, tu connais Gabriel ? Ouais, je l'ai vu, il y a Simon, il m'a filé un
00:56:45 :accès à cPanel, mais il y a un moment je l'ai pas encore testé, mais celui-là sur Hostinger jecrois, sur LWS. Alors LWS qui est un fournisseur français d'ailleurs, c'est pas mal. Je prends
00:56:58 :les domaines là-dessus, mais ils font aussi cPanel, alors j'ai jamais essayé, mais c'est moià partir de l'univers, c'est vrai que j'ai du mal avec les autres trucs. C'est pareil, c'est pour
00:57:08 :déployer ? Ouais, tu peux déployer une application genre Django par exemple, et puis c'est censé êtresimple, mais je sais pas, j'ai essayé une fois, j'étais un peu perdu. Après c'est ça aussi qui est
00:57:21 :beau, c'est qu'il y en ait plusieurs, c'est que chacun trouve son compte. Parfois, moi vous voyezpar exemple l'interface de AWS, je sais pas ce que vous en pensez, mais c'est un peu le fouillis jetrouve. Après quand on connait, bon ça va, on est bien dedans. Et voilà, quand on arrive là-dessus,
00:57:37 :je me reconnais que c'était là-dessus. Je vais pas me reconnecter. En fait je trouve quand onarrive sur le truc d'AWS, c'est un peu le bordel, je trouve que Linode, il est plus user-friendly,Linode je peux vous montrer si vous voulez. Linode c'est pareil qu'AWS, en fait vous avez différents
00:58:11 :types d'instances, vous pouvez en créer facilement. Je l'avais montré dans un mentorat il n'y a paslongtemps, comment créer une instance avec Linode. Voilà, à chaque fois vous allez voir sur chaque
00:58:21 :plateforme, ils comparent leurs prix par rapport aux autres. Donc là vous avez les 4 gros, Linode,AWS, Google Cloud Computing et Azure. On peut aussi, alors si là t'as question sur Docker,
00:58:52 :Kubernetes avec Django, bah oui oui tout à fait, en fait c'est pas du tout incompatible,parce qu'en fait Kubernetes, en fait tu peux déployer ton application Django avec une imageDocker et tu peux la distribuer avec Kubernetes, en fait tu peux la rendre redondante etc. avec
00:59:15 :Kubernetes, il n'y a pas de souci avec ça, c'est le principe des webapps et de Kubernetes.Voilà, donc il y a Linode, qu'est-ce qu'on a d'autre ? On a un peu fait le tour, mais ce qu'il
00:59:33 :faut c'est que vous trouviez celle qui vous plaît et puis voilà, c'est pas la peine de changer toutle temps, comparez un peu les prix, regardez ceux dont vous avez besoin et puis ce sera très bien.
00:59:44 :Pour vous donner une idée aussi, on parle de Cloud Computing un petit peu, vous savez,je ne sais pas si je vous avais déjà montré, mais il y a celui-là, je vous avais montré lesGoogle Collab il me semble. En fait Google Collab c'est un truc de Google et donc là pareil,
01:00:22 :vous pouvez taper du code Python ici. En fait c'est un Jupyter Notebook en ligne déjà configuré etpourquoi je vous parle de ça ? Parce qu'on pourrait se dire, ça aussi c'est du Cloud Computing en
01:00:38 :fait, parce que Google ils mettent à disposition sur leur serveur de faire tourner des JupyterNotebooks. Donc voilà, ça c'est une forme aussi de Cloud Computing, il ne faut pas non plus trop
01:00:49 :galvauder le mot Cloud Computing, en fait Cloud Computing ça veut dire faire des calculs surle Cloud, sur le Net. Il y a plein de termes c'est vrai, mais ça reste la même chose, c'est du
01:01:05 :calcul en ligne quoi. Si je crois qu'après tu peux lier ça avec des Google Cloud Platform. Etsur Python Anywhere par exemple tu peux avoir des Jupyter Notebooks accessibles en ligne comme ça,mais je crois que c'est une version payante, celle à 5 euros par mois.
01:01:29 :Bon ben voilà un petit peu pour la session d'aujourd'hui. Est-ce que ça a un petit peuclarifié des choses pour vous ? Tant mieux si ça vous a appris quelques trucs. Moi je vous dis,
01:01:54 :je vous parle que des trucs que je connais et que j'utilise, c'est pour ça que parfois vousen connaissez plus que moi, il n'y a pas de souci, j'ai pas de souci avec ça, donc n'hésitez pasaussi à partager ce que vous avez appris. Donc AWS, ça peut paraître impressionnant quand
Bravo, tu es prêt à passer à la suite