Analyse Hébergement et infra - ThomasDeceuninck/Admin2bis GitHub Wiki
Analyse du besoin
Besoins fonctionnels
Dans le cadre de ce projet on doit pouvoir créer plusieurs services qui seront transformés en conteneurs Docker. L'entreprise Woodytoys veut délocaliser ces services sur des clouds, le but sera donc de trouver un hébergeur cloud qui pourrait répondre à nos besoins pour créer cette infrastructure.
De quoi sera composée cette infrastructure :
- zone interne, cette zone sera accessible uniquement aux employés. Il faut donc pour ceci configurer une passerelle VPN pour que les employés de l'entreprise puissent accéder à cette zone interne qui se trouvera dans un serveur cloud.
- DMZ, cette zone sera accessible depuis l'extérieur par les clients et par les employés depuis l'intérieur de l'entreprise. Pour cela il faut configurer une adresse IP publique à la DMZ et configurer une règle pare-feu. Ce service se trouvera également sur le serveur cloud.
- Le client nous demande également une base de données pour ces sites web. Il faudrait donc pouvoir isoler cette base de données de la zone interne et de la DMZ. Pour cela, on créera une seconde DMZ à laquelle seuls les serveurs web auront accès.
- Afin de faire communiquer nos différents réseaux entre eux, il faudrait pouvoir configurer un routeur qui ferait le pont entre la DMZ et la zone interne.
- Pour sécuriser toute cette infrastructure, on doit pouvoir sécuriser tout cela avec des pares-feux ; il en faudrait au minimum 2. Le premier sera utilisé pour sécuriser l’ensemble de l’infrastructure. C’est dans ce premier que se fera la publication de port. Le second pare-feu protégera les accès à la zone internet et à la seconde DMZ dans laquelle se trouvera donc la base de données.
Architecture
Pour réaliser ce travail, plusieurs services cloud sont à notre disposition pour répondre à nos besoin :
-
Commençons avec une architecture cloud type IaaS. Si nous utilisons ce type d'architecture, nous opterons pour des serveurs virtuels privés. C'est un moyen rapide et efficace à mettre en place car nous allons alors simplement installer une machine virtuel sur le serveur et ensuite nous devrons installer le service docker dessus et monter notre infrastructure avec la zone interne, les 2 DMZ et les différent pare-feu.
-
Il faudra également penser aux routages des différents conteneurs. Pour cela, 2 possibilités s'offrent à nous: soit on conteneurise un routeur qui fera ce travail, soit on utilise le service de routage de Docker.
Pour finir il n'y aura plus qu'à configurer une passerelle VPN pour les employés et configurer une adresse IP publique pour la DMZ.
-
Une seconde solution serait d'utiliser une architecture cloud type PaaS. Dans ce cas nous n'aurons plus besoin d'installer de machine virtuelle ou même docker, il faudra juste qu'on monte nos images docker sur le cloud et qu'on utilise un service de réseaux virtuel pour séparer nos différentes zones.
-
Pour faire le routage de nos conteneur, on peut utilisé la même technique que sur les services VPS : soit conteneuriser un routeur, soit utiliser un le routage des services de réseaux virtuels.
Pour terminer même chose sur un VPS, il va falloir configurer une passerelle VPN et une adresse IP publique pour la DMZ.
Critères pour le choix de l'hébergeur
- Il faut que je puisse facilement trouver de la documentation sur mon hébergeur si je perds trop de temps à régler mon souci, ou si je ne trouve pas de solution à un problème rencontré pendant la mise en place de mon infrastructure. Dans le cas contraire, je perdrais beaucoup de temps, ce qui impactera l'entreprise Woodytoys également.
- Il faut aussi que je puisse trouver plusieurs services en adéquation pour l'infrastructure. Si je peux combiner plusieurs services entre eux, cela améliorera la qualité du service et la mise en place pourra se faire plus facilement.
- Il faut que le prix de leurs services ne soit pas exorbitant: en tant qu'étudiant, je ne peux pas mettre beaucoup d'argent dans des services d'hébergement cloud.
- Il faut que leur service ne soit pas trop complexe. Si le service est trop complexe à mettre en place, cela me fera perdre du temps à moi et à l'entreprise également.
Comparaisons
- Les serveurs privées virtuels :
-
OVHcloud : "La société affirme desservir plus d’un million et demi de clients, en s’appuyant sur un réseau de 32 datacenters, répartis entre l’Europe, l’Amérique du Nord et l’Asie Pacifique."[1]
Pour jugé la qualité des services des entreprise le plus pertinent serait de regardé les avis sur eux comme ci-dessous :
Avis des services OVH -
Ionos : "Elle revendique plus de 13 millions de clients à travers le monde et plus de 19 millions de noms de domaines enregistrés."[2]
Voici des avis sur Ionos :
Avis des services Ionos -
Hostinger : Fondée en 2004, cette entreprise est très appréciée de ses utilisateurs. Les utilisateurs possèdent un accès root complet sur leur VPS et les serveurs supportent l'adressage IPV4 et IPV6.
Voici des avis sur Hostinger :
Avis des services Hostinger -
InMotion Hosting : C'est un hébergeur qui se veut être éco-responsable, donc en adéquation avec les idées de développement durable de l'entreprise Woodytoys. L'entreprise est classée 20ème en 2015 dans le market share U.S.
Voici des avis sur InMotion Hosting :
Avis des services InMotion Hosting
Les tarifs mensuels des différents hébergeurs évoqués ci-dessus :
| Nom des hébergeur | Nom des VPS | Prix | Processeur virutel | Mémoire Vive | Stockage | Vitesse de connexion |
|---|---|---|---|---|---|---|
| OVHcloud | Starter | 3.50€ | 1vCore | 2Go Ram | 20Go SSD | 100Mbit/s |
| Essential | 11.50€ | 2vCore | 4Go Ram | 80Go SSD | 500Mbit/s | |
| Ionos | VPS M | 4€ | 2vCore | 2Go Ram | 80Go SSD | Non défini |
| VPS L | 8€ | 2vCore | 5Go Ram | 120Go SSD | Non défini | |
| Hostinger | VPS 2 | 4.99€ | Non défini | 2Go Ram | 40Go SSD | 2To BP |
| VPS 4 | 15.95€ | Non défini | 4Go Ram | 80Go SSD | 4To BP | |
| Inmotion Hosting | VPS 4Go Ram | 9.99$ | 2vCore | 4Go Ram | 90Go SSD | 2To BP |
(Ce ne sont pas les seuls machines proposer par les fournisseurs, d'autres sont disponible mais celle listées ci-dessus sont suffisantes pour le projet)
- D'autres solutions :
- Microsoft Azure : L'un des services les plus populaire pour les services clouds. 2ème plus gros service cloud sur le marché après AWS.[7] Microsoft Azure est très complet sur les services qu'il propose. On peut trouver des services pour pleins de besoins différents, la popularité de l'hébergeur fait que pleins de documentations existent pour tous les services qu'il propose.
Pour notre besoin, 4 services peuvent nous être utiles :
- Virtual Machine : Une machine virtuelle Linux nous est proposée. Il ne nous restera plus qu'a installer docker et faire la mise en place de nos services.
- Azure Kubernetes Services : Nous pouvons également utiliser Azure Kubernetes Services, la meilleure solution pour les besoins actuels du projet, mais également la plus difficile à mettre en place.
- Azure Containers Instance : Azure Container Instance, avec leurs outils VNet, permettent de séparer les réseaux entre eux. On peut également utiliser le déploiement d'une machine virtuelle pour ensuite héberger nos conteneurs dessus ; ce serait la solution la plus simple à réaliser.
- Cluster Service Fabric : Ce dernier est à l'image de Kubernetes Services. Il est très complexe mais répond à tous nos besoins.
- Amazon Web Services : Le plus gros service cloud sur le marché.[7] A l'image de Azure, AWS propose également pleins de services cloud différents, pour pleins de besoins différents. Du fait que ce soit le service cloud le plus utilisé au monde, une grande quantité de documentation est également disponible pour eux.
Pour nos besoins, 2 services sont possibles avec AWS:
- Amazon lightsail : dans ce cas, on l'utilisera comme le service des machines virtuelles de Azure.
- Amazon EC2 : dans ce cas, on l'utilisera comme le service ACI.
- Heroku : Par rapport aux autres entreprises, Heroku est plus petite et plus récente. Mais ils ont de bons avis sur internet et dans l'ensemble les clients sont satisfaits de leurs services. Du fait que l'hébergeur possède une toute petite part du marché il y a beaucoup moins de documentation sur eux que les 2 précédemment cités.
Prix des différent hébergeur
Azure :
- Machine virtuelle : 35$/mois, 1vCore - 2Go Ram - 10Go SSD - 700 heures.
- ACI : 1.08$/mois, 1 groupe de conteneur d'une durée de calculs d'une journée avec 1vCore et 1Go Ram.
- AKS : 147.20$/mois, 1 cluster - 1vCore - 4Go Ram - 32Go HDD - 700 heures.
- Service Fabric: 15.40$/mois , 1vCore - 0.75Go Ram - 20Go SSD - 1 Machine Virtuelle - 700 heures.
AWS :
- Lightsail : 3.50$/mois, 1vCore, 512Mo Ram, 20Go SSD, 1To BP
- EC2 : 0.0047$/heures, 2vCore, 0.5Go Ram, pas de stockage défini, 5Gbit/s
Heroku :
- ECO : 5$/mois, 2vCore, 512Go Ram, pas de stockage défini, pas de rapidité de connexion défini, 1000 heures.
Choix et justifications
Le type de service qu'on utilisera :
Pour notre projet, on utilisera un service CaaS tel que ACI ou EC2. Ce sont des services qui sont directement adaptés pour l'hébergement de conteneurs. « Le CaaS aide surtout les développeurs à créer des applications conteneurisées plus sécurisées et évolutives. Les utilisateurs peuvent acheter uniquement les ressources nécessaires (capacités de planification, équilibrage de charge, etc.), et ainsi économiser et gagner en efficacité. » [11] Comme dit plus tôt, je base mes choix d'hébergement sur l'efficacité et la rapidité de mise en place de l'infrastructure : le CaaS répond bien mieux a ces besoins qu'un IaaS.
Choix de l'hébergeur :
| Hébergeur | Documentation | Services utilisables | Prix | IaaS ou CaaS |
|---|---|---|---|---|
| OVHcloud | [x] | 1 | $ | IaaS |
| Ionos | [x] | 1 | $ | IaaS |
| Hostinger | [x] | 1 | $ | IaaS |
| InMotion | [x] | 1 | $$ | IaaS |
| Azure | [x] | 4 | $$$ | IaaS et CaaS |
| AWS | [x] | 2 | $$$ | IaaS et CaaS |
| Heroku | [x] | 1 | $ | CaaS |
Ce tableau récapitule les points que j'attends d'un hébergeur. Si je choisis de prendre un service CaaS, alors mon choix se réduit à 3 possibilités, qui sont AWS, Azure et Heroku.
En tant qu'élève, je pense qu'ACI est un bon choix pour ce projet car Microsoft nous permet d'intégrer plusieurs de ses services. Ainsi, je pourrais créer mes propres conteneurs et les séparer dans des sous-réseaux VNET pour isoler et sécuriser mes réseaux. Je ne peux pas avoir de persistance de données avec ACI, mais des services alternatifs de volumes de données peuvent être utilisés à cet effet. Pour mes pare-feu, je peux utiliser Azure Firewall qui peut répondre à mes besoins, je peux également conteneuriser mes pare-feu. Pour résumer, mes zones seront créées avec VNET, mes données pour la base de données pourront être stockées dans un volume de données, et pour finir, mes pare-feu pourront être soit conteneurisés soit on peut utiliser Azure Firewall. En définitive, Azure peut répondre à toutes les attentes que l'entreprise a besoin pour monter cette infrastructure.
Cependant, le choix idéal pour Woodytoys aurait été un service IaaS, plus adapté à ses besoins. Le seul inconvénient de ce service est que la sécurité doit être gérée manuellement pour tous les réseaux de conteneurs, et l'entreprise devrait assurer une maintenance constante de son infrastructure car elle ne serait plus gérée par Microsoft. Le service IaaS aurait été beaucoup moins coûteux pour l'entreprise.
Une des raisons pour lesquels je choisi Azure est que ce service sera moins couteux pour moi qu'un service IaaS.
Bibliographie
[1] Wikipedia, OVHcloud. Date de consultation : 04/03/2023
[2] Wikipédia, IONOS by 1&1. Date de consultation : 04/03/2023
[3] Wikipédia, Hostinger. Date de consultation : 04/03/2023
[4] ICANNWiki, InMotion Hosting. Date de consultation : 04/03/2023
[5] Felicien Rouleau, Les 7 meilleurs vps 2023 - vps test & comparatif. Date de consultation : 04/03/2023
[6] Maxime Aulne. Meilleur hébergeur web, le comparatif - Mars 2023. Date de consultation : 04/03/2023
[7] Tristan Gaudiaut. Cloud : les géants de la tech se partagent le marché mondiale. Date de consultation : 04/03/2023
[8] Acronis. What is Azure ? A complete guide. Date de consultation : 04/03/2023
[9] Capterra. Heroku. Date de consultation : 04/03/2023
[10] Microsoft. Base de référence de sécurité Azure pour Container Instances. Date de consultation : 04/03/2023
[11] RedHat. Le CaaS, qu'est-ce que c'est ?. Date de consultation : 13/03/2023
L'utilisation d'un outil d'intelligence artificielle a été utilisé pour l'aide à la rédaction de cette analyse. C'est l'IA "ChatGPT" qui a été utilisée pour poser des questions sur comment pouvoir gérer l'infrastructure sur le service Azure et quels sont les différents moyens utilisés.
Question 1 : "J'ai besoin de créer une infrastructure réseaux avec des images docker, exemple : j'ai une zone privé dans laquelle j'ai un service bind qui fera le rôle de SOA et de résolveur, en plus de ça j'ai un service apache qui sera mon site web interne et j'aurai un service de base de donnée connecté à mon site web interne. Ensuite j'ai une DMZ dans laquelle se trouve un service web externe et un service bind qui fera le rôle de SOA. J'ai donc besoin de sécuriser tout ça avec des firewalls et de séparer mes different conteneurs dans des réseaux différents, avec un réseau privé et un réseau public. Est-ce que je peux monter toute cette infrastructure avec "azure containers instance" ?" L'IA m'a donc répondue que cela n'était pas possible en utilisant ACI et que le service AKS ou Service Fabric du même hébergeur répondrait mieux à mes besoins.
Question 2 : "cette infrastructure réseaux sera créée pour une entreprise, et la zone privée devra être accessible uniquement aux employés de l'entreprise, personne d'autre ne doit pouvoir accéder à cette zone, est ce que c'est possible de créer cette infrastructure sur le cloud pour que mes employés puissent accéder au service web de la zone privée et que mes clients puissent accéder uniquement au service web de la DMZ" L'IA m'a répondue que cela était également possible avec le service VNet de Azure, et que je devais configurer une passerelle VPN pour les employés et une adresse IP publique pour la DMZ.
Question 3 : "est ce que je peux combiner le service Vnet de azure avec leur service ACI pour monter cette infrastructure ?" L'IA m'a répondue que effectivement si je combinais le service ACI et VNet de Azure je pourrais monter mon infrastructure et que je devais configurer une passerelle VPN et une adresse IP publique.
Alex Apostolidis 2TL2-6