1. ホーム
  2. dns

[解決済み] Amazon S3での静的ホスティング - DNSの設定

2022-08-16 10:20:59

質問

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

私が苦労しているところ、そしてすべての文書が少し曖昧になり始めるところは、DNSを適切に構成する方法です。

すべての私のレジストラ ( 123-reg ) が提案したのは、mydomain.com.s3.amazonaws.com が得られる Web 転送だけでした。

何を設定すればよいのでしょうか。また、どこで (すなわち 123-reg / Amazon) きれいな URL を取得できるのでしょうか。

どのように解決するのですか?

すでにほとんどの作業を終えているようですね。 念のため、これらの手順をもう一度確認します。

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

  2. s3バケットにコンテンツをアップロードします。 ウェブサイトのインデックスファイル(通常はindex.html)には統一した名前を選びましょう。 404 Not Found エラー用のカスタム ページをアップロードすることもできます。 これを404.htmlと呼びます。Webサイト内のすべてのファイルに読み取り権限を与え、一般の人が閲覧できるようにします。 バケツには余分なパーミッションを与えず、中のファイルだけに与えます。

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

  4. ウェブサイト設定タブの "エンドポイント" URL をメモしておいてください。 これは、Web サイトが存在する場所です。 新しいウィンドウでリンクを開くと、あなたの 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)、www.example.com を www.example.com.s3-website-us-east-1.amazonaws.com にマップするためにCNAMEレコードを作成する必要があります。

www.example.com が欲しいだけなら、CNAME は必要な唯一のものです。 ほとんどの人は、"example.com"も動作させたいので、もう1つのステップが必要なのです。

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. 174.129.25.170 に example.com の 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 によって提供されるようになりました。

お楽しみに!