https://s3.amazonaws.com/static.my-company.com/media/my-file.jpg
の代わりに、https://static.my-company.com/media/my-file.jpg
としてください。どうやってやるの?
は、ここでは、3つの別々の問題があります。
バケットのWebサイトホスティング機能を有効にすると、別の答えで@Deifが示されているので、別名またはCNAMEを使用してルート53のホスト名をバケットのWebサイトエンドポイントに指定できます。しかし、HTTPSはサポートしていません。
HTTPSは、Webサーバがブラウザのアドレスボックスに1に一致するホスト名を含んでSSL(TLS)証明書を使用してブラウザに自身を識別することが必要です。 RESTエンドポイントのS3証明書は、s3.amazonaws.com
のさまざまな順列と一致します。それらはあなたのドメインと一致しません。
SSL証明書が必要です。既に持っている場合は、us-east-1地域のAmazon Certificate Manager(ACM)にアップロードしてください。 ¹もしそうでなければ、ACMはあなたのために無料で作成することができます。
次に、上記ACM証明書を使用して、オリジナル・サーバーとしてあなたのウェブサイトのエンドポイントのホスト名を使用して、代替ドメイン名としてサブドメインを使用して、新しいCloudFrontの分布を作成します。
その後、CloudFrontの分布にルート53のあなたのサブドメインを指します。
さて、https://subdomain.example.com/pics/funny/cat.jpg
はSSLを提供し、適切なバケットからコンテンツをフェッチCloudFrontのに行きます。
なぜCloudFrontが必要ですか?これは、S3でSSLを有効にしたカスタムドメイン名を使用するための正式な解決策です。 S3はその機能をネイティブにサポートしていません。 CloudFrontを使用するとコストがかかりますが、S3自体のコストが大幅に削減されます。 CloudFrontを通じてダウンロードが行われると、S3はダウンロードに使用された帯域幅に対して$ 0を請求し、代わりにCloudFrontが帯域幅を請求します。帯域幅のCloudFront価格は多くの場合低くなります(おそらく、CloudFrontは輻輳を緩和するためにCloudFrontを水平に拡張できますが、S3は垂直方向にのみ拡張できますが、これは設計上の制約があります)。
¹ ACMでは、us-east-1
領域は関係なく、常にバケットの場所のCloudFrontのは、東-1私たちの外で管理されているので、私はここで説明するセットアップのために使用され、我々はCloudFrontをにアクセスできるように、この証明書が必要。
これはHTTPSをサポートしておらず、 'us-east-1'はバケットが作成された地域によって異なります。バケットの正しいエンドポイントは[コンソール](http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html)にあります。 –