Salta al contenuto principale
Versione: 6.x

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.