Con i servizi AWS abbiamo l'applicazione Web in esecuzione dal bucket S3 e l'accesso ai dati tramite l'API REST da Load Balancer (che è un insieme di applicazioni Node.js in esecuzione su un'istanza EC2).Come utilizzare S3 come pagina Web statica ed EC2 come API REST per esso insieme? (AWS)
Attualmente abbiamo specificato URL del seguente esempio:
- API di Load Balancer: api.somedomain.com
- statico Web App su S3: somedomain.com
Ma avere questa configurazione ci ha portato una serie di problemi in quanto le richieste sono CORS con questa configurazione. Potremmo risolvere il problema con CORS con intestazioni speciali, ma questo non funziona con tutti i browser.
Quello che vogliamo raggiungere è in esecuzione API sullo stesso dominio, ma con diverso percorso:
- API Load Balancer: somedomain.com/api
- Web App statica su S3: somedomain.com
Una delle idee è stato quello di collegare l'API Load Balancer al CDN e inoltrare tutte le richieste di Load Balancer se interrogazione è in arrivo sul "/ api/*" percorso. Ma questo non funziona poiché la nostra API utilizza non solo le richieste HEAD e GET, ma anche POST, PUT, DELETE.
Un'altra idea è utilizzare la seconda istanza EC2 invece del bucket S3 per ospitare il sito Web (utilizzando alcuni server Web come nginx o apache). Ma questo dà troppe spese generali quando tutto è già in atto (hosting di contenuto statico S3). Inoltre, se si utilizza questo scenario non avremmo tutti i vantaggi delle prestazioni di Amazon CloudFront.
Quindi, potresti consigliare come combinare Load Balancer e S3, in modo che possano essere eseguiti sullo stesso dominio, ma con percorsi diversi? (API su somedomain.com/api e Web App su somedomain.com)
Grazie!
Grazie per la vostra come una buona spiegazione! Probabilmente andremo con l'approccio CORS e creeremo soluzioni alternative per IE. – user1671010
Felice di. Se questo risolve il tuo problema, contrassegnalo come risposta. –