Servizi Web di Amazon
Questo documento descrive i vari approcci per sviluppare Verdaccio nell'AWS cloud.
EC2
Il CloudFormation template per sviluppare questo stack.
Architettura:
Client
|
| (HTTPS)
v
Bilanciatore di Carico dell'Applicazione
|
| (HTTP)
v
Gruppo di Scala Automatica EC2 (Amazon Linux 2)
Immagine del docker (Verdaccio)
|
| (NFS)
v
Sistema di File Elastico
Note d'architettura:
- Distribuisci questo stack nella regione più vicina ai tuoi utenti per le massime prestazioni.
- * Utilizziamo un gruppo auto scaling principalmente per il self-healing. I requisiti di sistema di Verdaccio sono piuttosto bassi, quindi è improbabile che avrai bisogno di più istanze di gestire il carico di traffico.
- * Poiché Amazon Linux 2 non include Node, eseguiamo Verdaccio come un'immagine Docker anziché in modo nativo nell'istanza. Questo è più veloce e più sicuro del fare affidamento su fonti di pacchetti di terze parti per Node.
- * Elastic File System è economico e stateful e funziona sulle AZ. Un'alternativa sarebbe il plugin di archiviazione di terze parti S3.
- * Per effettuare il backup, utilizzare AWS Backup
Costo mensile stimato per un piccolo impianto (zona us-east-1): * ALB (1 LCU in media): $ 22,265/mese * EC2 (t3.nano): $ 3,796/mese * EBS (8 gb): $ 0,80/mese * EFS (5 gb): $ 1,5/mese * Trasferimento dati: (10 gb): $ 0,9/mese * TOTALE: Meno di $30/mese
- ALB (1 LCU in media): $22.265/mese
- EC2 (t3.nano): $3.796/mese
- EBS (8gb): $0.80/mese
- EFS (5gb): $1.5/mese
- Trasferimento dati: (10gb): $0.9/mese
- TOTALE: Meno di $30/mese
ECS
È possibile sviluppare Verdaccio come una funzione con un ECS Volume per l'archiviazione persistente.
Nota: Fargate non supporta volumi persistenti, quindi è necessario utilizzare il plugin di archiviazione S3.
EKS
Vedere le pagine della documentazione su Kubernetes e Docker.
Deploying Verdaccio on AWS
Configurazione
Passaggio 1: Apri SSH e Accedi usando la tua chiave EC2.
Fase 2: Prima installa Node Version Manager (nvm), chiudi e riapri lo SSH usando la tua chiave EC2.
sudo apt update
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
exit
Fase 3: Installa Node usando Node Version Manager (nvm)
nvm install node
Fase 4: Installa Verdaccio e pm2, richiederà l'esecuzione in background del servizio di Verdaccio
npm i -g verdaccio pm2
Fase 5: Imposta il registro di Verdaccio come una fonte. Di default, è impostato il registro NPM originale.
npm set registry http://localhost:4873
npm set ca null
Fase 6: Esegui Verdaccio e interrompilo (ctrl+c). Creerà un file di configurazione che useremo.
verdaccio
Fase 7: Ora esegui la seguente configurazione per ascoltare tutti gli indirizzi su quella macchina del server / istanza EC2. (leggi di più)
Apri e modifica il file config.yaml
:
nano .config/verdaccio/config.yaml
o nano ~/verdaccio/config.yaml
Aggiungi le seguenti linee alla fine. (leggi di più)
listen:
- 0.0.0.0:4873
Cambia la linea seguente così che solo la persona autenticata possa accedere al nostro registro
Sostituisci "access: $all" con "access: $authenticated"
(Facoltativo) Cambia la linea seguente in base a quanti utenti vuoi abbiano accesso garantito al registro perlustrato
Sostituisci "#max_users: 1000" con "max_users: 1"
Questi sono alcuni altri parametri disponibili per configurarlo. Come archiviazione, proxy, cambio porta predefinita. (leggi di più)
Fase 8: Esegui Verdaccio in background usando PM2:
pm2 start verdaccio
Fase 9: Ora, puoi accedere alla tua UI web di Verdaccio.
L'URL somiglierà a questa:
http://ec2-..compute.amazonaws.com:4873
or
http://your-ec2-public-ip-address:4873 (Puoi verificare l'IP pubblico della tua istanza di EC2 dalla console di AWS)
Per confermare lo stato d'esecuzione di Verdaccio, esegui il seguente comando:
pm2 list
Per far avviare Verdaccio all'avvio, esegui i seguenti comandi:
pm2 stop verdaccio
pm2 delete verdaccio
pm2 startup
Questo mostrerà un comando nel tuo terminale. Copialo / incollalo ed eseguilo per far creare a pm2 un servizio in avvio per te.
which verdaccio
Copia il percorso mostrato da questo comando.
pm2 start /home/ubuntu/.nvm/versions/node/v17.1.0/bin/verdaccio
(inserisci il percorso copiato dal comando sopra).
pm2 status
Questo dovrebbe mostrare "online" sullo stato del servizio di Verdaccio.
pm2 save
Ora, riavviando l'istanza di EC2, dovrebbe avviarsi Verdaccio.
Fase 10: Registrare un utente nel registro di Verdaccio
npm adduser
Chiederà l'inserimento di nome utente, password e un'id email valido. Prendi nota di questi dettagli che useremo in seguito per accedere al registro di Verdaccio e pubblicare la nostra libreria.
Fase 11: Ora siamo pronti a usare la nostra istanza del server AWS come un registro privato.
Accedi al registro di Verdaccio. Inserisci gli stessi nome utente, password e id email impostati nella Fase precedente.
npm set registry http://your-ec2-public-ip-address:4873
npm login
Fase 12: Vai al percorso del pacchetto della tua libreria personalizzata. Nel mio caso è il percorso del mio pacchetto di Angular 7 -> /libraries/dist/your-library-name/your-library-name-0.0.1.tgz
Se vorresti sapere come creare la libreria/pacchetto di Angular 7, allora (clicca qui)
cd [custom library package path]
Fase 13: Infine, pubblica la nostra libreria your-library-name-0.0.1.tgz
sul registro di Verdaccio
[custom library package path] >> npm publish your-library-name-0.0.1.tgz
or
[custom library package path] >> npm publish
or
[custom library package path] >> npm publish --registry http://your-ec2-public-ip-address:4873
Ora, sfoglia http://your-ec2-public-ip-address:4873
e vedrai il nuovo pacchetto della libreria.