Amazon Route 53 un servizio DNS in ambiente cloud
da Massimo Della Rovere · pubblicato il 5 agosto, 2014 · modificato il 7 agosto, 2016

Il servizio DNS chiamato Domain Name Server è un servizio web per la risoluzione dei nomi di dominio nei corrispettivi indirizzi IP. Ogni volta che indichiamo un’indirizzo URL nel nostro browser viene richiamato un server DNS che trasforma il nome indicato come ad esempio domain.com in un’indirizzo IP numerico come 212.10.150.15, quindi quando compriamo un dominio dobbiamo per forza di cose utilizzare un servizio DNS per fare in modo che tutte le richieste vengano dirottate ai nostri server.

Introduzione

Un DNS di dominio ha diverse associazioni, non esiste solo quella del dominio principale, ad esempio potremmo definire dei sotto domini come www.domain.com e altri più specifici come shop.domain.com che potremmo far puntare a server web diversi e applicazioni che girano in ambienti separati. Un’altro esempio molto utilizzato è la divisione del sistema di posta elettronica da ciò che riguarda le applicazioni web.

I server DNS sono importanti quanto i server applicativi, infatti in mancanza di essi, i nostri domini non sarebbero raggiungibili da nessun utente. Proprio per questo motivo, disegnare una struttura di networking in maniera scalabile e ridondante senza pensare ai DNS può essere un grave errore. Per fortuna gli Amazon Web Services ci mettono a disposizione un servizio chiamato Route 53 che ci evita configurazioni complesse e ci permette di usare il servizio DNS senza pericoli di downtime e di performance.

Caratteristiche

Il servizio Route 53 è disegnato in maniera tale da essere sempre disponibile e performante, questo grazie ad una rete di server DNS sparsi nel mondo che rispondono alle richieste degli utenti dalla zona geografica più vicina. La configurazione del servizio può avvenire direttamente dalla console o anche tramite le API, le quali possono essere utilizzate per cambiare le caratteristiche del DNS tramite applicazione, questa è una caratteristica mancante in molti servizi DNS oggi disponibili.

Il servizio Route 53 ovviamente è integrato anche con gli altri servizi AWS, infatti è possibile mappare le risorse di Amazon S3 o CloudFront direttamente su Route 53 e indirizzare le risorse presenti sul cloud tramite il nostro nome di dominio. Anche il servizio di Load Balancing per Amazon EC2 è controllato tramite questo servizio, dove come vedremo in seguito mette a disposizione anche funzionalità aggiuntive.

Risorse

Una volta selezionato il servizio Route 53 dalla nostra console ci verranno mostrate tre differenti sezioni, Hosted Zones, Health Check e Domains. La prima serve a gestire i nostri domini e le associazioni DNS, oltre ad una serie di funzioni avanzate che vedremo nel seguito dell’articolo. La seconda sezione serve a definire dei controlli che riguardano la disponibilità di servizi, ad esempio in caso di errore grave sul server web principale potremmo dirottare il traffico su un sito statico presente su Amazon S3.

Route 53

L’ultima sezione riguarda la possibilità di comprare o trasferire alcuni nomi di domini, questa funzione è attiva da poco tempo ed effettivamente è molto comoda, in quanto evita di registrare un dominio presso un’altro fornitore per poi spostare i nameserver in maniera tale da utilizzare il servizio di Route 53. In questa maniera è tutto automatico e più diretto, oltretutto i prezzi applicati sono molto aggressivi e concorrenziali.

Hosted Zones

Se selezioniamo il menu Hosted Zones possiamo gestire i nomi di dominio di nostra proprietà, è possibile inserirne di nuovi o cancellare quelli esistenti, per ogni dominio possiamo visualizzare o modificare le entrate DNS tramite l’opzione Record Set. Le entrare sono di diversi tipi, come ad esempio CNAME, A, MX, NS, etc, per eventuali approfondimenti vi rimando alla documentazione ufficiale su wikipedia.

Route 53

In questa schermata possiamo vedere le entrate DNS di un dominio, le gestione è molto semplice, basta selezionare l’entrata desiderata e modificarla o cancellarla, se si vuole inserire una nuova entrata basta premere Create Record Set, volendo esiste anche la possibilità di importare le entrate tramite un file con Import Zone File.

Se il nome di dominio è registrato presso un’altro fornitore, bisogna indicare nel DNS del register l’utilizzo di Amazon Route 53 e non più il servizio DNS originario. Per fare questo basta indicare i nameservers indicati da Amazon in fase di inserimento dominio negli appositi campi che quasi tutti i register mettono a disposizione.

Route 53

In questa schermata possiamo vedere il dominio precedente che ho registrato tramite il portale namecheap.com e l’associazione corrispondente con i nameservers rilasciati da Amazon durante la creazione dell’entrata di dominio. Ovviamente se registrate il nome di dominio su Amazon Web Services questi passaggi non sono necessari.

Health Check

Tramite questa opzione è possibile gestire un DNS Failover, possiamo definire dei record di controllo con diverse opzioni, le quali vanno successivamente associate ad un’entrata DNS presente nella sezione Hosted Zones. Per inserire un nuovo Health Check basta selezionare l’opzione indicata e specificare le seguenti opzioni:

Il nome del controllo, il protocollo da utilizzare (HTTPHTTPSTCP), un endpoint (sia valore IP che dominio), il numero di porta e l’indirizzo URL. Possiamo definire anche i tempi di controllo specificando un valore di 30 o 10 secondi, e il numero delle volte consecutive che sono necessarie per far scattare lo stato di inattività.

Route 53

Come detto, una volta che abbiamo creato un Health Check dobbiamo associarlo ad un’entrata DNS, su questo aspetto dobbiamo sempre tenere presente che il controllo sarà eseguito sugli indirizzi IP del controllo definito e non su quelli presenti nell’entrata DNS, vi sottolineo questo aspetto perché molte volte ci si sbaglia :)

Prendiamo come esempio uno scenario molto semplice composto da due istance EC2 che eseguono la stessa applicazione web, quando l’istanza principale non è più raggiungibile attiviamo un cambio DNS verso la secondo istanza. Quindi per prima cosa creiamo un record Health Check che chiamiamo TestCheckDNS, passiamo al menu Hosted Zones e selezioniamo un dominio DNS per eseguire delle prove, verifichiamo di avere due entrate di tipo A che puntano alle due istanze EC2.

Route 53

Ovviamente questo esempio è riportato solo a scopo didattico, in realtà gli scenari che necessitano di questa configurazione sono più complessi, ad esempio potremmo avere nell’ambiente principale un Load Balancing con diversi server, i quali se non rispondono alle richieste di controllo è possibile attivare un sito web di emergenza su Amazon S3.

Domains

Con questa opzione è possibile comprare o trasferire dei nomi di dominio direttamente nel nostro account AWS. L’operazione è molto semplice e simile a tutti i servizi di questo genere, infatti basta specificare il nome di dominio che ci interessa, vedere la lista delle disponibilità e aggiungere al carrello le estensioni che vogliamo comprare. I prezzi e le estensioni disponibili le trovate nel menu a tendina della selezione.

Route 53

Una volta che abbiamo aggiunto al carrello il dominio interessato possiamo procedere con l’inserimento dei dati personali con la possibilità di attivare la privacy e quindi non renderli pubblici sui records WHOIS. Come procedura standard dobbiamo indicare i record che riguardano il Registrante, il contatto amministrativo e quello tecnico.

Route 53

Una volta completa questa procedura sarà possibile completare l’acquisto confermando la pagina del resoconto generale. I records dei domini acquistati saranno aggiunti in maniera automatica alla nostra sezione Hosted Zones.

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services.  Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

2 Commenti

  1. Decisamente interessante questo tutorial su Route 53, mi pare che l'health check debba però essere associato al primary record, per il secondario è sufficiente la routing policy in failover mode. Grazie per le informazioni generali su AWS, è un sistema tutto da scoprire.

  2. Ciao Maurizio, grazie per il feedback. Oltre ad essere un sistema tutto da scoprire è anche veramente vasto. Sono alcuni anni che ci lavoro e ancora ho da scoprire tutti i giorni.

condividi