Imposta l’inoltro URL basato su DNS in Amazon Route53

Sto cercando di impostare l’inoltro su Amazon Route53. Il mio ultimo servizio DNS (Nettica) mi ha permesso di indirizzare le richieste a “aws.example.com” a “https://myaccount.signin.aws.amazon.com/console/”.

Questa funzionalità è supportata da Route53?

Come fa Nettica a raggiungere questo objective? Inserisce uno speciale record A, CNAME, PTR o TXT?

Stavo correndo nello stesso identico problema descritto da Saurav, ma avevo davvero bisogno di trovare una soluzione che non richiedesse altro che Route 53 e S3. Ho creato una guida pratica per il mio blog in cui descrivono cosa ho fatto.

Ecco cosa mi è venuto in mente.


Obbiettivo

Utilizzando solo gli strumenti disponibili in Amazon S3 e Amazon Route 53, crea un URL Redirect che inoltra automaticamente http://url-redirect-example.vivekmchawla.com alla pagina di accesso della Console AWS con alias su “MyAccount”, situato a https : //myaccount.signin.aws.amazon.com/console/ .

Questa guida ti insegnerà a configurare l’inoltro di URL a qualsiasi URL, non solo quelli di Amazon. Imparerai come configurare l’inoltro a cartelle specifiche (come “/ console” nel mio esempio) e come cambiare il protocollo del reindirizzamento da HTTP a HTTPS (o viceversa).


Fase uno: crea il tuo bucket S3

Aprire la console di gestione S3 e fare clic su

Aprire la console di gestione S3 e fare clic su “Crea bucket”.


Passo due: nomina il tuo secchio S3

Dai un nome al tuo secchio S3

  1. Scegli un nome Bucket. Questo passaggio è davvero importante! È necessario nominare esattamente il secchio come l’URL che si desidera impostare per l’inoltro. Per questa guida, userò il nome “url-redirect-example.vivekmchawla.com”.

  2. Seleziona la regione che funziona meglio per te. Se non lo sai, mantieni il valore predefinito.

  3. Non preoccuparti di configurare la registrazione. Basta fare clic sul pulsante “Crea” quando sei pronto.


Passaggio 3: abilitare l’hosting di siti Web statici e specificare le regole di routing

Abilita l'hosting di siti Web statici e specifica le regole di routing

  1. Nella finestra delle proprietà, apri le impostazioni per “Static Website Hosting”.
  2. Seleziona l’opzione “Abilita hosting del sito web”.
  3. Inserire un valore per il “Documento dell’indice”. Questo object (documento) non sarà mai servito da S3 e non dovrai mai caricarlo. Usa solo il nome che vuoi.
  4. Apri le impostazioni per “Modifica regole di reindirizzamento”.
  5. Incolla il seguente snippet XML nella sua interezza.

       https myaccount.signin.aws.amazon.com console/ 301    

Se sei curioso di sapere cosa sta facendo l’XML sopra, consulta la documentazione di AWM per “Sintassi per specificare le regole di routing” . Una tecnica bonus (non trattata qui) viene inoltrata a pagine specifiche nell’host di destinazione, ad esempio http://redirect-destination.com/console/special-page.html . Leggi l’elemento se hai bisogno di questa funzionalità.


Passaggio 4: prendi nota dell’endpoint del tuo bucket di reindirizzamento

Prendi nota dell'estremità del tuo bucket di reindirizzamento

Prendi nota dell’hosting di siti web statico “endpoint” che Amazon ha creato automaticamente per questo bucket. Ne avrai bisogno per dopo, quindi evidenzia l’intero URL, quindi copialo e incollalo nel blocco note.

ATTENZIONE! A questo punto puoi effettivamente fare clic su questo link per verificare se le tue regole di reindirizzamento sono state inserite correttamente, ma attenzione! Ecco perché…

Diciamo che hai inserito il valore sbagliato all’interno dei tag nelle tue Regole di reindirizzamento. Forse hai accidentalmente digitato myaccount.amazon.com , invece di myaccount.signin.aws.amazon.com . Se fai clic sul link per testare l’URL dell’endpoint, AWS reindirizzerà felicemente il tuo browser all’indirizzo sbagliato!

Dopo aver notato il tuo errore, probabilmente modifichi il nelle tue Regole di reindirizzamento per correggere l’errore. Sfortunatamente, quando tenti di fare nuovamente clic sul link, molto probabilmente finirai per essere reindirizzato all’indirizzo sbagliato! Anche se hai corretto la voce , il tuo browser memorizza nella cache la voce precedente (errata!). Ciò accade perché stiamo utilizzando un reindirizzamento HTTP permanente (permanente), che browser come Chrome e Firefox memorizzeranno nella cache per impostazione predefinita.

Se copi e incolli l’URL Endpoint su un altro browser (o svuota la cache in quello corrente), avrai un’altra possibilità di vedere se la tua voce aggiornata è finalmente quella corretta.

Per sicurezza, se vuoi testare il tuo URL degli endpoint e le regole di reindirizzamento, devi aprire una sessione di navigazione privata, come “Modalità di navigazione in incognito” in Chrome. Copia, incolla e verifica l’URL dell’endpoint in modalità di navigazione in incognito e tutto ciò che viene memorizzato nella cache andrà via una volta chiusa la sessione.


Passaggio 5: aprire la Console di gestione Route53 e accedere ai set di record per la propria zona ospitata (nome dominio)

Aprire la Console di gestione Route 53 per aggiungere set di record alla propria zona ospitata

  1. Seleziona la Zona ospitata (nome di dominio) che hai usato quando hai creato il tuo bucket. Dal momento che ho chiamato il mio bucket “url-redirect-example.vivekmchawla.com”, selezionerò la zona ospitata di vivekmchawla.com.
  2. Fare clic sul pulsante “Vai ai set di record”.

Passaggio 6: fare clic sul pulsante “Crea set di record”

Fai clic sul pulsante Crea set di record

Facendo clic su “Crea set di record” si aprirà la finestra Crea set di record sul lato destro della console di gestione Route53.


Passaggio 7: creare un set di record CNAME

Crea un set di record CNAME

  1. Nel campo Nome, inserisci la parte dell’hostname dell’URL che hai usato quando hai nominato il tuo bucket S3. La “porzione hostname” dell’URL è tutto a SINISTRA del nome della tua zona ospitata. Ho chiamato il mio bucket S3 “url-redirect-example.vivekmchawla.com”, e la mia Hosted Zone è “vivekmchawla.com”, quindi la parte hostname che devo inserire è “url-redirect-example”.

  2. Seleziona “CNAME – Nome canonico” per il tipo di questo set di record.

  3. Per il valore, incolla l’URL dell’endpoint del bucket S3 che abbiamo creato nel passaggio 3.

  4. Fai clic sul pulsante “Crea set di record”. Supponendo che non ci siano errori, ora sarai in grado di vedere un nuovo record CNAME nell’elenco di Record Set della tua Zona Ospitata.


Passaggio 8: verifica il nuovo reindirizzamento dell’URL

Apri una nuova scheda del browser e digita l’URL che abbiamo appena configurato. Per me, questo è http://url-redirect-example.vivekmchawla.com . Se tutto ha funzionato correttamente, dovresti essere inviato direttamente a una pagina di accesso AWS.

Poiché abbiamo utilizzato l’alias myaccount.signin.aws.amazon.com come URL di destinazione del nostro reindirizzamento, Amazon sa esattamente a quale account stiamo cercando di accedere e ci porta direttamente lì. Questo può essere molto utile se si desidera fornire un collegamento di accesso AWS breve, pulito e brand ai dipendenti o agli appaltatori.

Tutto fatto! L'inoltro dell'URL dovrebbe portarti alla pagina di accesso di AWS.


conclusioni

Personalmente adoro i vari servizi AWS, ma se hai deciso di migrare la gestione DNS su Amazon Route 53, la mancanza di un semplice inoltro URL può essere frustrante. Spero che questa guida abbia contribuito a configurare un po ‘più facilmente l’inoltro dell’URL per le zone ospitate.

Se vuoi saperne di più, dai un’occhiata alle pagine seguenti dal sito di documentazione di AWS.

  • Esempio: impostazione di un sito Web statico mediante un dominio personalizzato
  • Configura un secchio per l’hosting del sito web
  • Creazione di un dominio che utilizza Route 53
  • Creazione, modifica ed eliminazione dei record di risorse

Saluti!

Il supporto di AWS ha indicato una soluzione più semplice. È fondamentalmente la stessa idea proposta da @Vivek M. Chawla, con un’implementazione più semplice.

AWS S3:

  1. Crea un bucket denominato con il tuo dominio completo, ad esempio aws.example.com
  2. Nelle proprietà del bucket, seleziona Redirect all requests to another host name e inserisci il tuo URL: https://myaccount.signin.aws.amazon.com/console/

AWS Route53:

  1. Creare un tipo di set di record A. Modificare l’alias su Yes . Fare clic sul campo Alias Target e selezionare il bucket S3 creato nel passaggio precedente.

Riferimento: come redirect i domini tramite Amazon Web Services

Documentazione ufficiale di AWS: esiste un modo per redirect un dominio a un altro dominio utilizzando Amazon Route 53?

Sono stato in grado di usare nginx per gestire il reindirizzamento 301 alla pagina di accesso di aws.

Vai alla tua cartella conf nginx (nel mio caso è /etc/nginx/sites-available in cui creo un link simbolico a /etc/nginx/sites-enabled per i file conf abilitati).

Quindi aggiungere un percorso di reindirizzamento

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

Se si utilizza nginx, molto probabilmente si avranno blocchi di server aggiuntivi (virtualhosts nella terminologia di apache) per gestire l’apex di zona (esempio.com) o comunque l’installazione è stata eseguita. Assicurati di averne uno impostato come server predefinito.

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

In Route 53, aggiungi un A record per aws.example.com e imposta il valore sullo stesso IP utilizzato per l’apice di zona.

Aggiornare

Mentre la mia risposta originale qui sotto è ancora valida e potrebbe essere utile capire la causa per l’inoltro di URL basato su DNS non disponibile tramite Amazon Route 53 , consiglio vivamente di verificare la soluzione indiretta assolutamente intelligente di Vivek M. Chawla attraverso il frattempo introdotto Supporto di Amazon S3 per il reindirizzamento del sito Web e il raggiungimento di un server autonomo di meno e quindi una soluzione gratuita all’interno di AWS solo in questo modo.

  • L’implementazione di una soluzione automatizzata per generare tali reindirizzamenti viene lasciata come esercizio per il lettore, ma si prega di rendere omaggio alla risposta epica di Vivek pubblicando la propria soluzione;)

Risposta originale

Nettica deve eseguire una soluzione di reindirizzamento personalizzata per questo, ecco il problema:

Potresti creare un alias CNAME come aws.example.com per myaccount.signin.aws.amazon.com , tuttavia in questo esempio DNS non fornisce alcun supporto ufficiale per l’aliasing di una sottodirectory come console .

  • È un peccato che AWS non sembri semplicemente eseguire questa operazione per impostazione predefinita quando si preme https://myaccount.signin.aws.amazon.com/ (l’ho appena provato), perché risolverebbe il problema immediatamente e farebbe un sacco di senso in primo luogo; inoltre, dovrebbe essere abbastanza facile da configurare sulla loro fine.

Per questo motivo alcuni provider DNS hanno apparentemente implementato una soluzione personalizzata per consentire reindirizzamenti a sottodirectory; Mi permetto di indovinare che stanno sostanzialmente facilitando un alias CNAME per un proprio dominio e stanno reindirizzando di nuovo da lì alla destinazione finale tramite un reindirizzamento HTTP 3xx immediato.

Quindi, per ottenere lo stesso risultato, è necessario disporre di un servizio HTTP in esecuzione eseguendo questi reindirizzamenti, che non è la soluzione semplice che si spera, naturalmente. Forse / Si spera che qualcuno riesca comunque a trovare un approccio più intelligente.

Se hai ancora problemi con l’approccio semplice, creando un bucket vuoto, Redirect all requests to another host name in Static web hosting in proprietà tramite la console. Assicurarsi di aver impostato 2 record A in route53, uno per final-destination.com e uno per redirect-to.final-destination.com . Le impostazioni per ognuna di queste saranno identiche, ma il nome sarà diverso in modo che corrisponda ai nomi che hai impostato per i tuoi bucket / URL.