it-swarm.com.de

Richten Sie die DNS-basierte URL-Weiterleitung in Amazon Route53 ein

Ich versuche die Weiterleitung in Amazon Route53 einzurichten. Mein letzter DNS-Dienst (Nettica) erlaubte mir, Anfragen an "aws.example.com" an "https://myaccount.signin.aws.Amazon.com/console/" weiterzuleiten.

Wird diese Funktion von Route53 unterstützt?

Wie erreicht Nettica das? Fügt es spezielle A-, CNAME-, PTR- oder TXT -Datensätze ein?

123
Saurav

Ich hatte genau das gleiche Problem, das Saurav beschrieb, aber ich musste wirklich eine Lösung finden, die nichts anderes als die Route 53 und S3 erforderte. Ich habe eine Anleitung für meinen Blog erstellt, in der detailliert beschrieben wird, was ich getan habe. 

Hier ist was ich mir ausgedacht habe. 


Zielsetzung

Erstellen Sie mit den in Amazon S3 und Amazon Route 53 verfügbaren Tools eine URL-Umleitung, die http://url-redirect-example.vivekmchawla.com automatisch an die AWS Console-Anmeldeseite weiterleitet, die mit " MyAccount "unter https://myaccount.signin.aws.Amazon.com/console/ .

In diesem Handbuch erfahren Sie, wie Sie die URL-Weiterleitung an eine beliebige URL einrichten, nicht nur an Amazon. Sie erfahren, wie Sie die Weiterleitung zu bestimmten Ordnern einrichten (z. B. "/ console") und das Protokoll der Umleitung von HTTP nach HTTPS (oder umgekehrt) ändern.


Erster Schritt: Erstellen Sie Ihren S3-Bucket

Open the S3 Management Console and click "Create Bucket"

Öffnen Sie die S3-Verwaltungskonsole und klicken Sie auf "Bucket erstellen". 


Zweiter Schritt: Benennen Sie Ihren S3-Bucket

Name your S3 Bucket

  1. Wählen Sie einen Bucket-Namen. Dieser Schritt ist sehr wichtig! Sie müssen dem Bucket EXAKT den Namen der URL nennen, die Sie für die Weiterleitung einrichten möchten. Für diesen Leitfaden verwende ich den Namen "url-redirect-example.vivekmchawla.com". 

  2. Wählen Sie die Region aus, die für Sie am besten geeignet ist. Wenn Sie es nicht wissen, behalten Sie die Standardeinstellung bei. 

  3. Machen Sie sich keine Gedanken über die Einrichtung der Protokollierung. Klicken Sie einfach auf die Schaltfläche "Erstellen", wenn Sie fertig sind. 


Schritt 3: Aktivieren Sie das statische Website-Hosting und geben Sie Routing-Regeln an

Enable Static Website Hosting and Specify Routing Rules

  1. Öffnen Sie im Eigenschaftenfenster die Einstellungen für "Statisches Website-Hosting".
  2. Wählen Sie die Option "Websitehosting aktivieren" aus.
  3. Geben Sie einen Wert für den "Indexbeleg" ein. Dieses Objekt (Dokument) wird niemals von S3 bereitgestellt und Sie müssen es niemals hochladen. Verwenden Sie einfach einen beliebigen Namen.
  4. Öffnen Sie die Einstellungen für "Umleitungsregeln bearbeiten".
  5. Fügen Sie das folgende XML-Snippet vollständig ein.

    <RoutingRules>
      <RoutingRule>
        <Redirect>
          <Protocol>https</Protocol>
          <HostName>myaccount.signin.aws.Amazon.com</HostName>
          <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
          <HttpRedirectCode>301</HttpRedirectCode>
        </Redirect>
      </RoutingRule>
    </RoutingRules>
    

Wenn Sie wissen möchten, was das obige XML tut, besuchen Sie die AWM-Dokumentation für "Syntax zum Angeben von Routing-Regeln" . Eine Bonusmethode (hier nicht behandelt) wird an bestimmte Seiten am Zielhost weitergeleitet, z. B. http://redirect-destination.com/console/special-page.html. Lesen Sie das <ReplaceKeyWith>-Element, wenn Sie diese Funktionalität benötigen.


Schritt 4: Notieren Sie sich den "Endpunkt" Ihres Umleitungs-Eimers

Make a note of your Redirect Bucket's Endpoint

Notieren Sie sich den "Endpoint" für statisches Website-Hosting, den Amazon automatisch für diesen Bucket erstellt hat. Sie benötigen dies für später, markieren Sie also die gesamte URL, kopieren Sie sie und fügen Sie sie in den Editor ein.

VORSICHT! An dieser Stelle können Sie tatsächlich auf diesen Link klicken, um zu prüfen, ob Ihre Umleitungsregeln richtig eingegeben wurden. Seien Sie jedoch vorsichtig! Hier ist der Grund...

Angenommen, Sie haben den falschen Wert innerhalb der <Hostname>-Tags Ihrer Umleitungsregeln eingegeben. Vielleicht haben Sie versehentlich myaccount.Amazon.com eingegeben, anstelle von myaccount.signin.aws.Amazon.com. Wenn Sie auf den Link klicken, um die Endpoint-URL zu testen, leitet AWS Ihren Browser gerne an die falsche Adresse um!

Nachdem Sie Ihren Fehler bemerkt haben, bearbeiten Sie wahrscheinlich den <Hostname> in Ihren Umleitungsregeln, um den Fehler zu beheben. Wenn Sie versuchen, erneut auf den Link zu klicken, werden Sie höchstwahrscheinlich an die falsche Adresse weitergeleitet! Obwohl Sie den <Hostname>-Eintrag korrigiert haben, speichert Ihr Browser den vorherigen (falschen!) Eintrag. Dies geschieht, weil wir eine permanente HTTP-301-Weiterleitung verwenden, die von Browsern wie Chrome und Firefox standardmäßig zwischengespeichert wird.

Wenn Sie die Endpoint-URL kopieren und in einen anderen Browser einfügen (oder den Cache in Ihrem aktuellen Cache löschen), haben Sie eine weitere Chance, zu sehen, ob Ihr aktualisierter <Hostname>-Eintrag schließlich der richtige ist.

Wenn Sie Ihre Endpoint-URL und die Umleitungsregeln testen möchten, sollten Sie eine private Browsersitzung wie "Inkognito-Modus" in Chrome starten. Kopieren Sie die Endpunkt-URL im Inkognito-Modus, fügen Sie sie ein, und testen Sie sie. Alles was zwischengespeichert wird, wird nach dem Schließen der Sitzung gelöscht.


Schritt 5: Öffnen Sie die Route53-Verwaltungskonsole und wechseln Sie zu den Datensatzgruppen für Ihre gehostete Zone (Domänenname).

Open the Route 53 Management Console to Add Record Sets to your Hosted Zone

  1. Wählen Sie die gehostete Zone (Domänenname) aus, die Sie beim Erstellen Ihres Buckets verwendet haben. Da ich meinen Eimer "url-redirect-example.vivekmchawla.com" genannt habe, wähle ich die vivekmchawla.com Hosted Zone aus.
  2. Klicken Sie auf die Schaltfläche "Gehe zu Datensatzgruppen".

Schritt 6: Klicken Sie auf die Schaltfläche "Datensatz erstellen"

Click the Create Record Set button

Durch Klicken auf "Create Record Set" wird das Fenster Create Record Set auf der rechten Seite der Route53 Management Console geöffnet.


Schritt 7: Erstellen Sie einen CNAME-Datensatz

Create a CNAME Record Set

  1. Geben Sie im Feld Name den Hostnamen-Teil der URL ein, den Sie beim Benennen Ihres S3-Buckets verwendet haben. Der "Hostname-Teil" der URL ist alles LINKS des Namens Ihrer gehosteten Zone. Ich habe meinen S3-Bucket "url-redirect-example.vivekmchawla.com" genannt, und meine gehostete Zone ist "vivekmchawla.com". Daher muss der Hostname-Teil "url-redirect-example" sein.

  2. Wählen Sie "CNAME - Kanonischer Name" für den Typ dieses Datensatzes.

  3. Fügen Sie für den Wert die Endpunkt-URL des in Schritt 3 erstellten S3-Buckets ein.Klicken Sie auf die Schaltfläche "Datensatz erstellen". Vorausgesetzt, es gibt keine Fehler, können Sie jetzt einen neuen CNAME-Datensatz in der Liste der Datensatzgruppen Ihrer gehosteten Zone sehen.

  4. Schritt 8: Testen Sie Ihre neue URL-Umleitung.


Öffnen Sie eine neue Browser-Registerkarte und geben Sie die soeben eingerichtete URL ein. Für mich ist das http://url-redirect-example.vivekmchawla.com . Wenn alles richtig funktioniert hat, sollten Sie direkt an eine AWS-Anmeldeseite gesendet werden.

Da wir den Alias ​​myaccount.signin.aws.Amazon.com als Ziel-URL für die Weiterleitung verwendet haben, weiß Amazon genau, auf welches Konto wir zugreifen möchten, und führt uns direkt dorthin. Dies kann sehr praktisch sein, wenn Sie Mitarbeitern oder Auftragnehmern einen kurzen, sauberen AWS-Login-Link mit Branding geben möchten.

 

.

All done! Your URL forwarding should take you to the AWS sign-in page.Schlussfolgerungen


Ich persönlich liebe die verschiedenen AWS-Dienste, aber wenn Sie sich entschieden haben, das DNS-Management auf Amazon Route 53 zu migrieren, kann das Fehlen einer einfachen URL-Weiterleitung frustrierend sein. Ich hoffe, dass dieses Handbuch dazu beigetragen hat, die URL-Weiterleitung für Ihre gehosteten Zonen ein wenig einfacher zu gestalten.

Wenn Sie mehr erfahren möchten, werfen Sie einen Blick auf die folgenden Seiten auf der AWS-Dokumentationssite.

.

Beispiel: Einrichten einer statischen Website mithilfe einer benutzerdefinierten Domäne .

Cheers!

300
Vivek M. Chawla

Der AWS-Support wies auf eine einfachere Lösung hin. Es ist im Grunde die gleiche Idee, die @Vivek M. Chawla mit einer einfacheren Implementierung vorschlägt. 

AWS S3:

  1. Erstellen Sie einen Bucket mit dem Namen Ihrer vollständigen Domain wie aws.example.com.
  2. Wählen Sie in den Bucket-Eigenschaften Redirect all requests to another Host name aus und geben Sie Ihre URL ein: https://myaccount.signin.aws.Amazon.com/console/

AWS Route53:

  1. Erstellen Sie einen Datensatztyp A. Ändern Sie den Alias ​​in Yes. Klicken Sie auf das Feld Alias Target und wählen Sie den S3-Bucket aus, den Sie im vorherigen Schritt __.

Referenz: So leiten Sie Domänen mithilfe von Amazon Web Services um

Offizielle AWS-Dokumentation: Gibt es eine Möglichkeit, eine Domäne mithilfe von Amazon Route 53 zu einer anderen Domäne umzuleiten?

120

Ich konnte nginx verwenden, um die 301-Weiterleitung auf die aws-Anmeldeseite durchzuführen.

Gehen Sie zu Ihrem Nginx-Conf-Ordner (in meinem Fall ist es /etc/nginx/sites-available, in dem ich einen Symlink zu /etc/nginx/sites-enabled für die aktivierten Conf-Dateien erstelle).

Fügen Sie dann einen Weiterleitungspfad hinzu 

server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.Amazon.com/console;
}

Wenn Sie nginx verwenden, verfügen Sie höchstwahrscheinlich über zusätzliche Serverblöcke (virtuelle Hosts in der Apache-Terminologie), um Ihren Zonenscheitel (example.com) zu bearbeiten oder wie auch immer Sie ihn eingerichtet haben. Stellen Sie sicher, dass einer von ihnen als Standardserver festgelegt ist.

server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}

Fügen Sie in Route 53 einen A record für aws.example.com hinzu und setzen Sie den Wert auf dieselbe IP-Adresse, die für Ihren Zonenscheitelpunkt verwendet wird.

11
Vincent Mac

Aktualisieren

Während meine ursprüngliche Antwort unten noch gültig ist und hilfreich sein kann, um die Ursache für die DNS-basierte URL-Weiterleitung nicht über Amazon Route 53 out of the box zu verstehen, kann ich sehr empfehlen, dass Sie Vivek M. Chawlas ' äußerst intelligent überprüfen Indirekte Lösung über die inzwischen eingeführte Amazon S3 Unterstützung für Website-Redirects und einen in sich geschlossenen Server zu erreichen, weniger und somit kostenlose Lösung innerhalb von AWS nur so.

  • Die Implementierung einer automatisierten Lösung zur Generierung solcher Weiterleitungen ist für den Leser eine Übung, aber bitte loben Sie Viveks epische Antwort, indem Sie Ihre Lösung veröffentlichen;)

Ursprüngliche Antwort

Nettica muss dafür eine benutzerdefinierte Umleitungslösung ausführen. Hier ist das Problem:

Sie könnten einen CNAME-Aliasnamen wie aws.example.com für myaccount.signin.aws.Amazon.com erstellen. DNS bietet jedoch keine offizielle Unterstützung für das Aliasing eines Unterverzeichnisses wie console in diesem Beispiel.

  • Es ist schade, dass AWS dies standardmäßig nicht einfach zu tun scheint, wenn Sie https://myaccount.signin.aws.Amazon.com/ (ich habe es gerade versucht) schlagen, da dies Ihr Problem sofort lösen würde und überhaupt erst Sinn macht. Außerdem sollte es an ihrem Ende ziemlich einfach zu konfigurieren sein.

Aus diesem Grund haben offenbar einige DNS-Anbieter eine benutzerdefinierte Lösung implementiert, um Weiterleitungen zu Unterverzeichnissen zu ermöglichen. Ich wage die Vermutung, dass sie im Grunde einen CNAME-Alias ​​für eine eigene Domäne ermöglichen und von dort aus über eine unmittelbare HTTP 3xx-Umleitung zum endgültigen Ziel umleiten.

Um dasselbe Ergebnis zu erzielen, müssten Sie einen HTTP-Dienst ausführen, der diese Umleitungen ausführt. Dies ist nicht die einfache Lösung, die Sie sich natürlich wünschen würden. Vielleicht/hoffentlich kann jemand trotzdem eine klügere Herangehensweise finden.

9
Steffen Opel

Wenn Sie immer noch Probleme mit der einfachen Vorgehensweise haben, erstellen Sie einen leeren Bucket und Redirect all requests to another Host name unter Statisches Webhosting in Eigenschaften über die Konsole. Stellen Sie sicher, dass Sie in Route53 2 A-Datensätze festgelegt haben, einen für final-destination.com und einen für redirect-to.final-destination.com. Die Einstellungen für jede dieser Optionen sind identisch, aber der Name ist unterschiedlich, sodass er mit den Namen übereinstimmt, die Sie für Ihre Buckets/URLs festlegen.

0
DanV