# DigitalOcean 블록 스토리지 vs Amazon S3

**URL:** https://meta.discourse.org/t/digitalocean-block-storage-vs-amazon-s3/158290
**Category:** Self-hosting
**Tags:** hosting
**Created:** [7월 20, 2020, 4:54오후 UTC](https://meta.discourse.org/t/digitalocean-block-storage-vs-amazon-s3/158290 "2020-07-20T16:54:33Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![md-misko](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/md-misko/32/126315_2.png) [@md-misko](https://meta.discourse.org/u/md-misko)
#### Post date: [7월 21, 2020, 8:06오전 UTC](https://meta.discourse.org/t/digitalocean-block-storage-vs-amazon-s3/158290/5 "2020-07-21T08:06:02Z")

</div>

> [@Bill](#):
>
> DigitalOcean Spaces에 포함된 CDN이 Discourse와 제대로 작동하지 않기 때문에, 목록에 있는 다른 제공업체 중 하나를 사용하는 것이 좋겠다고 생각합니다. 그렇게 하면 DigitalOcean Spaces와 별도의 CDN 서비스에 대해 이중으로 비용을 지불할 필요가 없게 됩니다.

[Configure an S3 compatible object storage provider for uploads](https://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916) 은 한 달 후 모든 답변이 삭제되도록 설정되어 있으므로, 여기에도 이 내용을 공유합니다.

> [@Falco](#):
>
> > [@md-misko](#):
> >
> > @Falco 이 CDN 오류에 대해 구체적인 내용을 공유해 주실 수 있나요?
> 
> [여기](https://www.digitalocean.com/docs/spaces/how-to/set-file-metadata/)에 문서화된 내용입니다:
> 
> > 경고
> > 
> > 알려진 문제점으로 인해 `Content-Encoding`과 같은 파일 메타데이터 헤더가 CDN을 통과하지 않습니다. 오리지널 서버에서 콘텐츠를 직접 가져올 때만 메타데이터 헤더가 올바르게 설정됩니다.
> 
> content-encoding이 누락되면 모든 brotli 인코딩된 자산이 깨집니다.
> 
> 즉, 그들의 Object Storage 서비스는 사용할 수 있지만, 캐싱용 CDN은 다른 제공업체에서 찾아야 합니다.

DO CDN 구현에서 content-encoding이 누락되는 것은 분명히 아쉬운 점이지만, 이는 `app.yml` 안에 _모든_ S3 매개변수를 설정할 때만 발생합니다. 이러한 매개변수가 웹 관리 콘솔을 통해 사이트 설정에서 설정되면, DO는 S3 업로드만 CDN을 통해 서빙하고 사이트 자산은 여전히 소스에서 서빙됩니다.

`app.yml`에 설정된 경우 `DISCOURSE_S3_CDN_URL` 환경 변수가 자산의 CDN 설정도 덮어쓰지만, 사이트 설정에서만 선언된 경우 그렇지 않은 것 같으므로, 이는 의도된 동작인 것으로 보입니다.

이것은 다소 일관성이 없으나, 사이트가 깨지지 않도록 DO CDN을 S3 업로드에만 사용할 수 있게 해줍니다:

이를 수행하는 두 가지 방법이 있습니다:

- _모든_ S3 설정을 사이트 설정에만 선언

```plaintext
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"

```

- `app.yml`에서 `DISCOURSE_S3_CDN_URL`을 제외한 모든 S3 설정을 섀도(shadow)하고, DO CDN을 `SiteSetting.s3_cdn_url`에 선언

```plaintext
  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

```

```plaintext
rails c
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"

```

@falco 이 의견에 동의하신다면 원래 위키 토픽을 업데이트할 수 있습니다.

---

_[View the full topic](https://meta.discourse.org/t/digitalocean-block-storage-vs-amazon-s3/158290)._
