

Rails6で作成したサイトをHerokuを使って表示しております。  
画像はAmazon S3を利用しております。

サイト上の画像urlは下記になります。  
`https://www.example.com/rails/active_storage/・・・・/curry.jpeg`

画像urlにアクセスすると下記のAmazon S3のurlに転送されます。  
`https://example.s3.ap-northeast-1.amazonaws.com/variants/・・・・・`

Amazon S3のアドレスを `https://www.example.com/` から始まるurlに変更可能でしょうか？

静的サイトでは、CloudFrontとRout53を用いて変更可能なようです。

Herokuを利用した、動的サイトで変更する方法はありますでしょうか？  
もしくはurlを変更するにはAmazon S3ではなく他のstorage serviceを利用することになりますか？


CC BY-SA 4.0
2023-01-02T23:46:38.427
93155
2023-01-03T07:38:44.617
2023-01-03T07:37:35.073
3060
37468
question
heroku amazon-s3
動的サイトでのAmazon S3のURLの変更


> Amazon S3のアドレスを <https://www.example.com/> から始まるurlに変更可能でしょうか？

S3だけではできません。他のサービスを前段に配置すれば、エンドポイントのURLをカスタマイズできます。CloudFrontがよく利用されます。（後述します）

> 静的サイトでは、CloudFrontとRout53を用いて変更可能なようです。  
>  Herokuを利用した、動的サイトで変更する方法はありますでしょうか？

Herokuの知見がないので、一般的な観点から回答します。

クラウドでWebアプリをホスティングする際、静的コンテンツと動的コンテンツで構成を分けることはよくあります。今回に当てはめると、次の構成が考えられます。

  * 画像（静的コンテンツ）: CloudFront + S3
  * Railsアプリ（動的コンテンツ）: Heroku

具体的には、CloudFrontに代替ドメイン名`www.example.com`を追加して、HerokuでホスティングしたRailsアプリから`https://www.example.com/...`で参照すればよいのではないでしょうか。

[CloudFront ディストリビューションでのさまざまなオリジンの使用 - Amazon
CloudFront](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html#using-s3-as-
origin)

[代替ドメイン名 (CNAME) を追加することによるカスタム URL の使用 - Amazon
CloudFront](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html)

Herokuで関連しそうなドキュメントがありました。（Herokuでは静的コンテンツのことを「静的アセット」と呼んでいるようです）

[Amazon CloudFront CDN の使用 | Heroku Dev
Center](https://devcenter.heroku.com/ja/articles/using-amazon-cloudfront-cdn)


CC BY-SA 4.0
2023-01-03T01:02:58.947
93158
2023-01-03T07:38:44.617
2023-01-03T07:38:44.617
3060
4982
93155
answer