EC2: Cloud-init でGitを使う
EC2の機能として、インスタンス作成時にUser Dataとしてパラメータ を渡すことで、起動時に cloud-initが動作する。
これを使って、インスタンス作成時に動的にGitからコンテンツを取得・デプロイすることが可能。
本格的にDevOpsやるなら、PuppetやChefを導入すべきだろうが、小規模な環境であればすぐにに使えるのが便利。
Amazon EC2: Apache, Git, Website Hosting with Cloud-Init | Cloud Zone
===
1.インスタンス作成
Quick Launch Wizardで、Amazon Linux AMIを選択する。Amazon Linuxはcloud-initにより、起動処理にてコンフィグを行える。AWS forumや ソースが詳しい。
2.インスタンスのファイアウォールで、Webを通すようにしておく。
3."User-Data"フィールドに cloud-initの内容を入力する
cloud-initで実行する内容は以下のとおり
- Apacheをインストール
- Gitをインストール
- ウェブサーバをスタート
- GitHubからwebコンテンツを web server rootにcloneする
cloud-initのフォームに入力する設定は以下。
#cloud-config packages: - httpd - git runcmd: - [ /etc/init.d/httpd, restart ] - [ git, clone, "-b", "gh-pages", "git://github.com/foo/bar.git", "/var/www/html"]
起動してしばらくすると、インスタンスのサーバ名でURLにアクセスしたら見えるはず。