In diesem Artikel möchte ich Ihnen die Best Practices vorstellen, die ich beim Bereitstellen von Webanwendungen in der Cloud verwende.
** Dieser Blog ist eine Übersetzung aus der englischen Version. Sie können das Original von [hier] überprüfen (https://www.alibabacloud.com/blog/my-best-practices-for-deploying-a-web-application-in-alibaba-cloud_593826). Einige maschinelle Übersetzungen werden verwendet. Wir würden uns freuen, wenn Sie auf Übersetzungsfehler hinweisen könnten. ** ** **
Dieser Artikel ist Medium Blogging Platform Es wird aber auch veröffentlicht.
In diesem Artikel möchte ich die Best Practices vorstellen, die ich beim Bereitstellen von Webanwendungen in der Cloud verwende. Ich arbeite als Freiberufler, aber kürzlich hat mich einer meiner Kunden gebeten, Suite CRM für eine kleine Organisation einzurichten. Ich schreibe so oft Alibaba Cloud-Tutorials, dass ich Kunden empfohlen habe, dieselbe Cloud-Plattform zu verwenden. Für fast 100 Benutzer und mehr als 30 gleichzeitige Benutzer empfehle ich folgende Konfiguration:
1, PHP-2 vCPUs zur Installation von Nginx mit FPM, ECS-Instanz mit 4 GB RAM. 2. ApsaraDB für RDS, Core 1 GB, RAM 1 GB, Speicher 10 GB für RDS-Instanz für MySQL. 3, Direktwerbung zum Versenden von Post.
Die Schritte, die ich unternommen habe, sind sehr einfach und können in fast jeder PHP-basierten Anwendung verwendet werden.
Wenn Sie neu in Alibaba Cloud sind, [Melden Sie sich über diesen Link für Alibaba Cloud an](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) Bitte. Sie können kostenlos neue Benutzer-Credits im Wert von 300 US-Dollar erhalten, mit denen Sie verschiedene Alibaba Cloud-Produkte ausprobieren können.
Alibaba Cloud dokumentiert fast alle Informationen, die Sie für den Einstieg in die Cloud-Plattform benötigen. Informationen zu den ersten Schritten mit Alibaba Cloud finden Sie unter Erste Tutorials und Tech Share Blog. spm = a2c65.11461447.0.0.3a3757aazuE4B9) kann verwendet werden. Die einfachsten Schritte finden Sie in der Kurzanleitung (https://www.alibabacloud.com/help/en/doc-detail/25422.htm) für bewährte Methoden beim Erstellen einer ECS-Instanz. Ich werde erklären.
Melden Sie sich bei der Alibaba Cloud-Konsole an und rufen Sie die Benutzeroberfläche des Elastic Compute Service auf. Sie können eine Instanz einfach erstellen, indem Sie auf die Schaltfläche Instanz erstellen klicken. Die zu beachtenden Punkte sind wie folgt.
1, Region: Alibaba Cloud verfügt über Rechenzentren auf der ganzen Welt. Wählen Sie daher immer eine Region aus, die sich geografisch in der Nähe Ihrer Anwendungsbenutzer befindet. Wenn sich das Rechenzentrum in der Nähe des Benutzers befindet, wird die Website aufgrund der geringen Netzwerklatenz sehr schnell geladen. In meinem Fall hatte die Organisation ihren Sitz in Mumbai, daher habe ich mich für die Region Mumbai entschieden. 2. Abrechnungsmethode: Wenn Sie Ihre Instanz 24 Stunden am Tag und 365 Tage im Jahr betreiben möchten, sollten Sie immer die monatliche Abrechnung wählen, da der Preis weniger als die Hälfte des Preises für die Abrechnung nach dem Umtausch beträgt. Die monatlichen Abonnementkosten für eine ECS-Instanz mit zwei gemeinsam genutzten vCPUs und 4 GB RAM betragen beispielsweise 23 US-Dollar. Wenn Sie jedoch dieselbe Instanz mit Pay-As-You-Go verwenden, betragen die Kosten pro Stunde 0,103 US-Dollar. .. Die monatlichen Kosten betragen $ 0,103 * 24 \ * 30 = $ 74,16 USD.
3, Instanztyp: Wählen Sie den Instanztyp gemäß Ihren Anforderungen aus. Sie können die Ressourcen später bei Bedarf erhöhen. 4, Image: Sie finden die Anwendung, die Sie auf Ihrer ECS-Instanz installieren möchten, im Marketplace-Image. Wir empfehlen jedoch, sie immer selbst mit einem sauberen offiziellen Image zu installieren. Wenn Ihre Anwendung später auf einen Fehler stößt, wissen Sie, wo Sie suchen müssen. 5, Speicher: Die Systemfestplatte wird gelöscht, wenn die ECS-Instanz freigegeben wird. Verwenden Sie nach Möglichkeit Datenfestplatten, da die Festplatte erhalten bleibt, wenn die Instanz versehentlich gelöscht wird. Die Einstellungen, die ich verwendet habe, sind:
Sie können die standardmäßig erstellte VPC auswählen. Sie können 4092 Instanzen hinzufügen. Ich verwende für jede ECS-Instanz eine andere Sicherheitsgruppe, damit ich sie einzeln konfigurieren und sicherstellen kann, dass keine nicht verwendeten Ports geöffnet sind.
Eine weitere wichtige Sache ist die Verwendung der schlüsselbasierten Authentifizierung anstelle von Kennwörtern. Wenn Sie bereits ein Schlüsselpaar haben, fügen Sie den öffentlichen Schlüssel zur Alibaba Cloud hinzu. Wenn Sie noch keine haben, können Sie eine mit Alibaba Cloud erstellen. Bewahren Sie den Schlüssel an einem sehr sicheren Ort auf und stellen Sie sicher, dass der Schlüssel selbst mit einer Passphrase verschlüsselt ist.
Das ist alles, was Sie beim Erstellen einer ECS-Instanz beachten müssen.
Nachdem Sie eine Instanz erstellt und sich am Terminal angemeldet haben, müssen Sie einige Punkte beachten, bevor Sie Ihre Website einrichten.
Ich habe einen sudo-Benutzer erstellt und darin eine schlüsselbasierte Authentifizierung festgelegt. Ich habe das Basis-Image aktualisiert und ein unbemanntes System-Upgrade eingerichtet. Nach dem Tutorial zur Installation des Nginx-Webservers habe ich den Nginx-Webserver installiert und dann PHP-FPM zur Installation von PHP 7.2 verwendet. PHP 7.2 ist die neueste Version von PHP, die derzeit verfügbar ist. Durch die Verwendung der neuesten Software treten keine Fehler auf, die Verarbeitungsgeschwindigkeit wird schneller und ein stabiler Betrieb wird möglich. Schließlich habe ich das Suite CRM-Archiv von der offiziellen Website heruntergeladen und auf Nginx bereitgestellt.
Verwenden Sie zum Installieren der Anwendung Erste Schritte Tutorial oder [Tutorial des Tech Share-Autors](https: //www.alibabacloud). Bitte beziehen Sie sich auf com / blog? Spm = a2c65.11461447.0.0.3a3757aaPzSq8i).
Es ist sehr wichtig, dass Sie keine nicht verwendeten Ports in Ihrer ECS-Instanz-Sicherheitsgruppe öffnen. Sehen Sie sich die Sicherheitsgruppenregeln an, die ich für meine SuiteCRM-Instanz verwendet habe.
Sie können sehen, dass mit allen ICMP-Paketen nur die Ports 22, 80, 443 zulässig sind. Port 22 wird für die SSH-Verbindung verwendet. Port 80 ist ein unsicherer HTTP-Port, der in meinem Fall zum HTTPS-Port 443 umgeleitet wird. ICMP-Pakete werden zum Pingen verwendet, um festzustellen, ob der Host aktiv ist. Es ist in Ordnung, das ICMP-Paket zu löschen, aber Sie können die Instanz nicht anpingen.
Die erste Frage, die Ihnen vor dem Erstellen einer RDS-Instanz in den Sinn kommt, ist, warum Sie sie benötigen. Sie können auch Open Source-Datenbankserver wie MySQL, MariaDB, PostgreSQL und MongoDB auf der ECS-Instanz selbst installieren.
Die Antwort auf diese Frage lautet, dass ApsaraDB für RDS-Instanzen auf Geschwindigkeit und Sicherheit optimiert ist. ist. Standardmäßig können erstellte Instanzen nur für Instanzen auf der Whitelist aufgerufen werden.
Werfen wir einen Blick auf die Punkte, die beim Erstellen einer ECS-Instanz zu beachten sind.
Nachdem die MySQL RDS-Instanz aktiviert wurde, habe ich die ECS-Instanz auf der Registerkarte Instanzsicherheit auf die Whitelist gesetzt. Sobald ich die IP-Adresse auf die Whitelist gesetzt hatte, erhielt ich den Hostnamen und die Portnummer der RDS-Instanz, bei der es sich um den MySQL-Standardport "3306" handelte. Ich habe eine Datenbank mit dem Namen "suitecrm" und einen Datenbankbenutzer mit dem Namen "suitecrm" erstellt und ihnen Lese- und Schreibzugriff gewährt.
Mit der Entwicklung des Internets werden täglich viele Websites hinzugefügt. Seit die Let's Encrypt Certificate Authority SSL-Zertifikate kostenlos anbietet, besteht der Trend darin, SSL auf allen Websites zu verwenden. Es ist sehr wichtig, SSL in Ihrer Webanwendung zu verwenden, um die Sicherheit zu gewährleisten. Wenn die ausgetauschten Daten nicht verschlüsselt sind, können sie im Netzwerk abgehört und vertrauliche Informationen extrahiert werden.
Alibaba Cloud bietet auch [SSL-Zertifikate] an (https://www.alibabacloud.com/en/product/certificates), aber meiner Meinung nach ist es ziemlich teuer. Für teure Modelle gilt jedoch eine zusätzliche Garantie. Das von Alibaba Cloud bereitgestellte SSL-Zertifikat ist für Unternehmensbenutzer geeignet.
Mit der Einführung von SuiteCRM haben wir auch das kostenlose SSL von Let's Encrypt verwendet, um die Sicherheit von SuiteCRM-Webanwendungen zu gewährleisten. Damit Certbot, die Clientanwendung von Let's Encrypt CA, ein Zertifikat generieren kann, muss die Domäne an den Server geleitet werden.
Alibaba Cloud bietet einen Domainnamen mit kostenlosem Whois-Schutz zu einem sehr vernünftigen Preis. In meinem Fall hatte der Kunde bereits einen Domainnamen, der von einer anderen Stelle gekauft wurde. Ich habe eine Subdomain erstellt und diese Domain auf eine ECS-Instanz verwiesen. Ich habe Certbot installiert und konnte problemlos ein Zertifikat erstellen. Denken Sie daran, einen Cron-Job einzurichten, um Ihr Zertifikat automatisch zu erneuern, da das Zertifikat alle drei Monate abläuft.
Das Erstellen eines Webservers für Unternehmen erfordert Fachwissen und Zeit und ist sehr teuer in der Wartung. Daher sollten Sie die Einrichtung eines eigenen Mailservers vermeiden. Eine kleine Fehlkonfiguration kann dazu führen, dass E-Mails direkt in den Spam-Ordner verschoben werden.
Alibaba Cloud Direktmailing-Dienst bietet eine kostengünstige Möglichkeit, E-Mails von Ihrer Anwendung über SMTP zu senden. Die ersten 200 Mails sind täglich kostenlos. In meinem Fall reichen 200 Mails pro Tag aus, und Mails, die den freien Rahmen überschreiten, sind auch sehr billig. Ich habe versucht, Direct Mail eine neue Mail-Subdomain hinzuzufügen. Als ich die Domain hinzufügte, wurde ich aufgefordert, das DNS zu aktualisieren. Ich habe versucht, wie angewiesen, aber es hat lange gedauert, den DNS zu überprüfen. Anschließend habe ich die Absenderadresse hinzugefügt, um den SMTP-Server für meine Anwendung verfügbar zu machen.
Endlich ist alles fertig. Auf CRM gehostete Suite CRM-Anwendung. Der Datenbankserver wird auf ApsaraDB für RDS gehostet. Es war einfach, eine webbasierte Installation durchzuführen, um die Software zu installieren.
Im Folgenden sind die Einstellungen aufgeführt, die dem Datenbankserver während der webbasierten SuiteCRM-Installation zur Verfügung gestellt wurden.
Ebenso habe ich alle erforderlichen Informationen eingegeben und die Details des SMTP-Servers angegeben.
Schließlich wurde meine Anwendung in der Alibaba Cloud bereitgestellt. Verwenden Sie außerdem ApsaraDB für Memcache, um den SuiteCRM-Sitzungscache zu speichern, und dann [WAF](https: // www. Ich schlug Kunden vor, alibabacloud.com/en/product/waf) zu verwenden, um ihre Anwendungen vor eindringenden Bedrohungen zu schützen. Der Kunde lehnte es jedoch aufgrund der erhöhten monatlichen Abrechnung ab, diese Vorschläge umzusetzen. Der Kunde war jedoch sehr erfreut über die Leistung der Anwendung auf der Alibaba-Cloud-Plattform.
Ich schreibe häufig technische Blogs auf der Alibaba Cloud Tech Share-Plattform. Besuchen Sie den folgenden Link für das von mir geschriebene Tutorial Bitte finden Sie es. Außerdem werde ich eine detaillierte Anleitung zu den Schritten und Befehlen schreiben, die ich zur Installation von Suite CRM unter Ubuntu 16.04 auf der Alibaba Cloud Tech Share-Plattform befolge.