Digitalocean block storage VS amazon S3

Ho ricevuto un avviso sulla spazio su disco nella riga di comando prima di ricostruire il mio container durante l’installazione di un plugin Discourse. Ho dovuto eseguire alcuni comandi per rimuovere alcune versioni più vecchie di Linux sul mio droplet DigitalOcean, ma sono ancora oltre il 50% della capacità SSD.

Man mano che il mio sito web Discourse è cresciuto, ho iniziato a valutare le soluzioni di archiviazione. Attualmente sono su un droplet DigitalOcean da 5$ e ho letto informazioni sull’archiviazione a blocchi di DigitalOcean e su Amazon S3. Vedo le impostazioni S3 integrate nelle impostazioni di Discourse, quindi immagino che sia più semplice da configurare.

Cosa utilizzate per il vostro sito web? Quali offrono velocità di caricamento migliori, S3 o i blocchi di DigitalOcean? Quale opzione è più economica? La tier gratuita di S3 non la renderebbe più economica dei blocchi di DigitalOcean? Archivate le vostre immagini E i backup? O raccomandate un’altra opzione al di fuori di DigitalOcean e Amazon?

2 Mi Piace

Ciao,

Ci sono molti provider che offrono soluzioni di archiviazione compatibili con S3. Puoi utilizzare uno qualsiasi di questi. Ne ho provati alcuni e posso consigliare che Digital Ocean Spaces funziona egregiamente.

Se stai già ospitando su DO, ti consiglio di optare per Spaces, in quanto è veloce e affidabile.

Tuttavia, ci sono alcune preoccupazioni relative alla loro CDN, quindi potresti dover considerare una CDN di terze parti.

Consulta questo argomento per ulteriori informazioni:

1 Mi Piace

S3 è ovviamente la soluzione più matura e collaudata, ma dal punto di vista dei prezzi l’offerta di DO potrebbe avere senso per la tua community.

Indipendentemente da ciò che scegli, devi assolutamente mettere una CDN davanti al bucket, quindi non dimenticarlo.

3 Mi Piace

Il piano gratuito di Cloudflare funzionerebbe come CDN davanti al bucket? Io li uso già con le impostazioni del mio dominio per la protezione gratuita DDoS.

Ho notato che DigitalOcean pubblicizza il servizio Spaces come più economico rispetto ad altri fornitori ben noti. Questo è sicuramente un vantaggio.

Poiché la CDN inclusa con DigitalOcean Spaces non funziona correttamente con Discourse, penso che sia meglio optare per uno degli altri fornitori nella tua lista. In questo modo non dovrò pagare sia per DigitalOcean Spaces che per un servizio CDN separato.

Pubblicherò questo messaggio qui, poiché Configure an S3 compatible object storage provider for uploads è impostato per eliminare tutte le risposte dopo un mese.

La mancanza di un content-encoding nell’implementazione del CDN di DO è sicuramente un peccato, ma si verifica solo quando si impostano tutti i parametri S3 all’interno di app.yml. Se questi parametri sono impostati nelle impostazioni del sito tramite la console di amministrazione web, DO serve le upload S3 solo tramite CDN, mentre le risorse del sito continuano a essere servite dalla fonte.

Sembra che questo sia intenzionale, poiché la variabile d’ambiente DISCOURSE_S3_CDN_URL, se impostata in app.yml, sovrascrive anche l’impostazione del CDN per le risorse, mentre la stessa impostazione, se dichiarata solo nelle impostazioni del sito, non lo fa?

Questa è un po’ inconsistente, ma consente di utilizzare il CDN di DO solo per le upload S3, senza danneggiare il sito:

Ci sono due modi per farlo:

  • dichiarare tutte le impostazioni S3 solo nelle impostazioni del sito
rails c
SiteSetting.s3_upload_bucket="<bucket_name>/<uploads_folder>"
SiteSetting.s3_backup_bucket="<bucket_name>/<backups_folder>"
SiteSetting.enable_s3_uploads=true
SiteSetting.s3_access_key_id="<key>"
SiteSetting.s3_secret_access_key="<secret_key>"
SiteSetting.s3_endpoint="https://<sfo2>.digitaloceanspaces.com"
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"
SiteSetting.backup_location="s3"
  • sovrapporre tutte le impostazioni S3 tranne DISCOURSE_S3_CDN_URL in app.yml e dichiarare il CDN di DO in SiteSetting.s3_cdn_url
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: <sfo2>
  DISCOURSE_S3_ENDPOINT: https://<sfo2>.digitaloceanspaces.com
  DISCOURSE_S3_ACCESS_KEY_ID: <key>
  DISCOURSE_S3_SECRET_ACCESS_KEY: <secret_key>
#  DISCOURSE_S3_CDN_URL: https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>
  DISCOURSE_S3_BUCKET: <bucket_name>/<uploads_folder>
  DISCOURSE_S3_BACKUP_BUCKET: <bucket_name>/<backup_folder>
  DISCOURSE_BACKUP_LOCATION: s3
rails c
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"

@falco se sei d’accordo con questo, posso aggiornare l’argomento wiki originale

1 Mi Piace

Non credo sia una buona idea.

  1. Tutti gli altri provider, persino AWS, richiedono una CDN. Offrire una CDN gratuita che non funziona è solo una stranezza; possiamo ignorarla e trattarla come un servizio di archiviazione oggetti standard.

  2. Non sono sicuro che il dettaglio dell’implementazione di impostare S3 CDN URL nel file yml e nelle impostazioni del sito, con conseguenti comportamenti diversi, sia qualcosa che vogliamo promuovere, dato che può essere corretto in qualsiasi momento.

Non l’ho testato, ma posso garantire che funziona con servizi CDN reali, come KeyCDN, Cloudfront, StackPath, ecc.

2 Mi Piace