はじめに
AWSを使って、独自ドメインを使用し、S3などのサービスに適用させる方法を調べた。
Route53 を使用してドメインを取得管理する
すでに取得しているドメインを移管することもできるようだが、この記事では、Route53サービス内でドメインを購入し、管理する方法を説明する。
Route53でドメイン購入
まずは、Route53サービスにログインし、register domain に進む
どのドメインを買うかを決めるため、購入したいドメイン名を調べる画面に遷移する。購入したいドメイン名を入力し、ドロップダウンから買いたいドメインを指定する。
空きがある場合は、Available(利用可)と表示され、無い場合は Unavailable(利用不可)と表示される。AvailableのものをAdd to cart でカートに入れて次に進む
続いて個人情報を入力するページに移動するので、情報を入力していく。ここでは、Person(個人)での購入例を挙げる
確認用メールが来るので、正しい情報を入力する必要がある。
なお、個人でのドメイン取得の場合、WHO IS で個人情報が開示されないよう、最後にPrivacy Protection という項目がある。こちらをEnable(有効)にすることで、公開代行を行ってくれるので個人情報が出ないようにできる。
情報を入力して次の画面に進むと、規約の同意と本人確認のステータスが表示される。登録したメールアドレスに確認用メールが届くはずなので、メール内のリンクをクリックする。ページが表示され、本人確認が行わる。正常に終わると購入を行う事ができる。
購入後、Route53の管理画面にはドメイン名が表示されるが、ステータスが登録進行中になる。しばらく経ち、正常に登録されると、successful にかわり使用可能になる。
S3に独自ドメインを割り当てて静的webサイトを構築する
次に、S3サービスにバケットを作成し、静的サイトを作成する。まず、S3にアクセスし、バゲットを作成。この際、バケットの名前は表示したいドメイン名と合わせる。
とりあえず、独自ドメインの疎通までしたいので、作成したバケットにindex.htmlのみをアップする。中身は表示のテスト用なので何でも良い。
アップしたファイルは取りあえず公開ステータスに変えておく。
もし、以下のようなアクセス拒否が表示された場合は、アクセスコントロールリスト(ACL)を変更する。
おそらくACLの二つがTrueステータスになっているので、編集からこれらのステータスをチェックを外した状態(False)に変更する
これで公開にはできるが、リンクを踏んでも表示されないので、ウェブサイトホスティングをONにする。バケットのプロパティにStatic Website hostingがあるのでクリック
このバケットを使用してウェブサイトをホストする を選択し、インデックスドキュメントにindex.htmlを入力。(別にindex.htmlでなくても良いが)なお、元から薄い文字で表示されてるが、実際に入力しないと保存はできない。
ここまでできたら、最初にあげたindex.htmlを表示して、下部に表示されているリンクをクリック。アップしたindex.html の内容が表示されればOK
Route53でS3のバケットのエイリアスを登録する
購入したドメインをかぶせるために、Route53に戻る。
管理画面のDashboard > Hosted zones をクリックし、購入したドメインをクリック。すると、上に Create Record Set が表示されるのでクリック
入力fieldが表示されるので、必要項目を入力していく。
取得したドメイン名をそのまま使いたい場合は、Nameのfieldには何も入れない。サブドメインを使用したい場合は、入力を行うが、S3でサブドメインを使いたい場合は、バケットの名前をサブドメインを含めた名前にする必要がある。
Typeは、IPv6でも良いのかもしれないが、iPv4 addressのAタイプを指定した。
次にAliasの設定を行う。yes のラジオボタンをクリックすると、Alias target のfieldが出てくるので、クリックする。
fieldの下にS3 Website Endpoints と出て先ほど設定したS3のバケット名が出てくるので選択。バケット名と異なると出てこないので、出てこない場合はS3のバケット名とにらめっこ。問題なければ、createを押して作成。
無事に作成されたら http://ドメイン名 でアクセス。S3にアップロードした、index.htmlの内容が表示されるはず。
もしindex.htmlが表示されない場合は、Route53でS3のバゲット選択ができていればS3側のアクセスの問題を疑うとすんなり行くかもしれない。