Amazon Route53 DNSおよびS3を使用したワイルドカードサブドメイン(* .example.com)


12

DNSにはAmazon Route53、htmlファイルにはS3を使用して、静的なウェブサイトをホストしています。正常に動作しています。

現在の設定は次のとおりです。

example.com.  A   ALIAS s3-website-us-east-1.amazonaws.com. 
www.example.com. CNAME www.example.com.s3-website-us-east-1.amazonaws.com

(注:example.comとwww.example.comはS3バケットです。HTMLファイルはexample.comバケットにあります。)

今、私はこのようなワイルドカードサブドメインを追加したい-これは私が試したことです:

*.example.com. CNAME  www.example.com.s3-website-us-east-1.amazonaws.com

このアイデアは、anything.example.comを使用してWebサイトに正しく解決することです。しかし、これは機能していないようです。そのため、Webサイト:joker.example.comにアクセスすると、ブラウザにエラーメッセージが表示されます。

Code: NoSuchBucket
Message: The specified bucket does not exist
BucketName: joker.example.com

回答:


10

@ edvinas.meの答えは正しいです。バケットのCloudfrontディストリビューションを作成する必要があります。

cloudfrontディストリビューションを作成するときに、代替ドメイン名オプションを* .example.comに設定します。

次に、d3lt3rsz2leycm.cloudfront.netのようなcloudfrontのURLを使用します。

これで、次のようにワイルドカードサブドメインを追加できます。

*.example.com. CNAME  3lt3rsz2leycm.cloudfront.net.    

そして動作するはずです。


1

Amazon S3はホスト名を使用してバケット名を決定します。

http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

ホスト名は、Host:ヘッダーでブラウザから送信された値の小文字です。複数のホスト名に応答するようにバケットを設定する方法はありません。

実行しようとしていることに応じて、これを達成するいくつかの迂回方法がありますが、HAProxy、Varnish、Apache、または同様のものを実行するEC2インスタンスが必要で、ワイルドカードホスト名のリクエストにリダイレクトして応答しますブラウザのアドレスバーを実際のホスト名/バケット名に書き換えるか、リクエストヘッダーを変更してリクエストをS3にプロキシします。S3とEC2の間にデータ転送料金は発生しないため、非効率ではありません。領域、およびレイテンシーは低いです。


1

S3バケットは、example.com(および/またはwww.example.com)のリクエストのみを受け入れるように設定されています。バケットを受け入れたり、アクティブにする特定のサブドメインを構成することはできません。

これを達成できる唯一の方法は、リクエストをプロキシするCloudfront http://aws.amazon.com/cloudfront/などの外部サービスを使用することです。

Michael(sqlbot)の回答は、これをさらに詳しく説明しているようです。


3
それを行う方法-質問自体です。
ジャスパー14年

設定はサポートされていないため、外部サービスを使用する必要があります。
フープ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.