AWSを用いてサーバーレスでリダイレクト
2021/06/02
目次
よくアクセスするウェブサイトに簡単にアクセスするため、独自ドメインからリダイレクトを設定したい。
リダイレクトのためだけにサーバーを用意するのも面倒なため、AWSを用いてリダイレクトを行う。
構成
S3のStatic Site Hosting機能を使ってリダイレクトを行い、Cloudfront+ACMでSSL化する。SSL化が必要ない場合はS3だけで可能。
構築手順
- S3バケットを設定する。 独自ドメインのリダイレクトを行う場合、バケット名をドメイン名(FQDN)にしなければならない。
- Static Site Hostingを有効化し、リダイレクトを設定する。
- Cloudfrontディストリビューションを作成し、Static Site HostingのURL(S3バケットそのものではない)をオリジンに設定する。
- CloudfrontにCNAMEを設定し、Route 53にてCNAMEレコードを追加してCloudfrontに独自ドメインを設定する。ACMも設定する。
302リダイレクト
前述の方法だと、HTTPコードが301になってしまう。リダイレクト先が変更される場合がある場合は302が妥当(ブラウザにリダイレクトがキャッシュされてしまう)。
そこで、Host Static Website
を選択し、リダイレクトはRedirection Ruleを用いて設定する。
https://example.com/path
にリダイレクトする場合は以下のようになる。
[
{
"Redirect": {
"HostName": "example.com",
"HttpRedirectCode": "302",
"Protocol": "https",
"ReplaceKeyWith": "path"
}
}
]
参考サイト
コメント
Github Issue と連動しています。