Tout au long de cet article, j'aimerais partager les meilleures pratiques que j'utilise lors du déploiement d'applications Web dans le cloud.
** Ce blog est une traduction de la version anglaise. Vous pouvez vérifier l'original depuis ici. Certaines traductions automatiques sont utilisées. Nous vous serions reconnaissants de bien vouloir signaler toute erreur de traduction. ** **
Cet article s'intitule Medium Blogging Platform Mais il est également publié.
Dans cet article, je souhaite partager les meilleures pratiques que j'utilise lors du déploiement d'applications Web dans le cloud. Je travaille en freelance, mais récemment un de mes clients m'a demandé de mettre en place Suite CRM pour une petite organisation. J'écris si souvent des tutoriels sur Alibaba Cloud que j'ai conseillé aux clients d'utiliser la même plate-forme cloud. Pour près de 100 utilisateurs et plus de 30 utilisateurs simultanés, la configuration que je recommande est:
1, vCPU PHP-2 pour installer Nginx avec FPM, instance ECS avec 4 Go de RAM. 2. ApsaraDB pour RDS, noyau 1 Go, RAM 1 Go, stockage 10 Go pour l'instance RDS pour MySQL. 3, publipostage pour l'envoi de courrier.
Les étapes que j'ai suivies sont très simples et peuvent être utilisées dans presque toutes les applications PHP.
Si vous êtes nouveau sur Alibaba Cloud, [Inscrivez-vous à Alibaba Cloud à partir de ce lien](https://account.alibabacloud.com/register/intl_register.htm?spm=a2c65.11461447.0.0.3a3757aaxK9yJs&biz_params=%7B%22intl % 22:% 22% 7B% 5C% 22referralCode% 5C% 22:% 5C% 22fmj2og% 5C% 22% 7D% 22% 7D) S'il vous plaît. Vous pouvez obtenir gratuitement de nouveaux crédits utilisateur d'une valeur de 300 USD, que vous pouvez utiliser pour essayer différents produits Alibaba Cloud.
Alibaba Cloud documente presque toutes les informations dont vous avez besoin pour démarrer avec la plate-forme cloud. Pour plus d'informations sur la façon de démarrer avec Alibaba Cloud, consultez Didacticiels de mise en route et [Tech Share Blog](https://www.alibabacloud.com/blog? spm = a2c65.11461447.0.0.3a3757aazuE4B9) peut être utilisé. Les étapes les plus simples se trouvent dans le Guide de démarrage rapide (https://www.alibabacloud.com/help/en/doc-detail/25422.htm) pour les meilleures pratiques à utiliser lors de la création d'une instance ECS. Je vais expliquer.
Connectez-vous à la console Alibaba Cloud et accédez à l'interface Elastic Compute Service. Vous pouvez facilement créer une instance en cliquant sur le bouton Créer une instance. Les points à noter sont les suivants.
1, région: Alibaba Cloud possède des centres de données partout dans le monde, alors choisissez toujours une région géographiquement proche des utilisateurs de vos applications. Lorsque le centre de données est proche de l'utilisateur, le site Web se charge très rapidement en raison de la faible latence du réseau. Dans mon cas, l'organisation était basée à Mumbai, j'ai donc choisi la région de Mumbai. 2. Méthode de facturation: si vous souhaitez faire fonctionner votre instance 24 heures sur 24, 365 jours par an, vous devez toujours choisir la facturation mensuelle, car le prix sera inférieur à la moitié de celui de la facturation à l'utilisation. Par exemple, un abonnement mensuel pour une instance ECS avec deux processeurs virtuels et 4 Go de RAM partagés est de 23 USD, mais l'utilisation de la même instance avec Pay-As-You-Go coûte 0,103 USD par heure. .. Le coût mensuel sera de 0,103 USD * 24 \ * 30 = 74,16 USD.
3, type d'instance: sélectionnez le type d'instance en fonction de vos besoins. Vous pouvez augmenter les ressources plus tard si nécessaire. 4, Image: Vous pouvez trouver l'application que vous souhaitez installer sur votre instance ECS dans l'image Marketplace, mais nous vous recommandons de toujours l'installer vous-même avec une image officielle propre. Plus tard, si votre application rencontre une erreur, vous saurez où chercher. 5, stockage: le disque système sera supprimé lorsque l'instance ECS sera libérée. Utilisez des disques de données chaque fois que possible, car le disque sera conservé si l'instance est supprimée accidentellement. Les paramètres que j'ai utilisés sont:
Vous pouvez sélectionner le VPC créé par défaut. Vous pouvez y ajouter 4092 instances. J'utilise un groupe de sécurité différent pour chaque instance ECS, afin de pouvoir le configurer individuellement et m'assurer qu'aucun port inutilisé n'est ouvert.
Une autre chose importante est d'utiliser l'authentification par clé au lieu d'utiliser des mots de passe. Si vous avez déjà une paire de clés, ajoutez la clé publique à Alibaba Cloud. Si vous n'en avez pas, vous pouvez en créer un à l'aide d'Alibaba Cloud. Conservez la clé dans un endroit très sécurisé et assurez-vous que la clé elle-même est cryptée avec une phrase de passe.
C'est tout pour les points à noter lors de la création d'une instance ECS.
Après avoir créé une instance et vous être connecté au terminal, il y a quelques éléments à prendre en compte avant de configurer votre site Web.
J'ai créé un utilisateur sudo et y ai défini une authentification basée sur une clé. J'ai mis à jour l'image de base et mis en place une mise à niveau du système sans pilote. Suite au tutoriel d'installation du serveur Web Nginx, j'ai installé le serveur Web Nginx, puis j'ai utilisé PHP-FPM pour installer PHP 7.2. PHP 7.2 est la dernière version de PHP actuellement disponible. En utilisant le dernier logiciel, il n'y a pas de bogues, la vitesse de traitement devient plus rapide et un fonctionnement stable devient possible. Enfin, j'ai téléchargé l'archive Suite CRM à partir du site officiel et l'ai déployée sur Nginx.
Pour installer l'application, veuillez utiliser Tutoriel de mise en route ou [Tutoriel de l'auteur Tech Share](https: //www.alibabacloud. Veuillez vous référer à com / blog? Spm = a2c65.11461447.0.0.3a3757aaPzSq8i).
Il est très important pour les groupes de sécurité d'instance ECS de ne pas ouvrir les ports inutilisés. Jetez un œil aux règles de groupe de sécurité que j'ai utilisées pour mon instance SuiteCRM.
Vous pouvez voir que seuls les ports 22, 80, 443 sont autorisés avec tous les paquets ICMP. Le port 22 est utilisé pour la connexion SSH. Le port 80 est un port HTTP non sécurisé, dans mon cas redirigeant vers le port HTTPS 443. Les paquets ICMP sont utilisés pour envoyer un ping pour voir si l'hôte est actif. Vous pouvez supprimer le paquet ICMP, mais vous ne pourrez pas envoyer de requête ping à l'instance.
La première question qui vient à l'esprit avant de créer une instance RDS est de savoir pourquoi vous en avez besoin. Vous pouvez également installer des serveurs de base de données open source tels que MySQL, MariaDB, PostgreSQL et MongoDB sur l'instance ECS elle-même.
La réponse à cette question est que ApsaraDB pour les instances RDS est optimisé pour la vitesse et la sécurité. est. Par défaut, les instances créées ne sont accessibles qu'aux instances en liste blanche.
Jetons un coup d'œil aux points à noter lors de la création d'une instance ECS.
Une fois l'instance MySQL RDS activée, j'ai ajouté l'instance ECS à la liste blanche à partir de l'onglet Sécurité de l'instance. Dès que j'ai ajouté l'adresse IP à la liste blanche, j'ai obtenu le nom d'hôte et le numéro de port de l'instance RDS, qui était le port par défaut de MySQL "3306". J'ai créé une base de données nommée "suitecrm" et un utilisateur de base de données nommé "suitecrm" et leur ai donné un accès en lecture et en écriture.
Avec le développement d'Internet, de nombreux sites Web sont ajoutés chaque jour. Depuis que l'Autorité de certification Let's Encrypt a commencé à offrir des certificats SSL gratuitement, la tendance a été d'utiliser SSL sur tous les sites Web. Il est très important d'utiliser SSL dans votre application Web pour assurer la sécurité. Si les données échangées ne sont pas cryptées, elles peuvent être écoutées sur le réseau et des informations sensibles peuvent être extraites.
Alibaba Cloud propose également des Certificats SSL, mais à mon avis, c'est assez cher. Cependant, les plus chers sont accompagnés d'une garantie supplémentaire. Le certificat SSL fourni par Alibaba Cloud convient aux utilisateurs en entreprise.
Avec l'introduction de SuiteCRM, nous avons également utilisé le SSL gratuit de Let's Encrypt pour assurer la sécurité des applications Web de SuiteCRM. Pour que Certbot, l'application cliente de Let's Encrypt CA, génère un certificat, le domaine doit être dirigé vers le serveur.
Alibaba Cloud propose un nom de domaine avec une protection whois gratuite à un prix très raisonnable. Dans mon cas, le client avait déjà un nom de domaine acheté ailleurs. J'ai créé un sous-domaine et indiqué ce domaine vers une instance ECS. J'ai installé Certbot et j'ai pu facilement générer un certificat. N'oubliez pas de configurer une tâche cron pour renouveler automatiquement votre certificat, car le certificat expire tous les trois mois.
La création d'un serveur Web de niveau entreprise nécessite de l'expertise et du temps, et sa maintenance est très coûteuse. Vous devez donc éviter de configurer votre propre serveur de messagerie. Une petite erreur de configuration peut amener le courrier à aller directement dans le dossier spam.
Alibaba Cloud Service de courrier direct offre un moyen peu coûteux d'envoyer des e-mails à partir de votre application en utilisant SMTP. Les 200 premiers mails sont gratuits tous les jours. Dans mon cas, 200 mails par jour suffisent, et les mails qui dépassent le cadre libre sont également très bon marché. J'ai essayé d'ajouter un nouveau sous-domaine de messagerie à Direct Mail. Lorsque j'ai ajouté le domaine, on m'a demandé de mettre à jour le DNS. J'ai essayé comme indiqué, mais cela a pris du temps pour vérifier le DNS. Une fois terminé, j'ai ajouté l'adresse de l'expéditeur pour rendre le serveur SMTP disponible pour mon application.
Enfin, tout est prêt. Application Suite CRM hébergée sur ECS. Le serveur de base de données est hébergé sur ApsaraDB pour RDS. Il était facile de faire une installation Web pour installer le logiciel.
Voici les paramètres fournis au serveur de base de données lors de l'installation Web de SuiteCRM.
De même, j'ai rempli toutes les informations requises et fourni les détails du serveur SMTP.
Finalement, mon application a été déployée sur Alibaba Cloud. De plus, utilisez ApsaraDB for Memcache pour enregistrer le cache de session SuiteCRM et [WAF](https: // www. J'ai suggéré aux clients d'utiliser alibabacloud.com/en/product/waf) pour protéger leurs applications contre les menaces envahissantes. Cependant, le client a refusé de mettre en œuvre ces propositions en raison de l'augmentation de la facturation mensuelle. Cependant, le client était très heureux de voir les performances de l'application sur la plate-forme cloud Alibaba.
J'écris fréquemment des blogs techniques sur la plateforme Alibaba Cloud Tech Share. Veuillez visiter le [lien] suivant (https://www.google.co.in/search?spm=a2c65.11461447.0.0.3a3757aat1Kh6f&q=site:alibabacloud.com/blog%20Liptan) pour lire le tutoriel que j'ai écrit. Veuillez le trouver. En outre, j'écrirai un guide détaillé des étapes et des commandes que je suis pour installer Suite CRM sur Ubuntu 16.04 sur la plate-forme Alibaba Cloud Tech Share.
Recommended Posts