CDPのBootstrapパターンの片鱗に触れてみる。cloudinitでgithubからwebサイトを取得してhttpd起動する。
CDPのBootstrapパターンの片鱗に触れてみる。ec2-request-spot-instancesでcloudinitでhttpd起動まで。の続きです。
cloudinitでgithubからサイト情報を取得して、httpdを起動する。という内容です。
#!/bin/bash AMI='ami-xxxxxxxx'; INSTANCE_TYPE='t1.micro'; PRICE='.003'; SUBNET='subnet-xxxxxxxx'; KEYPAIR='xxxxxxxx'; SECURITYGROUP='sg-xxxxxxxx'; DATA='#cloud-config packages: - httpd - httpd-devel - git runcmd: - [/sbin/chkconfig, httpd, on] - [/etc/init.d/httpd, start] - [ git, clone, "https://github.com/mitsugeek/mitsugeek.net.git", "/var/www/html"] '; #スポットインスタンスのリクエストを行う SIR_ID=` ec2rsi $AMI -t $INSTANCE_TYPE -p $PRICE -n 1 -r one-time -s $SUBNET -k $KEYPAIR -g $SECURITYGROUP -d "$DATA" | awk '{if(NR==1) print $2;}' ` ~~~~省略~~~~
省略部分はawsでVPC内にスポットインスタンスをリクエストしてEIP割り当てるまでのbashスクリプトと同じです。
5分くらいまつと、IPアドレスの情報が出力されるのでsafariでアクセス。
PHPの環境であれば↓な感じ?
#!/bin/bash AMI='ami-xxxxxxx'; INSTANCE_TYPE='t1.micro'; PRICE='.003'; SUBNET='subnet-xxxxxxxx'; KEYPAIR='xxxxxxxx'; SECURITYGROUP='sg-xxxxxxxx'; DATA='#cloud-config repo_upgrade: all packages: - httpd - httpd-devel - php - php-devel - php-pecl-apc - php-gd - php-mbstring - php-pdo - php-mcrypt-php runcmd: - [cp, /usr/share/zoneinfo/Asia/Tokyo, /etc/localtime] - [sed, -i, 's/LANG="en_US.UTF-8"/LANG="ja_JP.UTF-8"/', /etc/sysconfig/i18n] - [/sbin/chkconfig, httpd, on] - [/etc/init.d/httpd, start] '; #スポットインスタンスのリクエストを行う SIR_ID=` ec2rsi $AMI -t $INSTANCE_TYPE -p $PRICE -n 1 -r one-time -s $SUBNET -k $KEYPAIR -g $SECURITYGROUP -d "$DATA" | awk '{if(NR==1) print $2;}' `