web-dev-qa-db-ja.com

Amazon S3での静的ホスティング-DNS設定

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

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

私のレジストラ( 123-reg )は、mydomain.com.s3.amazonaws.comを提供するWeb転送のみを示唆していました。

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

113
Merlin Mason

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

  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/

これで、クリーンでカスタムURLを提供するようにDNSをセットアップできます。

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

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

Www.example.comが必要な場合は、CNAMEのみが必要です。また、ほとんどの人は「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 to 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によって処理されるようになりました

楽しい!

239
secretmike

バケット内のすべてのドキュメントを選択して右クリックし、[公開]を選択する必要があると思います。バケット内で何かが変更されるたびに、これを行う必要があります。次に、通常、バケットを右クリックし、プロパティを選択し、右側のペインで権限を選択し、「全員を「付与者」として追加し、「リスト」権限のみを付与します。記事の残りの部分は優れています。 「静的ウェブサイトホスティング」でS3内のネイキッドドメインをwwwドメインにリダイレクトすることもできます。おそらく最も簡単な方法です。

ティム

1
Tim

2019年更新

今日の時点で、DNS設定に従ってAWS S3静的ウェブサイトが機能するようになりました。

DNS setting for bucket mapping

0
zennni

123-regコントロールパネルの[詳細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 guide pdf から、「@レコード」は「サブドメインのない最も純粋な形式のドメイン」、つまりネイキッドドメインstackoverflow.com

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

0
Paul Rowland