Tweetこのブログは静的ファイルジェネレータのPelicanで作成したHTMLファイルをAWSのS3にホストしているのですが(過去記事)、今回URLを変更して、それに伴うリダイレクトをコマンドラインから設定しました。license記事の年月日をURLからなくすことにしました。必要な理由もないし、短い方がいいなと思ったので。http://rn4ru.com/blog/posts/hogehoge/すると問題になるのがリダイレクトです。URLを変更すると以前のURLでリンクされている記事が軒並みNotFoundになってしまい、せっかく見に来てくれた人をがっかりさせてしまうことになります。Apacheのmod_rewriteを利用しているなら年月日を取り除くのは正規表現一発でできそうですが、AWSのS3ではどうでしょうか。結論から言うと、S3をWebsiteとして利用している場合には各オブジェクトに対してリダイレクトを設定することができます。すべてのリダイレクトを手作業でやっていくにはちょっと骨が折れそうです。そこでAWSのCLIを使ってS3のAPIを叩くことにします(リファレンス)。リダイレクトをオブジェクトに設定するコマンドは以下の通りです。ここではPelicanについてきたMakefileに追記しました。$(2)リダイレクト前のオブジェクトを$(1)、リダイレクト対象のオブジェクトを$(2)に指定してください。あとはリダイレクト前、後のパスを一行に書いたリストのファイルを用意しておいてwhileループを回します。redirect_file0バイトのオブジェクトがS3上にできてしまうので、ちょっと気持ち悪いこともなくはないですが、無事にリダイレクトを設定することができました。S3にブログを移行しました。CloudFrontを使ってS3上のウェブサイトをHTTPSに対応したSearch。