本ブログをAmazon S3に移行しました
nanoc を使ってスタティックなHTMLとして構築している本ブログを、レンタルサーバから Amazon S3 (以下S3)に移行しました。移行にあたってnanoc3.3から提供されている新しいデプロイ機能を利用したのでまとめておきます。
はじめに
S3を使ったWebサイトのホスティングについては以下の本家ドキュメントなどを参照してください。
nanoc-deploy gemよりnanoc3.3以降の利用がおすすめ
nanocのバージョンが3.3未満であっても nanoc-deploy gemを使えばS3にデプロイすることは可能ですが、実用的な速度を得られなかったのでnanoc3.3以降の利用をおすすめします。(nanoc-deploy gemはリージョンなどを指定する術がなく(リージョンによるが)ファイルアップロードの度にリダイレクトが発生してしまう)
なおnanoc3.3以降に追加されたS3(などのクラウド)へのデプロイ機能は、この nanoc-deployを統合したもの のようです。
fog gemが必要
fog gemが必要なのでインストールしてください。
$ gem install fog
設定ファイルの書き方
S3にデプロイする場合、nanocの設定ファイル(config.yaml)に以下のような記述が必要です。regionまたはhostオプションを指定しないと(nanoc-deployと同様に)デプロイが遅くなるのでご注意ください。
kind以外のオプションはFog::Storageのコンストラクタに渡されるので、詳細は FogのRDoc などを参照してください。
deploy: s3: kind: fog provider: aws bucket: YOUR_BUCKET_NAME aws_access_key_id: YOUR_AWS_ACCESS_KEY_ID aws_secret_access_key: YOUR_AWS_SECRET_ACCESS_KEY region: ap-northeast-1
デプロイ
デプロイの実行は3.3から追加されたdeployコマンドで行います。上記設定ファイルに指定したデプロイ先(ここでは"s3")の指定が必要です。
$ nanoc deploy --target s3