【AWS】Amazon S3 ~ リダイレクト/Webホスティング ~

 ■ はじめに

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

また、リダイレクションだけでなく、
静的ファイルならサーバ(静的なウェブサイトのホスティング機能)
としても使用可能なので、そのことにも触れる

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

目次

【1】リダイレクト機能
 1)リダイレクションルールを利用する
 2)ウェブページリダイレクトを利用する
 3)注意
【2】Webホスティング機能
 1)CORS (Cross-Origin Resource Sharing)

 【1】リダイレクト機能

* アクセスログも出力可能
* 方法は以下の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/」

 3)注意

[1] SSL(https)通信でのリダイレクションは、
 AWS Certificate Manager / CloudFront も必要になってくる

【2】Webホスティング機能

1)CORS (Cross-Origin Resource Sharing)

* S3 は、CORS をサポート。
* CORS (Cross-Origin Resource Sharing)の詳細は
 以下の関連記事を参照のこと。

クロス・サイト・リクエスト・フォージェリ
https://dk521123.hatenablog.com/entry/2016/01/02/103500

 参考文献

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
クロス・サイト・リクエスト・フォージェリ
https://dk521123.hatenablog.com/entry/2016/01/02/103500