Amazon S3 + お名前.comでサクッとWebサイトを作った

まず、今回作ったもの。自分のポートフォリオサイトです。
http://higan96.info/

作った経緯

AmazonのS3でサイト作ったら安くて簡単だった。

前提

AWSアカウントを持ってる
お名前.comでドメインを取得済み

手順

  1. Webサイト用にS3のバケットを作成
  2. 公開のためにバケットを設定
  3. バケットポリシーの追加
  4. HTMLファイルのアップロード
  5. Route53の設定
  6. お名前.comでDNSプロバイダ設定

もちろんお名前.comを使わないといけない理由はないので、そのあたりは適宜読み替えてください。

1.Webサイト用にS3のバケットを設定

まず取得したドメインとバケットは2つ作ります。
「Create Bucket」のボタンを押して、BucketNameに取得したドメイン名(example.comなど)を入力してRegionはTokyoに設定して「Create」ボタンで作成。同じ手順で今度はBucketNameに取得したドメインのサブドメイン名(www.example.com)で入力します。
これで「example.com」「www.example.com」のふたつのバケットが出来ました。「example.com」のバケットに公開するhtmlファイルをアップロードすることになります。

2.公開のためにバケットを設定

先ほど作った2つのバケットの設定を行っていきます。
「exapmle.com」バケットのプロパティStatic Website HostingでEnable website hostingでIndex Documentに「index.html」と入力、Error Documentに「error.html」と入力します。
(エラードキュメントは404FileNotFoundの時に表示されるので、内容はそれに準じたものにするのがよいでしょう。)
つぎに、「www.exaple.com」へのリクエストを「example.com」バケットへ転送する設定を行う。
「www.example.com」バケットのプロパティStatic Website HostingでRedirect all requests to another host nameで「example.com」を指定する。

3.バケットポリシーの追加

「exapmle.com」にだけバケットポリシーを追加。アップロードされたファイルをだれでも閲覧可能な状態にします。バケットポリシーは「example.com」プロパティのPermissionsのAdd bucket policyから追加。内容は表示されたEditorのSample Bucket Policiesの中のGranting Permission to Anonymous Userをコピペして「bucket/」の部分を「example.com」に変えます。
f:id:higan_n:20131105213325p:plain

4.HTMLファイルのアップロード

index.htmlとerror.htmlを「example.com」のバケットにアップロードします。

5.Route53の設定

HostedZonesを作成

HostedZones→CreateHostedZone→取得したドメイン「exmple.com」を入力(必要ならコメントも)→CreateHostedZoneをクリックして作成を実行。

Aレコードを作成

「Alias」は「yes」に。
「Alias Target」S3WebsiteEndpointsから選択。ここではルートドメイン名の「exapmle.com」を選択。
f:id:higan_n:20131105213353p:plain

CNAMEレコードを作成

「Name」に「www.example.com」を設定。
「Value」に「exmple.com」のEndpoint URLを設定。

6.お名前.comでDNSプロバイダ設定

作成されるとDelegation Setとして4つのネームサーバーが割り当てられるので、これをお名前.comで設定します。

お名前.com→ネームサーバーの変更→「他のネームサーバーを利用」を選択→4つのネームサーバーを入力して設定を保存。





以上で終了。

Amazon Web Services クラウドデザインパターン実装ガイド

Amazon Web Services クラウドデザインパターン実装ガイド