Digitalocean Block Storage im Vergleich zu Amazon S3

Ich habe vor dem Neuaufbau meines Containers bei der Installation eines Discourse-Plugins eine Warnung bezüglich des Speicherplatzes in der Befehlszeile erhalten. Ich musste einige Befehle ausführen, um ältere Linux-Versionen auf meinem DigitalOcean-Droplet zu entfernen, aber meine SSD-Kapazität liegt immer noch über 50 %.

Da meine Discourse-Website gewachsen ist, habe ich mich mit Speicherlösungen beschäftigt. Ich befinde mich derzeit auf einem 5-Dollar-DigitalOcean-Droplet und habe mich über DigitalOcean Block Storage und Amazon S3 informiert. Da ich die S3-Einstellungen direkt in den Discourse-Einstellungen sehe, vermute ich, dass diese einfacher einzurichten sind.

Was verwenden Sie für Ihre Website? Welche Option bietet schnellere Ladezeiten: S3 oder DigitalOcean Block Storage? Welche Option ist günstiger? Würde das kostenlose Angebot von S3 es nicht günstiger machen als DigitalOcean Block Storage? Speichern Sie sowohl Ihre Bilder als auch Ihre Backups? Oder empfehlen Sie eine andere Option außerhalb von DigitalOcean und Amazon?

2 „Gefällt mir“

Hallo,

Es gibt viele Anbieter, die S3-kompatible Speicherlösungen anbieten. Du kannst einen davon verwenden. Ich habe einige ausprobiert und kann empfehlen, dass Digital Ocean Spaces hervorragend funktioniert.

Wenn du bereits bei DO hostest, würde ich Spaces empfehlen, da es schnell und zuverlässig ist.

Allerdings gibt es einige Bedenken hinsichtlich ihres CDNs, sodass du möglicherweise eine CDN-Lösung eines Drittanbieters in Betracht ziehen musst.

Weitere Informationen findest du in diesem Thema:

1 „Gefällt mir“

S3 ist offensichtlich die ausgereiftere und besser getestete Lösung, aber preislich kann das Angebot von DigitalOcean für deine Community sinnvoll sein.

Egal wofür du dich entscheidest, du musst ein CDN vor den Bucket schalten, also vergiss das nicht.

3 „Gefällt mir“

Würde der kostenlose Tarif von Cloudflare als CDN vor dem Bucket funktionieren? Ich nutze sie bereits mit meinen Domäneneinstellungen für den kostenlosen DDoS-Schutz.

Mir ist aufgefallen, dass DigitalOcean bewirbt, dass ihr Spaces-Service günstiger ist als bei anderen bekannten Anbietern. Das ist definitiv ein Pluspunkt.

Da das mit DigitalOcean Spaces gelieferte CDN nicht korrekt mit Discourse funktioniert, denke ich, dass ich einfach einen der anderen Anbieter aus deiner Liste wählen sollte. So muss ich nicht sowohl für DigitalOcean Spaces als auch für einen separaten CDN-Service bezahlen.

Ich poste dies hier, da unter Configure an S3 compatible object storage provider for uploads alle Antworten nach einem Monat gelöscht werden.

Ein fehlender Content-Encoding in der DO-CDN-Implementierung ist definitiv ärgerlich, tritt jedoch nur auf, wenn alle S3-Parameter in app.yml gesetzt werden. Wenn diese Parameter über die Web-Admin-Konsole in den Site-Einstellungen gesetzt werden, bedient DO die S3-Uploads nur über das CDN, während die Site-Assets weiterhin von der Quelle bereitgestellt werden.

Es scheint, dass dies beabsichtigt ist, da die Umgebungsvariable DISCOURSE_S3_CDN_URL, wenn sie in app.yml gesetzt ist, auch die CDN-Einstellung für Assets überschreibt, während dieselbe Einstellung, wenn sie nur in den Site-Einstellungen deklariert wird, dies nicht tut?

Das ist etwas inkonsistent, ermöglicht aber die Nutzung des DO-CDN nur für S3-Uploads, ohne die Site zu beschädigen:

Es gibt zwei Möglichkeiten, dies zu tun:

  • Alle S3-Einstellungen nur in den Site-Einstellungen deklarieren
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"
  • Alle S3-Einstellungen außer DISCOURSE_S3_CDN_URL in app.yml spiegeln und DO-CDN in SiteSetting.s3_cdn_url deklarieren
  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, wenn du dem zustimmst, kann ich das ursprüngliche Wiki-Thema aktualisieren.

1 „Gefällt mir“

Ich denke nicht, dass das eine gute Idee ist.

  1. Alle anderen Anbieter, sogar AWS, erfordern ein CDN. Dass DO ein kostenloses, aber defektes CDN anbietet, ist nur eine Eigenart. Wir können es ignorieren und es wie einen Standard-Objektspeicherdienst behandeln.

  2. Ich bin mir nicht sicher, ob es sinnvoll ist, die Implementierungsdetails zu fördern, bei denen das Setzen von S3 CDN URL in der YAML-Datei und in den Site-Einstellungen zu unterschiedlichem Verhalten führt, da dies jederzeit behoben werden kann.

Ich habe es nicht getestet, aber ich kann bestätigen, dass es mit echten CDN-Diensten wie KeyCDN, Cloudfront, StackPath usw. funktioniert.

2 „Gefällt mir“