Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Installation von WordPress in der Amazon Cloud

by
Read Time:15 minsLanguages:

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Verwaltetes WordPress-Hosting passt für die meisten Leute, aber ich bevorzuge die Flexibilität, meinen eigenen Server zu betreiben. Eine der kostengünstigeren Lösungen ist der Cloud-basierte Webdienst (AWS) von Amazon.

Wenn Sie keinen technischen Hintergrund haben, kann der Einstieg in AWS überwältigend sein.

Als ich WordPress zum ersten Mal auf einer AWS-Mikroinstanz installierte, ging ihm immer wieder der Speicher aus und es stürzte ab. Als ich dann ein benutzerdefiniertes, ansprechendes Thema auf einer größeren Instanz installierte, war es immer noch ziemlich langsam.

Dieser Guide bietet Ihnen einen detaillierten, schrittweisen Ansatz zum Einrichten Ihres WordPress-Blogs bei AWS auf leistungsstarke und wirtschaftliche Weise mithilfe einer AWS-Mikroinstanz (oder einer kleinen Instanz), die unter Apache ausgeführt wird. In einem anschließenden Tutorial erfahren Sie, wie Sie die Leistung mit Varnish Cache und dem W3 Total Cache-Plugin optimieren können. Ich habe in den letzten zwei Jahren erfolgreich meine eigene Website in der Amazon-Cloud betrieben und viele Erwähnungen auf Slashdot, BoingBoing und anderen stark frequentierten Websites überlebt.

Kostenschätzung

Die stundenweise Verwendung von AWS kann teuer sein. Für ein WordPress-Blog, das 7 Tage die Woche und 24 Stunden am Tag unbegrenzt funktioniert, ist es am besten, eine sogenannte "schwere reservierte Instanz" zu erwerben. Es gibt Vorlaufkosten, aber große Einsparungen im Laufe der Zeit. Es ist im Wesentlichen ein Mengenrabatt für den Kauf von Zeit in ihrem Netzwerk.

Mit einer drei Jahre stark reservierten Mikroinstanz können Sie ein Blog mit geringem Datenverkehr für 6,44 US-Dollar monatlich betreiben (wobei das erste Jahr für neue AWS-Benutzer kostenlos ist). Wenn Sie etwas mehr Platz zum Wachsen wünschen, kaufen Sie eine drei Jahre reservierte kleine Instanz für eine monatliche Gesamtrate von 11,81 USD (was ich derzeit verwende).

Ich bin mir ziemlich sicher, dass ein vergleichbares Setup bei WordPress.com jährlich etwa 99 US-Dollar (8,25 US-Dollar monatlich) pro Blog kosten würde, 24 US-Dollar monatlich bei einem Host wie Page.ly und 29 US-Dollar monatlich bei WPEngine. Wenn Sie jedoch Ihre eigene Instanz ausführen, können Sie mehrere Blogs ohne zusätzliche Kosten ausführen. Je mehr Blogs Sie ausführen möchten, desto kostengünstiger wird AWS über WordPress.com. Sie können Ihre Serverinstanz auch für andere Aufgaben verwenden. Ich hoste andere Websites und führe einige meiner anderen Webanwendungen auf meinen aus.

Sie können mehr über AWS-Preise und Preise für reservierte Instanzen erfahren und Ihre Kosten mit ihrem Taschenrechner schätzen.

Hinweis: Die obigen Schätzungen enthalten keine zusätzlichen Kosten für S3-Speicher und Bandbreite, die vom W3 Total Cache verwendet werden. Diese Kosten sind jedoch in der Regel vergleichsweise geringer. Der skalierbare Remote Database Service (RDS) von Amazon wird in diesem Lernprogramm nicht speziell zur Kostenminimierung aufgenommen.

Ich schlage Ihnen vor, zu warten, bis Ihre grundlegende WordPress-Site betriebsbereit ist, bevor Sie sich für den Kauf einer reservierten Instanz entscheiden.

Wenn Sie eine reservierte Instanz kaufen und später bereuen, bietet Amazon einen Marktplatz für den Verkauf nicht verwendeter Teile reservierter Instanzen (gegen eine geringe Provision). Ich habe festgestellt, dass es gut funktioniert, und habe innerhalb weniger Wochen zwei Instanzen verkauft.

Das Verschieben Ihrer Site von einer Mikroinstanz auf eine kleine Instanz ist jedoch nicht trivial und wird hier nicht dokumentiert. Wenn Sie glauben, dass Sie ein erfolgreiches Blog haben, beginnen Sie mit einer kleinen oder mittleren Instanz.

Über das im Tutorial zur Leistungsoptimierung beschriebene Angebot hinaus bietet Amazon eine Reihe von Diensten und Techniken für ein höheres Maß an Flexibilität und Skalierbarkeit. Obwohl hier nicht beschrieben, gibt es bei AWS zahlreiche Möglichkeiten, um Ihre Website zu erweitern.

Wenn Sie noch kein Amazon Web Services-Konto (AWS) haben, melden Sie sich für eines an. Wenn Sie bereits ein Konto haben, melden Sie sich an und beginnen Sie.

Erstellen Sie Ihre EC2-Instanz

Nachdem Sie ein Konto haben, können Sie sich bei der AWS Console anmelden, um Ihren neuen virtuellen Server zu erstellen. Klicken Sie auf den EC2-Link im Dashboard unten:

Wenn Sie eine leicht frequentierte WordPress-Site ausführen möchten, funktioniert eine Mikroinstanz wahrscheinlich gut für Sie. Wenn Sie AWS noch nicht kennen, sollten Sie Ihr Blog ein Jahr lang in der kostenlosen Nutzungsstufe ausführen können. Wenn Sie eine drei Jahre reservierte Mikroinstanz für 100 US-Dollar kaufen, können Sie die monatliche Gesamtgebühr auf 6,44 US-Dollar reduzieren. Bei einer Mikroinstanz müssen Sie eine Auslagerungsdatei (siehe unten) einrichten, die geringfügige zusätzliche Kosten verursachen kann und gelegentlich überwacht werden sollte.

Wenn Sie der Meinung sind, dass die Popularität und Komplexität Ihres Blogs schnell zunimmt, sollten Sie mit einer kleinen Instanz beginnen. Durch den Kauf einer drei Jahre reservierten kleinen Instanz für 188 US-Dollar beträgt die effektive monatliche Rate 11,82 US-Dollar.

Klicken Sie auf die Schaltfläche Instanz starten, um den Assistenten zum Erstellen von Instanzen zu starten. Wenn Sie keinen nennenswerten Datenverkehr in Ihrem Blog erwarten, wählen Sie eine Ubuntu 14.xx (64-Bit) Micro-Instanz aus.

Sie können im Allgemeinen die Standardeinstellungen für jeden Schritt auswählen, während Sie sich durch den Assistenten bewegen.

Wenn Sie die Seite zum Konfigurieren der Firewall erreichen, fügen Sie eine Sicherheitsregel hinzu, um HTTP-Verkehr auf Port 80 zuzulassen:

Während des Vorgangs lädt der Assistent einen privaten Schlüssel in das Download-Verzeichnis Ihres Computers herunter. Bewahren Sie eine Kopie dieser Datei an einem sicheren Ort auf. Wenn Sie es verlieren, verlieren Sie den Zugriff auf Ihre gesamte Instanz.

Jetzt ist Ihre Instanz bereit, sich über SSH remote anzumelden. Öffnen Sie das Terminal auf Ihrem Computer. Verschieben Sie den heruntergeladenen Schlüssel in Ihr SSH-Schlüsselverzeichnis und legen Sie die Berechtigungen fest:

Kopieren Sie die URL für die Instanz von der Konsole, z. ec2-75-101-173-192.compute-1.amazonaws.com (siehe unten):

Versuchen Sie vom Terminal aus, eine Verbindung über SSH herzustellen:

Wenn Sie Windows verwenden, müssen Sie PUTTY verwenden, um eine Verbindung herzustellen.

Wenn Sie weiterhin Probleme haben, können Sie die Schaltfläche "Verbinden" in der Amazon-Konsole über der Liste der EC2-Instanzen verwenden.

Jetzt ist es an der Zeit, Ihrer Instanz eine öffentliche IP-Adresse zuzuordnen, damit Sie Ihren Domainnamen zuordnen können, z.B yourbrand.com zu Ihrer WordPress-Site. Heutzutage weist AWS jeder Instanz eine neue öffentliche IP-Adresse zu. Wenn es jedoch nicht automatisch für Sie erfolgt, müssen Sie eine neue elastische IP-Adresse zuweisen.

Klicken Sie in der linken Seitenleiste des EC2-Dashboards auf Elastic IPs. Klicken Sie dann auf Neue Adresse zuweisen. Amazon bietet eine kostenlose elastische IP pro laufender Instanz.

Anschließend müssen Sie die neue elastische Adresse der von Ihnen erstellten Instanz zuordnen. Auf diese Weise kann Amazon Datenverkehr, der in die elastische IP-Adresse eingeht, an Ihre Instanz senden, auf der WordPress ausgeführt wird.

Die Adresse, mit der Sie sich über SSH remote anmelden, wurde geändert, um Ihre elastische IP-Adresse wiederzugeben (ersetzen Sie die x durch Ihre neue elastische IP):

So kann jetzt auch funktionieren:

Jetzt können Sie mit dem Zuordnen Ihres Domainnamens beginnen, z. yourdomain.com zu Ihrer zukünftigen WordPress-Site. Besuchen Sie die DNS-Einstellungen Ihres Domain-Registrars und ändern Sie den A-Eintrag für yourdomain.com in die neue IP-Adresse, z. 59.234.124.118.

Hier ist ein Tutorial zum Konfigurieren von DNS A-Einträgen, aber Ihr Domain-Registrar hat wahrscheinlich auch einen Leitfaden.

Warten Sie, bis sich Ihre DNS-Änderungen verbreiten (manchmal bis zu 24 Stunden oder länger - überprüfen Sie sie hier), und versuchen Sie, über Ihre Domain eine Verbindung über SSH herzustellen:

In der Zwischenzeit sollten Sie in der Lage sein, andere Teile Ihrer Site einzurichten.

Sichern Sie Ihre Instanz

Obwohl AWS eine eigene Firewall bereitstellt, können Sie dennoch Maßnahmen ergreifen, um Sicherheitsrisiken zu minimieren. Hier sind drei Dinge, die ich empfehle:

  1. Erstellen Sie ein alternatives Benutzerkonto für die Standard-Root-Anmeldung (Ubuntu)
  2. Deaktivieren Sie den SSH-Zugriff für das Standard-Root-Konto (Ubuntu)
  3. Ändern Sie den für SSH verwendeten Standardport von 22

Warnung: Bitte befolgen Sie diese Anweisungen äußerst sorgfältig. Wenn Sie geringfügig von diesen Schritten abweichen, kann es zu Problemen führen - einschließlich der Unzugänglichkeit Ihrer Instanz.

1. Erstellen Sie ein alternatives Benutzerkonto

Wir werden einen Benutzer namens "hal" hinzufügen. Ersetzen Sie in den folgenden Beispielen "hal" durch Ihren bevorzugten Benutzernamen:

Fügen Sie Ihren neuen Benutzer zur Administratorgruppe hinzu:

Fügen Sie Ihren neuen Benutzer der Sudoers-Gruppe hinzu. Bearbeiten Sie die Sudoers-Datei:

Fügen Sie diese Zeile der sudoers-Datei im Abschnitt Benutzerrechte hinzu:

Jetzt erstellen wir Schlüssel für diesen Benutzer, damit er sich bei AWS anmelden kann. Wechseln Sie zum neuen Benutzer:

Wechseln Sie in das Ausgangsverzeichnis für diesen Benutzer:

Erstellen Sie ein SSH-Verzeichnis und legen Sie die Berechtigungen fest:

Generieren Sie ein neues Schlüsselpaar:

Öffentlichen Schlüssel zur Datei "authorized_keys" hinzufügen:

Berechtigungen festlegen:

Verschieben Sie den privaten Schlüssel in einen temporären Ordner, um ihn auf Ihren Computer herunterzuladen:

Bearbeiten Sie die SSH-Konfigurationsdatei, um den neuen Benutzer hinzuzufügen:

Fügen Sie das neue hal-Konto zum Feld "AllowUsers" hinzu (oder erstellen Sie die Zeile, wenn sie nicht vorhanden ist):

Starten Sie den Dienst neu

Wechseln Sie jetzt mit Terminal zurück zu Ihrem lokalen Computer. Laden Sie den neuen Schlüssel mit Ihrem Ubuntu-Konto von Ihrem Computer herunter:

Führen Sie diese Schritte auf Ihrem lokalen Computer aus. Berechtigungen festlegen und testen:

Wenn Sie auf Fehler stoßen, können Sie versuchen, zu Ihrer Serverinstanz zurückzukehren und die Anmeldung zu überprüfen, während Sie versuchen, sich anzumelden:

Entfernen Sie auf der Remoteserverinstanz die Schlüsseldateien aus dem Verzeichnis tmp:

2. Deaktivieren Sie den SSH-Zugriff für das Standardstammkonto

Bearbeiten Sie die SSH-Konfigurationsdatei erneut:

Entfernen Sie das Ubuntu-Konto aus dem Feld AllowUsers:

Stellen Sie sicher, dass PermitRootLogin auf no oder without-password eingestellt ist. Letzteres erfordert die Anmeldung mit einem Schlüssel:

Starten Sie den SSH-Dienst neu

Wenn Sie einige Schwierigkeiten haben, können Sie sich auch über die AWS-Konsoleninstanzliste wieder anmelden.

3. Ändern Sie den für SSH verwendeten Standardport von 22

Da Hacker regelmäßig nach SSH-Zugriff auf Port 22 suchen, ist es am besten, eine völlig andere Portnummer für die Konfiguration und Wartung Ihres Servers zu verwenden.

Bearbeiten Sie die SSH-Konfigurationsdatei erneut:

Ändern Sie die Portleitung in eine andere Portnummer, z. 33322:

Kehren Sie zur AWS-Konsole zurück und bearbeiten Sie die Sicherheitsgruppe. Fügen Sie die von Ihnen gewählte Portnummer hinzu, z. 33322. Entfernen Sie Port 22. Stellen Sie sicher, dass Sie auf die Schaltfläche Regeln anwenden klicken (nicht abgebildet). Es befindet sich unter dem Feld Regel hinzufügen.

Starten Sie den Dienst neu:

In Zukunft müssen Sie -p 33322 (oder den von Ihnen gewählten Port) verwenden, wenn Sie eine Verbindung über SSH herstellen:

Es gibt noch fortgeschrittenere Techniken, um Ihr SSH-Login zu verbergen. z.B. Port klopfen. Stellen Sie jedoch sicher, dass Sie wissen, was Sie tun. Ich wurde von traurigen Benutzern per E-Mail benachrichtigt, nachdem sie sich von ihrem eigenen Server ausgeschlossen haben.

WordPress installieren

Es ist Zeit für den unterhaltsamen Teil der Installation der Open Source-Version von WordPress. Ausführliche Anweisungen finden Sie im Codex von WordPress.

Upgrade auf die neueste Ubuntu-Distribution und ihre Pakete:

Erstellen Sie ein WWW-Verzeichnis mit Berechtigungen für den Apache-Webserver:

Laden Sie die neueste Version von WordPress herunter, erweitern Sie das Archiv und legen Sie die Berechtigungen fest:

Installieren Sie MySQL Server

Installieren Sie das MySQL Server-Paket:

Sie werden aufgefordert, einen Benutzernamen und ein Passwort anzugeben. Notieren Sie sich Ihre Auswahl für die Verwendung während des Einrichtungsvorgangs.

Konfigurieren Sie die MySQL-Datenbank. Ändern Sie den Benutzernamen und das Kennwort unten in das, was Sie während der Installation ausgewählt haben:

Später möchten Sie die Sicherung Ihres MySQL-Servers überprüfen. Ich habe hier eine kurze Zusammenfassung auf meiner Website.

Richten Sie Ihre WordPress Apache Site ein

Wenn Sie kein Amazon AWS AMI ausgewählt haben, auf dem Apache vorinstalliert ist, müssen Sie es möglicherweise jetzt installieren:

Jetzt ist es an der Zeit, eine Site-Konfigurationsdatei für Ihren Apache-Server zu erstellen, um WordPress zu hosten:

Erstellen wir eine neue Datei zum Bearbeiten. Hinweis: In neuen Versionen von Ubuntu 14.04 sollte die Site-Konfigurationsdatei auf .conf enden. Wenn die Datei wie in früheren Versionen dieses Tutorials einfach als WordPress bezeichnet wird, funktioniert a2ensite unten nicht.

Fügen Sie die folgende Beispiel-Site-Datei ein und ersetzen Sie die Namenskonvention für Ihren Domain-Namen:

Weisen Sie Apache an, die Site zu aktivieren und neu zu laden:

Konfigurieren Sie WordPress

Jetzt können wir WordPress über die Datenbank und Ihr Blog informieren. Zunächst ändern wir vorübergehend die Berechtigungen für Ihr WordPress-Verzeichnis:

Öffnen Sie einen Webbrowser und navigieren Sie zu Ihrem Domainnamen, z. http://yourdomain.com.

Füllen Sie die von WordPress angeforderten Datenbankinformationen mit den oben genannten Optionen aus. Der Prozess sieht ungefähr so aus:

Lassen Sie uns nun die Berechtigungen für die WordPress-Installation aus Sicherheitsgründen sperren:

Nehmen Sie auch manuelle Aktualisierungen an der Datei wp-config.php vor:

Fügen Sie die folgenden Konfigurationszeilen über der Zeile zum Stoppen der Bearbeitung hinzu:

Versuchen Sie, sich beim WordPress-Verwaltungssystem anzumelden. Besuchen Sie http://yourdomain.com/wp-admin und geben Sie den Benutzernamen und das Kennwort ein, die Sie während des Installationsvorgangs ausgewählt haben.

Sie sollten das WordPress-Dashboard wie folgt sehen:

Großartige Arbeit und herzlichen Glückwunsch zu Ihrer neuen WordPress-Installation!

WordPress in einer Mikroinstanz laufen lassen

WordPress, seine Plugins und Apache zusammen können nahe an die Speichergrenzen der AWS Micro-Instanz stoßen. Starten Sie Ihre Instanz nach diesem Lernprogramm einmal neu und überwachen Sie, wie viel Speicher Sie verwenden. Vom Terminal aus SSH ein und ausführen:

Sie können auch über das EC2-Dashboard neu starten (siehe Abbildung unten). Siehe das Menü Aktionen. Überwachen Sie die Aktivität Ihrer Instanz mit free oder top:

Oder verwenden Sie top. Wenn Sie "q" eingeben, wird oben beendet.

Besuchen Sie verschiedene Seiten Ihrer WordPress-Site und sehen Sie, wie sich dies auf die Speichernutzung auswirkt. Versuchen Sie auch, von Ihrem Mobil- und Tablet-Gerät aus auf Seiten zuzugreifen. Wenn Sie eine Amazon Micro-Instanz verwenden, müssen Sie wahrscheinlich eine Auslagerungsdatei in EBS konfigurieren, um einen Absturz Ihrer Instanz zu verhindern.

Konfigurieren Sie eine SWAP-Datei

Die Einrichtung ist zwar einfach, es besteht jedoch ein geringes Risiko, dass unbegrenzte Gebühren für die Internetwork-Bandbreite anfallen. Überwachen Sie daher Ihre Website und richten Sie Abrechnungsalarme ein, wie auf meiner Website hier beschrieben. Ich hatte noch nie Probleme damit - aber die Leute warnen davor.

Sobald Sie eine Auslagerungsdatei eingerichtet haben, sollte Ihre Mikroinstanz stabil sein.

Bearbeiten Sie nun die fstab-Datei, um die Auslagerungsdatei beim Neustart dauerhaft zu erhalten:

Fügen Sie diese Zeile hinzu:

Stellen Sie sicher, dass die Auslagerungsdatei aktiv ist, indem Sie Folgendes eingeben:

Es sollte etwas zeigen wie:

Andere Dinge zu beachten

Sie sind jetzt ein Systemadministrator, der Ihre eigene WordPress-Site ausführt. Genial. Aber Sie sind jetzt für viele Dinge verantwortlich, die normalerweise von einem Hosting-Unternehmen verwaltet werden.

Es ist keine Schande, zum verwalteten Hosting zurückzukehren. Wenn Sie das Gefühl haben, über Ihren Kopf geraten zu sein, können Sie sich gerne an WordPress.com oder einen anderen Host zurückziehen. Wir alle treffen Entscheidungen, wo wir unsere Zeit verbringen - und Managed Hosting ist vernünftig. Sobald Sie sich dazu verpflichtet haben, Ihre eigene Site zu betreiben, nimmt die Aufrechterhaltung der Site mehr Zeit in Anspruch, ebenso wie die spätere Migration auf verwaltetes Hosting. Denken Sie also darüber nach.

Sicherheit

Es ist wichtig, sich regelmäßig bei Ihrer Instanz anzumelden und Sicherheitspakete zu aktualisieren. Wenn Sie sich anmelden, meldet Ubuntu Folgendes: "35 Pakete können aktualisiert werden. 22 Updates sind Sicherheitsupdates." Verwenden Sie den folgenden Befehl, um das System zu aktualisieren:

Der kürzlich aufgetretene Heartbleed-Fehler ist ein warnendes Beispiel für die Arten von Sicherheitslücken, die von Zeit zu Zeit behoben werden müssen. Wenn Sie Ihr Linux-System nicht auf dem neuesten Stand halten, können Benutzer möglicherweise Ihre Site hacken.

Ebenso wichtig ist es, mit WordPress-Updates Schritt zu halten. Die neuesten Versionen von WordPress sind so konfiguriert, dass Sie auf neue Upgrades aufmerksam gemacht werden.

Backups

Niemand sichert Ihre WordPress-Site. Sie müssen auswählen, wie Sie das machen können. Sie können manuell daran denken, einen AWS-Snapshot Ihrer Instanz über die AWS-Schnittstelle zu erstellen. Wenn Sie online suchen, können Sie Skripte zum Anpassen finden, die dies von Ihrer Linux-Instanz aus tun. Grundsätzlich müssen Sie die WordPress-Verzeichnisstruktur (mit Ihren Themen, Plugins und Images), die im Linux-Dateisystem gespeicherte MySQL-Datenbank sowie Ihre Apache-Site-Konfigurationsdatei sichern.

Ein weiterer Ansatz, der gut funktioniert, ist ein Dienst wie VaultPress, der der Muttergesellschaft von WordPress, Automattic, gehört. Es gibt auch WordPress-Plugins, die Sie erwerben können, um Backups für andere Speicherdienste auszuführen, einschließlich des S3-Speichersystems von Amazon.

Kontaktformulare

Für WordPress-Kontaktformulare müssen Sie einen eigenen Mailserver betreiben, um an Sie gesendete Nachrichten per E-Mail zu versenden. Das Ausführen eines Postfix-Mailservers ist recht kompliziert und birgt eigene Skalierungs- und Sicherheitsrisiken. Stattdessen kombiniere ich gerne so etwas wie das Contact Form 7 Plugin mit dem Mailgun WordPress Plugin. Es gibt ein bisschen Setup, aber es ist für die meisten Anwendungen kostenlos und funktioniert einwandfrei.

Überwachungslösungen

Sie sind auch für die Verwaltung der Verfügbarkeit Ihres Servers verantwortlich. Sie benötigen also einen Überwachungsdienst, der Ihnen mitteilt, wann Amazon-Instanzen ausfallen. Und das tun sie - selten, aber es passiert. Ein kostenpflichtiger Dienst wie ScoutApp.com oder mein selbst gehosteter Simple Monitor sind gute Lösungen. Wenn Sie Ihre Überwachung selbst hosten, ist es wichtig, sie auf einer anderen Instanz auszuführen oder zumindest den Herzschlag in regelmäßigen Abständen einzuschalten, z.B 2 Std. Wenn die Instanz, in der Ihre Überwachung aktiviert ist, fehlschlägt, werden Sie es erst erfahren, wenn Sie feststellen, dass Sie nicht den letzten Herzschlag erhalten haben.

Suchmaschinenoptimierung

Das ist ein langes Thema, das wir hier nicht ganz besprechen werden. Ich habe mehr zu diesem Thema auf meiner eigenen Website geschrieben. Die Leistung Ihrer Website wirkt sich auch auf Ihr Suchmaschinenranking aus.

Es ist also an der Zeit, mit Varnish Cache und W3 Total Cache die Grundlage für eine superschnelle Leistung zu schaffen.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.