Une histoire sur le passage d'un service Web développé personnellement d'un serveur de location à GCP (Google Cloud Platform)

Je dirige un service web par développement personnel. J'ai réussi à le faire avec un serveur de location pour 500 yens par mois pendant longtemps, mais j'ai pensé à migrer le serveur pour les raisons suivantes.

・ L'intergiciel ne peut pas être installé librement ・ Impossible d'augmenter ・ Le journal d'accès ne peut pas être consulté en temps réel ・ Le serveur de location décide du calendrier de suppression de TLS1.0 / 1.1 ・ Je souhaite configurer DKIM pour augmenter le taux d'arrivée du courrier

J'ai également touché AWS, mais je connaissais bien BigQuery dans mon entreprise, j'ai donc décidé d'utiliser Google Cloud Platform.

Je développe généralement des applications Web, donc je vais juste toucher légèrement l'infrastructure, mais je vais essayer de la construire après avoir étudié.

Constitution

1 Équilibrage de charge cloud 1 serveur Web / DB de production (Compute Engine, CentOS) 1 serveur Web pour la maintenance (Compute Engine, CentOS) network.png Placez une instance du serveur Web / DB de production et du serveur Web de maintenance derrière l'équilibreur de charge.

Raisons d'utiliser un équilibreur de route

Écrivez la raison de l'utilisation de l'équilibreur de charge, même sur un site qui n'est pas très volumineux.

Peut être utilisé avec une IP globale

Lors de la migration à partir d'un serveur de location, tout ce que vous avez à faire est de changer l'enregistrement A sur l'adresse IP de l'équilibreur de charge.

Je souhaite exclure les demandes non autorisées telles que l'adresse IP directe

Si vous publiez le serveur, les demandes illégales arriveront avec une adresse IP directe, etc. Un tel accès, tel que l'accès au répertoire .git ou l'analyse des fichiers de vulnérabilité, empêche les requêtes d'arriver au serveur Web de production.

Peut être mis à l'échelle comme plusieurs configurations de serveur Web

La base de données peut être mise à l'échelle en la rendant indépendante à l'aide de Cloud SQL, etc. et en configurant plusieurs serveurs Web de production.

Le certificat SSL peut être défini pour l'équilibreur de charge

L'équilibreur de charge mettra fin à SSL et le serveur Web derrière l'équilibreur de charge aura un accès HTTP. Je pense que c'est moins cher que de déchiffrer SSL sur un serveur Web. Vous pouvez également concentrer vos certificats sur l'équilibreur de charge lorsque vous avez plusieurs serveurs Web.

Peut être effectué pendant l'entretien uniquement en triant l'équilibreuse de route

Par exemple, si vous souhaitez arrêter l'instance de serveur Web de production pour améliorer ses performances, vous pouvez facilement distribuer l'équilibreur de charge sur le serveur de maintenance pendant la maintenance.

serveur de courrier

Je ne peux pas envoyer d'e-mails directement à partir d'une instance de Compute Engine, j'ai donc décidé d'utiliser un service externe pouvant être utilisé avec l'API Web.

À propos du fonctionnement

Renouvellement du certificat SSL

Le certificat SSL utilise Let's Encrypt. Collez ce que vous avez créé avec la commande certbot certonly sur le serveur Web dans l'écran des paramètres de l'équilibreur de charge. C'est un peu ennuyeux car je dois le faire une fois tous les trois mois.

instantané

Prenez régulièrement des instantanés de vos instances. Des instantanés peuvent être pris pendant l'exécution de l'instance. En cas d'urgence, vous pouvez créer une nouvelle instance à partir de l'instantané.

Mise à jour automatique du package

Par défaut, les instances CentOS de Compute Engine disposent de mises à jour automatiques des packages activées par yum-cron. Par conséquent, les correctifs de sécurité des packages installés seront automatiquement mis à niveau.

Par exemple, si vous regardez l'historique de mise à jour du paquet php, vous pouvez voir qu'il a été automatiquement mis à jour vers "5.4.16-46.1.el7_7.x86_64" le plus récemment.

$ sudo yum history package-list php
Loaded plugins: fastestmirror
ID     | Action(s)      | Package                                              
-------------------------------------------------------------------------------
   142 | Updated        | php-5.4.16-46.el7.x86_64                             
   142 | Update         |     5.4.16-46.1.el7_7.x86_64                         
    57 | Updated        | php-5.4.16-45.el7.x86_64                             
    57 | Update         |     5.4.16-46.el7.x86_64                             
    10 | Install        | php-5.4.16-45.el7.x86_64                             
history package-list

Résumé

Contrairement au serveur de location qui protège tout, le coût a augmenté, mais le degré de liberté de développement a augmenté et le niveau de service qui peut être fourni a également considérablement augmenté.

Je voudrais trouver progressivement la méthode de fonctionnement optimale tout en touchant diverses choses.

Recommended Posts

Une histoire sur le passage d'un service Web développé personnellement d'un serveur de location à GCP (Google Cloud Platform)
Une histoire sur l'exploitation d'une instance GCP à partir de Discord
L'histoire du passage du système Web Azure App Service de Windows à Linux
Comment se connecter à Cloud SQL PostgreSQL sur Google Cloud Platform à partir d'un environnement local avec Java
Une histoire qui contribue à une nouvelle analyse corona à l'aide d'un essai gratuit de Google Cloud Platform
Envoyer un message du serveur à l'extension Chrome à l'aide de Google Cloud Messaging pour Chrome
Une histoire sur un débutant de GCP essayant de créer un serveur Micra avec GCE
Une histoire sur tout, de la collecte de données au développement d'IA et à la publication d'applications Web en Python (3. développement d'IA)
WEB grattage avec python et essayez de créer un nuage de mots à partir des critiques
Continuer à relever les défis de Cyma en utilisant le service OCR de Google Cloud Platform