//

Eigene Website in der AWS Cloud hosten: Tutorial für Anfänger

24.4.2019 | 9 Minuten Lesezeit

Es gibt weltweit sagenhafte 1,630,322,579 Webseiten, Tendenz steigend. Ob ein Consultant, Unternehmer oder kleine Startups, alle müssen de facto ihre Internetpräsenz maximieren, um neue Kunden zu gewinnen. Eine Webseite zu haben oder zu kaufen ist das eine, diese performant und kosteneffizient zu betreiben das andere. In diesem Tutorial möchte ich Ihnen zeigen, wie man eine eigene Website, auch ohne hohe IT-Affinität, skalierbar in der Cloud betreiben kann. Anschließend können noch E-Mail-Postfächer mit derselben Domain angelegt werden.

Wie erkenne ich, ob dieses Tutorial für mich brauchbar oder ungeeignet ist? In folgenden Fällen lohnt es sich für Sie weiterzulesen:

  • Ich möchte ein wenig experimentieren und meine HTML-Seite veröffentlichen
  • Ich möchte meinen eigenen Server im Keller ablösen, weil dieser einfach zu teuer und langsam ist
  • Ich habe für mich eine professionelle HTML5-Webseite erstellen lassen und bin auf der Suche nach einer Hosting-Möglichkeit
  • Ich will ein kleines Startup gründen; dazu gehört eine eigene Website mit E-Mail-Postfächern. HTML kann ich selbst schnell entwickeln

Gut, dann fangen wir direkt an. Unser Tutorial werden wir mithilfe von Amazon Web Services (AWS) , dem bekanntesten Anbieter für Cloud Services, realisieren.

Immer noch dabei? Super! Das Ergebnis wird Sie nicht enttäuschen.

Eigene Website in der AWS Cloud: Vorbereitung

Die ersten Tutorial-Schritte müssen leider manuell ausgeführt werden, danach habe ich spezielle Skripte vorbereitet, welche die nötigsten Ressourcen für das Hosting vollautomatisiert erzeugen.

1.  AWS CLI installieren: Für die Ausführung der Skripte wird lokal ein Softwarepaket von AWS benötigt

Das Installationspaket kann hier heruntergeladen werden:

2.  Projektordner vorbereiten und AWS-Skripte herunterladen

  • Erstellen Sie für das Hosting-Projekt einen Ordner aws-hosting unter C:\temp (ich werde in diesem Blog Beispiele für Windows zeigen, Linux-/Mac-Anwender wissen, wie man das auf dem eigenen Systemen macht).
  • Danach erstellen Sie bitte einen Unterordner website -> C:\temp\aws-hosting\website.
  • Kopieren Sie die HTML-Dateien Ihrer Webseite nach .\aws-hosting\website. Wichtig: AWS benötigt von uns mindestens eine index.html– und am besten noch eine 404.html-Datei (siehe Ordner examples), um ein fehlerfreies Hosting zu realisieren
  • Laden Sie jetzt die ZIP-Datei (link_zu_der_Datei ) mit AWS-Skripten herunter und entpacken Sie diese direkt nach „.\aws-hosting\“. Die Ordnerstruktur muss am Ende so aussehen:
    -> .\aws-hosting\
    —-> cloudformation-scripts\
    —-> examples\
    —-> website\
    —-> cf_api_user_rights.txt
    —-> lin_build_hosting_services.sh
    —-> …

Die benötigten Skripte und Dateien stehen jetzt für weitere Schritte bereit.

AWS-Account erstellen

Für den Anfang benötigen wir einen AWS-Account. Dafür gehen Sie bitte auf https://aws.amazon.com/free und klicken Sie auf „Create a Free Account“.

Gehen Sie den Wizard Schritt für Schritt durch und schließen Sie die Anmeldung ab. AWS wird von Ihnen eine Kreditkartennummer verlangen, um die Registrierung vollständig abzuschließen. Wichtiger Hinweis: Es fallen keine Kosten bei AWS an, solange keine Cloud-Ressourcen verbraucht werden! Somit ist der Account selbst kostenlos.

Minimale, aber notwendige Kontosicherheit einrichten

Wir haben bisher einen wichtigen „root“-Benutzer (Hauptbenutzer) angelegt und könnten mit ihm alle weiteren Arbeiten verrichten, aber…. wir müssen nur ein wenig Fantasie haben, um uns vorzustellen, was passiert, wenn jemand in den Besitz der Anmeldedaten des Hauptbenutzers gelangt. Genau dies werden wir verhindern, indem wir zuerst eine Multi-Factor Authentication (MFA) für den Hauptbenutzer und danach einen separaten, aus Berechtigungssicht limitierten, technischen Benutzer einrichten.

MFA für den Hautpbenutzer (Benutzername ist die E-Mail-Adresse) aktivieren

Melden Sie sich mit dem Hauptbenutzer an der AWS-Konsole (https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin ) an und klicken Sie im oberen rechten Bereich auf Ihren Benutzernamen und dann auf „Security Credentials“.

Jetzt auf „Manage MFA device“ klicken.

In der Auswahlliste einen der Punkte auswählen. Tipp: Beim „Virtual MFA device“ geht es um den bekannten 6-stelligen Two-Factor Key, der z. B. mit dem Google Authenticator oder Authy generiert werden kann. Wizard Schritt für Schritt durchgehen und abschließen.

So, jetzt ist Ihr Hautbenutzer wesentlich besser gegen einen Missbrauch abgesichert. Und trotzdem sollte dieser User in Zukunft nur in Ausnahmesituationen benutzt werden.

Einen API-Benutzer einrichten: Policy

Für die weiteren automatisierten Ausführungen brauchen wir einen sog. AWS-API-Benutzer. Dieser kann quasi per Fernsteuerung AWS-Befehle ausführen und so für das Hosting erforderliche Ressourcen aufbauen. Um uns ein paar unnötige Konfigurationsschritte in der AWS-Menüführung zu ersparen, erstellen wir zuerst ein Berechtigungspaket für diesen neuen Benutzer.

Öffnen Sie die IAM-Service-Oberfläche.

Klicken Sie unter „Policies“ auf „Create policy“.

Jetzt auf „JSON“ und fügen Sie danach den kompletten Inhalt der Datei .\aws-hosting\ cf_api_user_rights.txt in das Formular ein. Bestätigen Sie mit „Review policy“.

Anschließend nennen Sie diese Policy -> „cf_editor_rights“ und schließen den Vorgang mit „Create policy“ ab. Die Berechtigungen für den neuen API-Benutzer wurden somit vorbereitet.

Einen API-Benutzer einrichten: Credentials

Jetzt erstellen wir den erforderlichen technischen Benutzer.

Öffnen Sie wieder den IAM Service und klicken Sie auf „Users“-> „Create New Users/Add User“.

Schritt 1: Benennen Sie den User als „cf_api_user“ und wählen sie „Programmatic access“ aus. Anschließend: „Next: Permissions“

Schritt 2: Wählen Sie „Attach existing policies directly“. Suchen Sie nach „cf_editor_rights“ und setzen Sie Häkchen bei der gefundenen Policy. Dann auf „Next:Tags“

Schritt 3: Einfach weiter auf „Next: Review“

Schritt 4: „Create user“

Schritt 5: Unbedingt die Anmeldeinformationen für den neuen Benutzer herunterladen und an einem sicheren Ort speichern.
Hinweis: Für die weiteren Schritte werden die „Access Key ID“ und „Secret Access Key“ benötigt

Domain erstellen

Das ist ein letzter Schritt, den wir in der AWS Konsole durchführen müssen. Die Domain (z. B. „https://example.de“) kann direkt bei AWS gekauft oder nach AWS migriert werden. Für die Migration schauen Sie sich die offizielle AWS Dokumentation an. In diesem Tutorial werden wir einen Bestellvorgang durchführen.

Dafür öffnen Sie bitte den „Route 53“-Service von AWS

Danach weiter auf „Registered domains“-> „Register Domain“.

Prüfen Sie, ob Ihre Wunsch-Domain frei ist und führen Sie den Bestellvorgang durch. Achtung: Bitte bei der Registrierung eine gültige E-Mail-Adresse eingeben!

Die weltweite Domain-Registrierung wird von AWS durchgeführt und kann eine oder mehrere Stunden andauern. Wenn im Menüpunkt „Registered Domain“ Ihre Domain erschienen ist, dann ist die Registrierung abgeschlossen und Sie können die weiteren Tutorial-Schritte ausführen.

AWS Hosting-Skript ausführen und die Website aktivieren

Jetzt sorgen wir dafür, dass alle benötigten Ressourcen teilautomatisiert von AWS erstellt werden. In dem extrahierten Verzeichnis .\aws-hosting\ liegen folgende Dateien für den Ablauf:

  • win_build_hosting_services.bat (für Linux: lin_build_hosting_services.sh)
  • win_publish_website_files.bat (für Linux: lin_publish_website_files.sh)
  • [optional] win_create_workmail_directory.bat (für Linux: lin_create_workmail_directory.sh)
  • [optional] win_create_email_account.bat (für Linux: lin_create_email_account.sh)

1.  build_hosting_services-Skript

Führen Sie die Datei win_build_hosting_services.bat (unter Windows) aus. Sie werden aufgefordert, der Reihe nach, folgende Daten einzugeben:

  1. AWS ACCESS KEY ID: Ist die „Access Key ID“ des cf_api_user-Benutzers
  2. AWS SECRET ACCESS KEY: Ist der „Secret Access Key“ des cf_api_user-Benutzers
  3. Domain Name: Ist der Name der neuen, gekauften Domain wie z. B. „example.de“
  4. Überprüfung der Eingaben und Bestätigung mit „y“

Dabei werden im Hintergrund alle notwendigen Hardware- und Software-Ressourcen seitens AWS aufgebaut und bereitgestellt. Der Vorgang kann mehrere Minuten in Anspruch nehmen.

2.  publish_website_files-Skript

Die Webseite und Ressourcen wurden im ersten Schritt eingerichtet. Jetzt geht es darum, die HTML Files samt Content (js/template/css) zu publizieren und mit AWS zu synchronisieren. Dieser Synchronisationsvorgang kann jederzeit angestoßen werden, um neue HTML-Inhalte zu publizieren.
Führen Sie die Datei win_publish_website_files.bat (unter Windows) aus. Sie werden aufgefordert, folgende Daten einzugeben:

  1. AWS ACCESS KEY ID: Ist der „Access Key ID“ des cf_api_user-Benutzers
  2. AWS SECRET ACCESS KEY: Ist der „Secret Access Key“ des cf_api_user-Benutzers

Danach werden die Inhalte des Ordners .\aws-hosting\website nach AWS übertragen und sofort publiziert.

Sie können jetzt Ihre Webseite „https://“ im Browser öffnen.

3.  [OPTIONAL] create_workmail_directory-Skript

AWS bietet auch eine vollständige Verwaltung der domainspezifischen E-Mail-Adressen an. Die Kosten dafür belaufen sich auf $4 pro E-Mail-Adresse pro Monat. Dafür stehen Ihnen 50 GB Postfachspeicher zur Verfügung.
Möchten Sie eine oder mehrere E-Mail-Adressen für Ihre gekaufte Domain erstellen? Z. B. info@? Dann können Sie diese zwei optionalen Schritte durchführen.
HINWEIS: Wenn Sie Schritt 3 ausführen und 4 nicht, dann kosten die AWS-Ressourcen ohne Postfach ca. $40 pro Monat! Erst wenn mindestens ein Postfach aktiviert wurde, kostet es dann nur $4 pro Postfach pro Monat.

Um ein Postfach zu erstellen, müssen bei AWS zuerst andere Services und Einstellungen konfiguriert werden. Führen Sie die Datei win_create_workmail_directory.bat unter Windows aus. Sie werden aufgefordert, folgende Daten einzugeben:

  1. AWS ACCESS KEY ID: Ist die „Access Key ID“ des cf_api_user-Benutzers
  2. AWS SECRET ACCESS KEY: Ist der „Secret Access Key“ des cf_api_user-Benutzers

Wenn alles abgeschlossen wurde, dann muss noch ein Vorgang manuell durchgeführt werden (keine Automatisierung zurzeit vorhanden).
Melden Sie sich an der AWS-Web-Konsole mit dem „Root“ Benutzer an (https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin ).

Wählen Sie die Region „Ireland“ aus.

Dann den Service „Workmail“.

Wählen Sie „Get Started“ und „Standard Setup“.

Wählen Sie „Available Directories“, setzen Sie ein „Alias“ (Bitte ersetzen ohne Punkte und Sonderzeichen!), um auf die Postfächer über den Browser zuzugreifen und wählen Sie den „Master key“ aus.

Nach einiger Zeit wird die Bereitstellung des Workmail-Dienstes abgeschlossen.

Jetzt müssen Sie noch Ihre Domain-Adresse mit dem Service Workmail verknüpfen. Dafür klicken Sie auf den erstellten Alias, z. B. „example“…

..und dann auf „Domains“

auf „Add Domain

wählen Sie Ihre erstellte Domain aus und klicken Sie auf „Add Domain„.

Klicken Sie auf „Configure automatically„.

Und noch die automatisierte Erweiterung der DNS-Tabellen seitens AWS mit „Add all records“ bestätigen.

So… geschafft… Holen Sie sich einen Kaffee und gehen Sie etwas essen, die Validierung und Bestätigung könnte einige Stunden in Anspruch nehmen. Danach können Sie mit dem Punkt 4 weitermachen und einzelne E-Mail Benutzer anlegen.

4.  [OPTIONAL] create_workmail_user-Skript

Jetzt können Sie die einzelnen E-Mail-Konten durch die Ausführung des win_create_email_account.bat-Skriptes erstellen. Sie werden aufgefordert, folgende Daten einzugeben:

  1. AWS ACCESS KEY ID: Ist die „Access Key ID“ des cf_api_user-Benutzers
  2. AWS SECRET ACCESS KEY: Ist der „Secret Access Key“ des cf_api_user-Benutzers
  3. E-Mail Name: Name des E-Mail-Kontos ohne <@Ihre-Domain>. Z. B. „support“ oder „max.mustermann“
  4. Display Name: Visuelle Darstellung des Versenders in einem anderen Posteingang. Z. B. E-Mail lautet „kontakt@example.de“ und Ihre Empfänger sehen dann „Kontakt von Example GmBH“

Nachdem das Skript durchgelaufen ist, können Sie sich an der E-Mail Web-Konsole (https://.awsapps.com/mail) anmelden und das Standard-Passwort (AWS@mail:500) ändern.
Warnung: Bitte, bitte, ändern Sie dringend Ihr Passwort!

Ihr neues Postfach können Sie auch bequem in Ihrem Smartphone über Exchange einrichten, dazu schauen Sie sich die Dokumentation unter https://docs.aws.amazon.com/workmail/latest/userguide/mobile-start.html an.
Hinweis: Ihr Postfach wurde in der Region „eu-west-1“ eingerichtet. Server: mobile.mail.eu-west-1.awsapps.com

„The Day After Tomorrow“

Falls sich während der Ausführung oder Konfiguration Fehler einschleichen oder Sie einfach alles in der AWS Cloud löschen möchten, um keine Kosten mehr zu haben, dann führen Sie bitte folgende Schritte aus:

  • „AWS-Console“ (Root-Benutzer) -> Region Irland -> Service WorkMail -> Organization löschen („remove“) -> alles löschen inkl. Directory
  • Dann führen Sie einfach den win_delete_all_ressources.bat unter Windows aus. Aber ACHTUNG! Es wird alles gelöscht, auch die E-Mail-Postfächer samt Inhalt.

Nützliche Links: eigene Website in der AWS Cloud

Beitrag teilen

Gefällt mir

0

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen

Wir helfen Deinem Unternehmen

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.