S3のRedirection Rulesを使ってみる[cloudpack大阪ブログ]

f:id:itanami5885:20160521230508p:plain
ちょっとS3を最近さわっていないので忘れないように復習してた所、Redirection Rulesの設定を試してみたので設定方法の備忘録です。

今回は「foo/」にアクセスしたら「bar/」にリダイレクトするよう設定します。

前提条件

・S3よりBuketを作成しておく
・Webサイトのホスティングを有効にしておく
 →インデックスドキュメントとエラードキュメントも設定

確認の流れ

まずはBuketよりプロパティを開いて静的ウェブサイトホスティングを選択
f:id:itanami5885:20160521173002j:plain

リダイレクトルールを編集するを選択してテキストエリアにルールを記載して保存する
<ルール内容>

<RoutingRules>
 <RoutingRule>
  <Condition>
   <KeyPrefixEquals>foo/</KeyPrefixEquals>
  </Condition>
  <Redirect>
   <ReplaceKeyPrefixWith>bar/</ReplaceKeyPrefixWith>
  </Redirect>
 </RoutingRule> 
</RoutingRules>

f:id:itanami5885:20160521174735j:plain

設定したら実際に試してみます。
curlコマンドにて「foo/」が「bar/」にリダイレクトされている事がわかります。

コマンド:curl -I http://<エンドポイント>/foo/

f:id:itanami5885:20160521175302j:plain

次に事前にエラー用のhtmlファイルも設定してましたが404エラーが発生した際のリダイレクト設定を行います。
→Buketに404用のhtmlファイルを追加しておきます

Redirection Rulesに下記を追加します。
<追加ルール>

<RoutingRule>
 <Condition>
  <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
 </Condition>
 <Redirect>
  <ReplaceKeyWith>404.html</ReplaceKeyWith>
 </Redirect>
</RoutingRule>

設定後にcurlコマンドで404エラーがリダイレクトされている事を確認します。
<変更前>
f:id:itanami5885:20160521184758j:plain

<変更後>
f:id:itanami5885:20160521185121j:plain

今回S3の環境を構築したのでDNS設定してCloudFrontと連携させてみようと思います。