Come Ospitare un Sito web da S3

0
188

Le probabilità sono, probabilmente non avrete bisogno di un web server NGINX in esecuzione su EC2 per ottenere il vostro sito web attivo e funzionante. Se sei solo alla ricerca di ospitare un sito web statico, è possibile memorizzare tutti i contenuti in S3, e host da lì.

Aspetta, non ho Bisogno di un Server?

Se il tuo sito non fa uso di qualsiasi elaborazione del lato server (come PHP), semplicemente memorizzare i file su S3, la configurazione del secchio per ospitare il sito, e puntamento del DNS per il secchio potrà sostituire il NGINX o Apache.

“L’elaborazione del lato Server” è molto meno ampio di quanto non sembri. Solo perché il vostro sito è “statica” non significa sembra 1990 pagina GeoCities, senza il JavaScript. Tutti che “statico” significa che tutte le risorse (pagine HTML, codice JS, CSS fogli di stile) non cambiano in risposta alle richieste. Con linguaggi come PHP, tutta l’elaborazione avviene sul lato server; se due utenti di richiedere il loro profilo pagina, il server invierà loro pagine diverse. Questo non può essere fatto su S3, quindi, se si utilizza PHP, è necessario impostare un server web reale. Questo in particolare vale per WordPress, che utilizza PHP per gestire il contenuto.

Tuttavia, sta diventando sempre più comune per i siti web per essere grandi applicazioni JavaScript. Con un framework come Reagire, che deve essere consegnata, è uno bundle.js file. È il lavoro del cliente, non il server, per l’esecuzione di questo file e lanciare l’applicazione. Applicazioni come questa può essere ospitato su S3 senza problemi. Questo non sbarazzarsi del vostro backend sia—si può ancora avere la tua app per comunicare con un server API e parlare a un database, devi autenticare le richieste provenienti dal client. Combinato con AWS API Gateway e Lambda, potrebbe non essere necessario eseguire un singolo server EC2.

Non fatevi ingannare dalla semplice installazione—per siti di piccole dimensioni, S3 in grado di tagliare i costi per i penny sul dollaro, e perché non ci sono i server di cui preoccuparsi, si adatta perfettamente tutta la strada fino a milioni di utenti. È sufficiente pagare una tariffa flat per la larghezza di banda in e out, nonché le eventuali spese accessorie per la Lambda, RDS, o di eventuali altri servizi da utilizzare con l’app. Anche per le più grandi aziende di distribuzione di applicazioni di produzione, hosting da S3 è una soluzione molto valida e conveniente opzione se l’app è in grado di sostenere.

S3 non supporta il protocollo HTTPS per i siti web statici, che sarebbe uno di quelli seri, ma si può mettere dietro CloudFront (AWS CDN) che, oltre a migliorare la memorizzazione nella cache e prestazioni, può utilizzare un dominio personalizzato con HTTPS. Dispone anche di un più generoso e gratuito di secondo livello per il trasferimento di dati—50 GB piuttosto che S3 è di 1 GB.

La Configurazione Di Questo

Per questo tutorial, piuttosto che la distribuzione di semplice pagina HTML, si potrà implementare il progetto starter da creare-reagire-app, come meglio mostra S3 vero potenziale.

Dopo l’esecuzione di filato di costruire, siamo lasciati con le seguenti attività in /creare la cartella:

Tutta questa cartella verranno copiati su S3. Oltre al capo della S3 Console di Gestione, e fare clic su “Crea un Secchio”.

Dare un nome (deve essere univoco tra tutti AWS conti), e fare clic su “Avanti”. È possibile attivare il controllo delle versioni per le opzioni, ma non c’è molto altro da considerare. Fare clic su “Next”.

Nella schermata successiva, si desidera deselezionare “Blocca Tutti l’Accesso del Pubblico.” Questo è il default per evitare che gli oggetti in secchi da essere visibile a internet, il che renderebbe il vostro secchio irraggiungibile. AWS pop-up con un messaggio di avviso che dice di tornare indietro, a meno che non stai usando il “specifiche e verificati casi di utilizzo” come statico di hosting del sito web. Perché questo è esattamente quello che stiamo facendo, è possibile ignorare questo.

Fare clic su “Crea” il secchio, e aprirlo.

È possibile trascinare manualmente il contenuto della cartella HTML nel secchio, ma un metodo migliore è quello di utilizzare il AWS CLI per sincronizzare l’intera cartella di backup per il vostro secchio. Il comando è piuttosto semplice:

aws s3 sync . s3://secchio nome

Ora, si dovrebbe vedere il contenuto della cartella nel secchio:

Una volta che tutto è sincronizzato, è possibile configurare il secchio per consentire di hosting del sito web. Nella scheda proprietà, attivare il “Sito Statico Hosting” opzione e selezionare il tuo file di indice. È anche possibile selezionare un file di errore di mostrare agli utenti una più personalizzata 404.

Questo si accende statico di hosting del sito web, ma non in modo esplicito concedere l’accesso in lettura. Per fare questo, è necessario aggiungere la seguente secchio politica in Autorizzazioni > Secchio Politica:

{
“Versione”:”2012-10-17″,
“Dichiarazione”:[{
“Sid”:”PublicReadGetObject”,
“Effetto”:”Consenti”,
“Principal”: “*”,
“Azione”:[“s3:GetObject”],
“Risorsa”:[“arn:aws:s3:::esempio-secchio/*”
]
}
]
}

Questo pop-up un altro avviso indicante che l’accesso del pubblico è su. Si può ancora ignorare tutto questo.

Il secchio sarà ora visibile dalle seguenti endpoint:

http://BUCKET-NAME.s3-website.REGION.amazonaws.com/

Grande! Tutto funziona correttamente. Il client richiede il secchio, che serve la index.html file, che consente di scaricare tutte le richieste di JS e CSS attività, e rende la filatura Reagire logo.

Tuttavia, questo endpoint, ovviamente, non è user friendly, quindi probabilmente si desidera configurare un dominio personalizzato per il tuo sito S3. Il metodo più semplice è quello di utilizzare CloudFront per servire le richieste, che è l’unico modo per sostenere HTTPS comunque. Se non si desidera utilizzare CloudFront, è possibile impostare un dominio personalizzato utilizzando la Route 53 alias per il vostro secchio di endpoint predefinito.

Oltre al capo della CloudFront Console. Selezionare “Crea Distribuzione” e scegliere “Web” come tipo. Nella schermata successiva, in “Origine del Nome di Dominio,” selezionare il tuo S3 secchio dal menu a discesa. Assicuratevi di controllare anche “il Reindirizzamento HTTP a HTTPS.”

Più in basso, è necessario configurare il vostro dominio. Inserire il tuo dominio alternativo nome, e selezionare “SSL Personalizzato.” La richiesta di uno da ACM; si può richiedere fino a mezz’ora per verificare a seconda del provider di DNS, ma se si sta utilizzando la Route 53, è possibile creare e verificare il record automaticamente in pochi minuti.

Dopo di che, fare clic su “Crea Distribuzione”, in basso e attendere circa 15 minuti per CloudFront per ottenere tutto risolto. Una volta fatto, sarete in grado di visitare il vostro nome di dominio personalizzato e vedere le app servita direttamente da S3.

Se volete fare la versione più facile la gestione, è possibile impostare una distribuzione automatica di pipeline con AWS CodePipeline. Basta scegliere la distribuzione S3, e AWS distribuire il codice sorgente automaticamente la disponibilità di aggiornamenti, tra cui costruire artefatti.