Amazon S3での静的ホスティング-DNS構成


117

Amazon S3でホストしたい小さなWebアプリケーション(すべてクライアント側)に取り組んでいます。私はこれについていくつかのガイドを見つけ、自分自身でバケット(私のドメインと同じ名前)を作成し、それをWebサイトとして設定し、コンテンツをアップロードしました。

私が苦労しているところ、およびすべてのドキュメントが少し曖昧になり始めているところは、DNSを適切に構成する方法です。

レジストラ(123-reg)が提案できるのは、mydomain.com.s3.amazonaws.comを提供するWeb転送だけでした

何を設定する必要がありますか、どこで(つまり、123-reg / Amazon)クリーンなURLを取得できますか?


この質問が出されて以来、状況は変わりました。ルートドメインを使用してS#でサイトをホストできるようになりました。ウォークスルーについては、docs.aws.amazon.com
AmazonS3

回答:


248

ほとんどの作業はすでに完了しているようです。明確にするために、正しくセットアップされていることを確認するために、これらの手順をもう一度説明します。

  1. ドメイン名をバケット名として使用してs3バケットを作成します(サイトをexample.comまたはwww.example.comにする場合、バケット名はwww.example.comにする必要があります)

  2. コンテンツをs3バケットにアップロードします。Webサイトのインデックスファイルに一貫した名前を付けます(通常はindex.html)。404 Not Foundエラーのカスタムページをアップロードすることもできます。これを404.htmlと呼びます。一般の人が閲覧できるように、Webサイトのすべてのファイルに読み取り権限を与えます。バケットには追加の権限を与えず、内部のファイルのみを与えます。

  3. バケットをウェブサイトとして設定します。AWSコンソール(https://console.aws.amazon.com/s3/)では、バケットを選択し、[プロパティ]をクリックして、[ウェブサイト]タブを選択できます。[有効]をクリックして、インデックスドキュメントを "index.html"に、エラードキュメントを "404.html"に設定します。また、ウェブ経由のアクセスを許可するには、バケットにアクセス許可を設定する必要があります(http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html

  4. Webサイトの設定タブにある「エンドポイント」URLをメモします。これはあなたのウェブサイトが住んでいるところです。リンクを新しいウィンドウで開くと、Webサイトがそのまま表示されます。周りをクリックして、すべてが期待どおりに機能することを確認します。

以下のすべての手順でエンドポイントアドレスを使用する必要があります。通常のwww.example.com.s3.amazonaws.comは機能しません-地域バージョンを使用する必要があります(http://www.example.com.s3-website-us-east-1.amazonaws.com/

これで、DNSを設定して、クリーンなカスタムURLを取得できます。

まず、www.example.comをサイトにマッピングします。

DNSプロバイダーのツールを使用して(この場合は123-reg)、www.example.comをwww.example.com.s3-website-us-east-1.amazonaws.comにマップするCNAMEレコードを作成する必要があります

CNAMEは、www.example.comだけが必要な場合に必要な唯一のものです。また、ほとんどの人は「example.com」が機能することを望んでいるため、別のステップが必要です。

example.comは、ネイキッドドメインまたはドメインの頂点レコードと呼ばれることがよくあります。これが問題である理由は、CNAMEにすることはできないためです。CNAMEは「www」などのサブドメインでのみ機能します。これにより、s3を指すことがより困難になります。

通常のアプローチでは、サービスを使用して、example.comに送信されるすべての要求をwww.example.comを指すように自動的にリダイレクトします。これによりCNAMEレコードが取得され、サイトはs3から提供されます。

プレーンな古いDNSでは自動リダイレクトはできないため、別のサービスを使用する必要があります。一部のDNSプロバイダーは、DNSとともにこのサービスを提供しています(godaddyは提供していますが、amazon route53は提供していません。123-regについては不明です)。

DNSプロバイダーがそれを行わない場合、いくつかの無料サービスがあります。私が使用したのはhttp://wwwizer.com/naked-domain-redirectです -登録や支払いは必要ありません。

このタイプのサービスを使用するには、ネイキッドドメインのDNS「A」レコードを作成する必要があります。wwwizer.comサービスの場合、example.comが174.129.25.170を指すようにAレコードを作成する必要があります。それで全部です!

したがって、この設定では、ユーザーがブラウザにexample.comと入力すると、次のようになります。

  1. DNSクエリ:example.com-> 174.129.25.170(wwwizer.comのサービス)
  2. example.comの174.129.25.170へのHTTPリクエスト
  3. 174.129.25.170はexample.comをリダイレクトします-> www.example.com
  4. DNSクエリ:www.example.com-> CNAMEからwww.example.com.s3-website-us-east-1.amazonaws.comへ
  5. DNSクエリ:www.example.com.s3-website-us-east-1.amazonaws.com-> Amazon S3を指します
  6. www.example.comのHTTPリクエストがAmazon S3によって処理されるようになりました

楽しい!


2
そのすべての明快さを本当にありがとう!私は変更を加えました、それが適切なゲートになるのを待っているだけで、指が交差してすべてが機能します。
Merlin Mason

うーん、まだ機能していないようです。ここにDNS構成のスクリーングラブがあります-cl.ly/CP6U末尾 のドットは疑わしいようです。そこに追加しませんでした。ブラウザのURLの最後にドットが付いていると、バケットの不明なエラーが発生します。削除しようとしましたが、保存すると元に戻り、/で置き換えようとしましたが、無効なエラーが発生しました。これは123-regsエンドで問題になると思いますか?
Merlin Mason

こんにちはマーリン、ドメイン名(wpfill.me)を検索してみましたが、スクリーンショットにレコードが表示されません。123-regには個別の「公開」または「コミット」ステップがありますか?設定が有効になっていないようです。
secretmike

うーん、123-regに問題があるに違いないと思います。DNSレコードをリセットし、48時間待ってからそれが伝播するのを待ちましたが、それでも喜びはありません。次に、DNSホスティングをCloudflareに切り替えて、全体を20分で稼働させました:)ご協力ありがとうございます。本当に感謝しています!
Merlin Mason


1

バケット内のすべてのドキュメントを選択して右クリックし、[公開]を選択する必要があると思います。バケットで何かが変更されるたびに、これを行う必要があります。次に、通常はバケットを右クリックし、プロパティを選択し、右側のペインで権限を選択し、「Everyoneを「Grantee」として追加し、「リスト」権限のみを付与します。記事の残りの部分はすばらしいです。ネイキッドドメインに関する部分が役立ちました私の問題を解決します。また、ネイキッドドメインをS3内のwwwドメインにリダイレクトすることもできます。これは、おそらく最も簡単な方法です。ご協力ありがとうございます。

ティム


3
上記のようにバケットポリシーを適用する場合、この手動の手順は不要です。
tooluser 2014

1

2019年更新

今日の時点で、次のDNS設定がAWS S3静的ウェブサイトを機能させるために機能しました:

バケットマッピングのDNS設定


0

123-regコントロールパネルの[Advanced DNS]画面から

  • 最初に[Reset DNS]ボタンをクリックして、デフォルトの123-reg設定に戻します。

これは私に次のことを与えました。

DNS EntryType       PriorityTTLDestination/Target
*                 A                                 81.xx.xx.xx              
@               A                                 81.xx.xx.xx              
@               MX          10               xx0.123-reg.co.uk
@               MX          20               xx1.123-reg.co.uk

  • 次に、このエントリを追加しました

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

彼らのManage DNSガイドのpdfから、「@レコード」は「サブドメインのない最も純粋な形式のあなたのドメイン」、すなわちネイキッドドメインstackoverflow.comを指していると述べています

しかし、それは「*レコード」が何であるかについては言及していません。すべてのサブドメインをキャッチすることになると想定し、CNAMEレコードに乗る可能性があると考えましたが、これはそうではないようです。

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