ほとんどの作業はすでに完了しているようです。明確にするために、正しくセットアップされていることを確認するために、これらの手順をもう一度説明します。
ドメイン名をバケット名として使用してs3バケットを作成します(サイトをexample.comまたはwww.example.comにする場合、バケット名はwww.example.comにする必要があります)
コンテンツをs3バケットにアップロードします。Webサイトのインデックスファイルに一貫した名前を付けます(通常はindex.html)。404 Not Foundエラーのカスタムページをアップロードすることもできます。これを404.htmlと呼びます。一般の人が閲覧できるように、Webサイトのすべてのファイルに読み取り権限を与えます。バケットには追加の権限を与えず、内部のファイルのみを与えます。
バケットをウェブサイトとして設定します。AWSコンソール(https://console.aws.amazon.com/s3/)では、バケットを選択し、[プロパティ]をクリックして、[ウェブサイト]タブを選択できます。[有効]をクリックして、インデックスドキュメントを "index.html"に、エラードキュメントを "404.html"に設定します。また、ウェブ経由のアクセスを許可するには、バケットにアクセス許可を設定する必要があります(http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)
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と入力すると、次のようになります。
- DNSクエリ:example.com-> 174.129.25.170(wwwizer.comのサービス)
- example.comの174.129.25.170へのHTTPリクエスト
- 174.129.25.170はexample.comをリダイレクトします-> www.example.com
- DNSクエリ:www.example.com-> CNAMEからwww.example.com.s3-website-us-east-1.amazonaws.comへ
- DNSクエリ:www.example.com.s3-website-us-east-1.amazonaws.com-> Amazon S3を指します
- www.example.comのHTTPリクエストがAmazon S3によって処理されるようになりました
楽しい!