Stavo incontrando esattamente lo stesso 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 che illustra in dettaglio ciò che ho fatto.
Ecco cosa mi è venuto in mente.
Obbiettivo
Utilizzando solo gli strumenti disponibili in Amazon S3 e Amazon Route 53, crea un reindirizzamento URL che inoltra automaticamente http://url-redirect-example.vivekmchawla.com alla pagina di accesso della Console AWS con il metodo "MyAccount", che si trova su https : //myaccount.signin.aws.amazon.com/console/ .
Questa guida ti insegnerà a impostare l'inoltro dell'URL a qualsiasi URL, non solo a quelli di Amazon. Imparerai come impostare l'inoltro a cartelle specifiche (come "/ console" nel mio esempio) e come cambiare il protocollo di reindirizzamento da HTTP a HTTPS (o viceversa).
Primo passo: crea il tuo secchio S3
Apri la console di gestione S3 e fai clic su "Crea bucket".
Secondo passaggio: assegna un nome al tuo bucket S3
Scegli un nome di bucket. Questo passaggio è davvero importante! È necessario nominare il bucket ESATTAMENTE lo stesso dell'URL che si desidera impostare per l'inoltro. Per questa guida, userò il nome "url-redirect-example.vivekmchawla.com".
Seleziona la regione più adatta a te. Se non lo sai, mantieni l'impostazione predefinita.
Non preoccuparti di configurare la registrazione. Fai clic sul pulsante "Crea" quando sei pronto.
Passaggio 3: abilitare l'hosting di siti Web statici e specificare le regole di routing
- Nella finestra delle proprietà, apri le impostazioni per "Hosting statico di siti Web".
- Seleziona l'opzione "Abilita hosting di siti Web".
- Immettere un valore per "Documento indice". Questo oggetto (documento) non sarà mai servito da S3 e non dovrai mai caricarlo. Usa solo il nome che desideri.
- Apri le impostazioni per "Modifica regole di reindirizzamento".
Incolla il seguente frammento XML nella sua interezza.
<RoutingRules>
<RoutingRule>
<Redirect>
<Protocol>https</Protocol>
<HostName>myaccount.signin.aws.amazon.com</HostName>
<ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
Se sei curioso di sapere cosa sta facendo l'XML sopra, visita la documentazione di AWM per "Sintassi per specificare le regole di routing" . Una tecnica bonus (non illustrata qui) viene inoltrata a pagine specifiche nell'host di destinazione, ad esempio http://redirect-destination.com/console/special-page.html
. Leggi <ReplaceKeyWith>
sull'elemento se hai bisogno di questa funzionalità.
Passaggio 4: prendere nota dell'endpoint del bucket di reindirizzamento
Prendi nota dell'endpoint dell'hosting di siti Web statici 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 fai attenzione! Ecco perché...
Supponiamo che tu abbia inserito un valore errato all'interno dei <Hostname>
tag nelle Regole di reindirizzamento. Forse hai digitato per errore 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 l'errore, probabilmente modificherai le <Hostname>
Regole di reindirizzamento per correggere l'errore. Sfortunatamente, quando provi a fare di nuovo clic sul link, molto probabilmente finirai per essere reindirizzato all'indirizzo sbagliato! Anche se hai corretto la <Hostname>
voce, il tuo browser memorizza nella cache la voce precedente (errata!). Ciò accade perché stiamo utilizzando un reindirizzamento HTTP 301 (permanente), che i browser come Chrome e Firefox memorizzeranno nella cache per impostazione predefinita.
Se copi e incolli l'URL dell'endpoint in un altro browser (o svuoti la cache in quello corrente), avrai un'altra possibilità di vedere se la tua <Hostname>
voce aggiornata è finalmente quella corretta.
Per sicurezza, se vuoi testare l'URL dell'endpoint e le regole di reindirizzamento, devi aprire una sessione di navigazione privata, come "Modalità di navigazione in incognito" in Chrome. Copia, incolla e testa l'URL dell'endpoint in modalità di navigazione in incognito e tutto ciò che verrà memorizzato nella cache scomparirà una volta chiusa la sessione.
Passaggio 5: apri la console di gestione Route53 e vai ai set di record per la tua zona ospitata (nome dominio)
- Seleziona la zona ospitata (nome di dominio) che hai usato quando hai creato il bucket. Da quando ho chiamato il mio bucket "url-redirect-example.vivekmchawla.com", selezionerò la zona ospitata da vivekmchawla.com.
- Fare clic sul pulsante "Vai a set di record".
Passaggio 6: fare 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
Nel campo Nome, inserisci la parte del nome host dell'URL che hai usato per nominare il tuo bucket S3. La "parte del nome host" 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 zona ospitata è "vivekmchawla.com", quindi la parte del nome host che devo inserire è "url-redirect-example".
Seleziona "CNAME - Nome canonico" per il tipo di questo set di record.
Per il valore, incolla l'URL dell'endpoint del bucket S3 che abbiamo creato nel passaggio 3.
Fai clic sul pulsante "Crea set di record". Supponendo che non vi siano errori, ora sarai in grado di vedere un nuovo record CNAME nell'elenco dei set di record 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 impostato. 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' myaccount.signin.aws.amazon.com
alias 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 con marchio a dipendenti o appaltatori.
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 di URL può essere frustrante. Spero che questa guida abbia contribuito a rendere un po 'più semplice l'impostazione dell'inoltro URL per le zone ospitate.
Se desideri saperne di più, dai un'occhiata alle seguenti pagine dal sito della documentazione di AWS.
Saluti!