Stout – Amazon S3用静的サイトデプロイツール
Amazon S3には静的なファイルホスティング機能があります。個人的にはDevRelのサイトはS3とCloud Frontを組み合わせてSSL/TSLでホスティングしています。静的なサイトであれば手軽に公開できて便利です。 とはいえ、多少は設定が必要であったり、S3にアップロードする時の手間が発生します。そこで使ってみたいのがStout、S3対応の静的サイトデプロイツールです。
Stoutの使い方
Stoutはcreateサブコマンドを使ってバケットの作成とRoute53へのドメイン設定追加を行ってくれます(ゾーンは予め作っておく必要があります)。
$ stout create --bucket moongift.co.jp --key $AWS_KEY --secret $AWS_SECRET
後はフォルダの中で自由にHTML、JavaScript、スタイルシートファイルを編集してサイトを作ります。終わったらdeployサブコマンドを実行します。
$ stout deploy --bucket moongift.co.jp --key $AWS_KEY --secret $AWS_SECRET
2015/07/27 09:39:29 Uploading to .DS_Store in moongift.co.jp (2216c04297c2) [60]
2015/07/27 09:39:32 Uploading to 8a6e3c6b5850/597e8eabf01a/index.html in moongift.co.jp (fcceead92bdf) [31556926]
2015/07/27 09:39:32 Uploading to 8a6e3c6b5850/index.html in moongift.co.jp (4bae45ddbe81) [31556926]
2015/07/27 09:39:33 Copying 8a6e3c6b5850/index.html to index.html
2015/07/27 09:39:33 Copying 8a6e3c6b5850/597e8eabf01a/index.html to 597e8eabf01a/index.html
+------------------------------------+
| Deploy Successful! |
| |
| Deploy ID: 8a6e3c6b5850 |
+------------------------------------+
そうするとS3へのアップロードが行われ、かつ過去のファイルを移動してくれます。これによりバージョン管理ではないものの、状態をロールバックさせることも可能です。
$ stout rollback --bucket moongift.co.jp --key $AWS_KEY --secret $AWS_SECRET a3b8ff290c33
設定ファイルをYAMLで定義すると、開発版と本番環境を切り替えるのも簡単にできます。
$ stout deploy --env development
Amazon S3を静的なホスティングサイトとして本格的に使っていく際に、非常に便利なツールになるのではないでしょうか。
StoutはGo製、MIT Licenseのオープンソース・ソフトウェアです。