Amazon S3 でリダイレクト(301 redirect)を設定してみたよ

[2014.9.28追記]
記事初出時よりS3を使ったリダイレクトをテスト運用していましたが、本日をもってテスト運用終了しました。下記にある http://aws.tecking.org/ から https://www.tecking.org/wordpress/ へのリダイレクトはできなくなっているのでご留意ください。


「月額10円~でレンタルサーバー」というふれこみでいっときWeb界隈がどよめいたAmazon Web Serviceの一つ『Amazon S3』(以下S3)。そのサービスにこのほどリダイレクト機能が追加されたということで、S3の学習も兼ねて(実は今回初めてAWS使った)リダイレクトの設定をしてみました。

ゴールと要件はこんな感じです。

  • S3へのアクセスをhttps://www.tecking.org/wordpress/にリダイレクトする
  • S3側には独自ドメインのURL(http://aws.tecking.org/)でアクセスできるようにする
  • サブドメインの設定はDNS(ムームーDNS)で行なう(2012年10月にこんな障害も起きてますがキニシナイ)

ではでは、進めていきましょう。

AWSのアカウントを取得したら(手順はググってみてくださいね)コンソールより[S3]を選択。

最初は中身が空っぽなので、Bucket(いわゆるホームページ領域)を作ります。

「Bucket Name」にリダイレクト元のホスト名(FQDN)、「Region」にTokyoと入力して[Create]をクリック。独自ドメインでS3を運用するときは「Bucket Name」をホスト名と合わせる必要があるので注意です。

Bucketができたらリダイレクトに必要なファイル(index.html)をアップロードします。index.htmlは内容なし(0バイト)でOKです。

index.htmlを右クリックし[Properties]を選択。

[Metadata]タブにて[Add more metadata]を選択します。

「Key」として[Website Redirect Location」を選び、「Value」にリダイレクト先のURLを入力したのち保存。

こんどは、作ったBucketを右クリックして[Properties]を選択。

[Permissions]タブにて[Add bucket policy]をクリック。

以下のコードをペーストします。「example-bucket」の箇所を作ったBucket名に置き換えて保存してください。

{
  "Version":"2008-10-17",
  "Statement":[{
	"Sid":"PublicReadForGetBucketObjects",
        "Effect":"Allow",
	  "Principal": {
            "AWS": "*"
         },
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::example-bucket/*"
      ]
    }
  ]
}

[Website]タブをクリックして、「Enabled」にチェック、「Index Document」にindex.htmlと入力して保存。これでBucketのウェブサイト機能が有効化されます。「Endpoint」欄のURL(=いま作ったサイトのデフォルトURL)はDNSの設定で必要になるので、適宜コピーしておきましょう。

あとは独自ドメインとEndpointの紐付けだけです。ムームーDNSの設定画面にアクセスし、「サブドメイン」にawsを、「内容」に前述したEndpointのホスト名(FQDN)を入力して保存します。

以上で、S3から当サイトへのリダイレクト設定完了です。http://aws.tecking.org/にアクセスしたところ、こんな感じで301のステータスが返ってきました。

[謝辞]
この記事を書こうと思ったのは、@hikobey_GORIさんのツイート

とのやりとりがきっかけでした。たとえばFacebookページでライトな感じのサイトを立ち上げたいんだけど、名刺とかにhttps://www.facebook.com/examplepageって書くの長いじゃん!というとき、独自ドメインでアクセスしてもらう方法もアリなんじゃないかなーと思ったわけです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です