【AWS】Amazon S3 ~ リダイレクト機能 ~

 ■ はじめに

 * Webサイト移転してリダイレクトするだけEC2があるのだが、
   セキュリティ/OS・サーバの更新など、管理を減らすために、別の方法を考えていたら、
   S3でもできるらしいのでメモ。

http://aws.typepad.com/aws_japan/2012/10/amazon-s3-support-for-website-redirects.html

 補足

 * アクセスログも出力可能
 * リダイレクションだけでなく、
   静的ファイルならサーバ(静的なウェブサイトのホスティング機能)としても使用可能

 ■ リダイレクト機能

方法は以下の2通り 
[1] リダイレクションルールを利用する
[2] ウェブページリダイレクトを利用する

[1] リダイレクションルールを利用する

 方法A

[A-1] AWSマネジメントコンソールにログインし、S3 の画面を表示する
[A-2] S3のバケットを作成する
[A-3] [プロパティ]-[Static Website Hosting]で、
     「リクエストをリダイレクトする」を選択
[A-4] 以下を入力し、「保存」ボタン押下
 + ターゲットバケットまたはドメイン:リダイレクト先(今回は「blogs.yahoo.co.jp/xxxx」)
 + プロトコル:http または https(今回は「https」)
[A-5] 「curl -I http://【対象URL】」で動作確認

 方法B

[B-1] AWSマネジメントコンソールにログインし、S3 の画面を表示する
[B-2] S3のバケットを作成する
[B-3] [プロパティ]-[Static Website Hosting]で、
     「このバケットを使用してウェブサイトをホストする」を選択し
     「リダイレクトルール」欄に以下の「サンプル」を参考に追記し、
     「保存」ボタン押下
[B-4] 「curl -I http://【対象URL】」で動作確認

サンプル : blogs.yahoo.co.jp/xxxx/ にリダイレクションする例

<RoutingRules>
    <RoutingRule>
        <Redirect>
            <HostName>blogs.yahoo.co.jp</HostName>
            <ReplaceKeyWith>xxxx/</ReplaceKeyWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>

構文は以下を参考にする
http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects

 方法A と 方法B との違い

例えば、リダイレクト元「blog1.yahoo.com」でリダイレクト先「blogs.yahoo.co.jp/xxxx」だった場合
https://blog1.yahoo.com/yyy で動きが異なる

 * 方法A : リダイレクト先「blogs.yahoo.co.jp/xxxx/yyy」 <= 「yyy」が残る
 * 方法B : リダイレクト先「blogs.yahoo.co.jp/xxxx/」

 ■ 注意

[1] SSL(https)通信でのリダイレクションは、AWS Certificate Manager / CloudFront も必要になってくる
  => AWS Certificate Manager / CloudFront については、以下の関連記事を参照のこと。

https://blogs.yahoo.co.jp/dk521123/37288386.html

 参考文献

https://dev.classmethod.jp/cloud/aws/amazon-s3-redirect-website/
https://dev.classmethod.jp/cloud/aws/route-53-zone-apex-s3-redirect/
https://qiita.com/youcune/items/669f60a23948c0e2a7ec
https://qiita.com/gucchon/items/4450351b806523c38c5d

ウェブページリダイレクト

https://engineer.blog.lancers.jp/2017/07/aws_s3_redirect/

 公式サイト

S3 バケットによりホストされたウェブサイトへのリクエストを別のホストにリダイレクトする方法 

http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/redirect-website-requests.html

(オプション) ウェブページリダイレクトの設定 

http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/how-to-page-redirect.html

アクセスログ 

http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/LoggingWebsiteTraffic.html

 関連記事

Amazon S3 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/03/06/212734
Amazon CloudFront ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/12/18/233136