[LINUX] Eine Geschichte über die Umstellung eines persönlich entwickelten Webdienstes von einem Mietserver auf GCP (Google Cloud Platform)

Ich betreibe einen Webdienst durch persönliche Entwicklung. Ich habe es lange Zeit mit einem Mietserver für 500 Yen pro Monat geschafft, aber ich habe aus folgenden Gründen darüber nachgedacht, den Server zu migrieren.

・ Middleware kann nicht frei installiert werden ・ Kann nicht vergrößert werden ・ Das Zugriffsprotokoll kann nicht in Echtzeit angezeigt werden ・ Der Mietserver entscheidet über den Zeitplan für die Abschaffung von TLS1.0 / 1.1 ・ Ich möchte DKIM einstellen, um die E-Mail-Ankunftsrate zu erhöhen

Ich habe auch AWS berührt, war aber mit BigQuery in meinem Unternehmen vertraut und habe mich daher für die Verwendung der Google Cloud Platform entschieden.

Normalerweise entwickle ich Webanwendungen, daher berühre ich die Infrastruktur nur leicht, versuche sie aber nach dem Studium zu erstellen.

Verfassung

1 Cloud Load Balancing 1 Produktions-Web / DB-Server (Compute Engine, CentOS) 1 Webserver für die Wartung (Compute Engine, CentOS) network.png Platzieren Sie eine Instanz des Produktions-Web / DB-Servers und des Wartungs-Webservers hinter dem Load Balancer.

Gründe für die Verwendung eines Road Balancers

Schreiben Sie den Grund für die Verwendung des Load Balancers auch auf einer nicht sehr großen Site auf.

Kann mit einer globalen IP betrieben werden

Bei der Migration von einem Mietserver müssen Sie lediglich den A-Datensatz in die IP des Load Balancers ändern.

Ich möchte nicht autorisierte Anfragen wie direkte IP ausschließen

Wenn Sie den Server veröffentlichen, werden illegale Anfragen mit direkter IP usw. eingehen. Ein solcher Zugriff, z. B. der Zugriff auf das .git-Verzeichnis oder das Suchen nach Schwachstellendateien, verhindert, dass Anforderungen an den Produktionswebserver gesendet werden.

Kann skaliert werden, z. B. mehrere Webserverkonfigurationen

DB kann skaliert werden, indem es mithilfe von Cloud SQL usw. unabhängig gemacht und mehrere Produktionswebserver konfiguriert werden.

Das SSL-Zertifikat kann für den Load Balancer festgelegt werden

Der Load Balancer beendet SSL und der Webserver hinter dem Load Balancer hat HTTP-Zugriff. Ich denke, es ist billiger als das Entschlüsseln von SSL auf einem Webserver. Sie können Ihre Zertifikate auch auf den Load Balancer konzentrieren, wenn Sie über mehrere Webserver verfügen.

Kann während der Wartung nur durch Sortieren des Straßenausgleichers durchgeführt werden

Wenn Sie beispielsweise die Produktionswebserverinstanz stoppen möchten, um ihre Leistung zu verbessern, können Sie den Load Balancer während der Wartung problemlos auf den Wartungsserver verteilen.

Mail-Server

Ich kann keine E-Mails direkt von einer Instanz von Compute Engine senden. Daher habe ich mich für einen externen Dienst entschieden, der mit der Web-API verwendet werden kann.

Über den Betrieb

Erneuerung des SSL-Zertifikats

Das SSL-Zertifikat verwendet Let's Encrypt. Fügen Sie das, was Sie mit dem Befehl certbot certonly auf dem Webserver erstellt haben, in den Bildschirm mit den Einstellungen für den Lastenausgleich ein. Es ist ein bisschen nervig, weil ich es alle drei Monate einmal machen muss.

Schnappschuss

Machen Sie regelmäßig Schnappschüsse Ihrer Instanzen. Snapshots können aufgenommen werden, während die Instanz ausgeführt wird. Im Notfall können Sie aus dem Snapshot eine neue Instanz erstellen.

Automatische Paketaktualisierung

Standardmäßig verfügen CentOS-Instanzen von Compute Engine über automatische Paketaktualisierungen, die von yum-cron aktiviert werden. Daher werden die Sicherheitspatches der installierten Pakete automatisch aktualisiert.

Wenn Sie sich beispielsweise den Aktualisierungsverlauf des PHP-Pakets ansehen, sehen Sie, dass es zuletzt automatisch auf "5.4.16-46.1.el7_7.x86_64" aktualisiert wurde.

$ 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

Zusammenfassung

Im Gegensatz zu dem Mietserver, der alles schützt, sind die Kosten gestiegen, aber der Freiheitsgrad bei der Entwicklung hat zugenommen, und das Serviceniveau, das bereitgestellt werden kann, hat sich ebenfalls dramatisch erhöht.

Ich möchte nach und nach die optimale Betriebsmethode finden, während ich verschiedene Dinge berühre.

Recommended Posts

Eine Geschichte über die Umstellung eines persönlich entwickelten Webdienstes von einem Mietserver auf GCP (Google Cloud Platform)
Eine Geschichte über den Betrieb einer GCP-Instanz von Discord
Die Geschichte des Wechsels des Azure App Service-Websystems von Windows zu Linux
Herstellen einer Verbindung zu Cloud SQL PostgreSQL auf der Google Cloud Platform aus einer lokalen Umgebung mit Java
Eine Geschichte, die mithilfe einer kostenlosen Testversion der Google Cloud Platform zu einer neuen Koronaanalyse beiträgt
Senden Sie mithilfe von Google Cloud Messaging für Chrome eine Nachricht vom Server an die Chrome-Erweiterung
Eine Geschichte über einen GCP-Anfänger, der versucht, mit GCE einen Micra-Server aufzubauen
Eine Geschichte über alles von der Datenerfassung über die KI-Entwicklung bis hin zur Veröffentlichung von Webanwendungen in Python (3. KI-Entwicklung)
WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
Fordern Sie die Herausforderungen von Cyma weiterhin mit dem OCR-Dienst der Google Cloud Platform heraus