AWS(Amazon Web Services)のCloudFormationの「PHP Hello World Application」に関する情報があまりないので試してみた。
まずはAWS Management Consoleから「PHP Hello World Application + SSH enabled」のstackを作成。
場所はAsia/Pacific 東京リージョンを選択できた。
インスタンスタイプはMicroインスタンス、OperatorEmailには自分のメールアドレスを記入した。
しばらくすると、こんなのが作成された。
- S3
- 空のバケットが作成された(バックアップ用?)
- EC2
- Root Device Typeがebsのインスタンスが1つ作成された
- EBSのCapacityは8GiB
- Security Groupが1つ作成された
- SSHとHTTP(ポート番号は8888)のポートで、ともにIPアドレス制限無し
- Load Balancerが起動した
- 80番ポートを待ち受けてインスタンスの8888番ポートに向ける
- Elastic IPは作成されなかった
- CloudWatch
- Alarmが3つ作成された
- RequestLatencyAlarmHigh
- CPUAlarmHigh
- TooManyUnhealthyHostsAlarm
- 閾値に達したら登録したメールアドレスにメールで知らせてくれるようだ
- CloudFormation
- stackが1つ作成された(そりゃそうだ)
- RDS
- DB Instanceが1つ作成された
- DB Engine Versionは5.1.50
- DB Instance Classはdb.m1.small
- DB Storageは5GiB
- Backup Windowは15:00~15:30(日本時間?)
- Maintenance Windowは日曜14:00~14:30(これも日本時間?)
- DB Security Groupが1つ作成された
- 上記のEC2 Security Groupが適用されている
- DB Parameter Groupのcharacter_set関連は「engine-default」になっているが、UTF-8使えるのかな?
- SNS
- CloudWatchのメール通知用のTopicが1つ作成された
EC2のLoadBalancerのドメインにHTTPでアクセスすると、Wellcomeメッセージとともにphpinfoが表示された。
phpinfoによるとバージョンは下記の通り。
- Apache : 2.2.16
- PHP : 5.3.3
SSHでアクセス(SSHのログインユーザーはrootでなく"ec2-user"なので注意。"ec2-user"はsudoができる)してみると、/var/www/html の中には index.php しかなかった。
ユーザー"ec2-user"のviはPHPのソースがハイライトされて見やすい。(少し目がチカチカするが。)
PHP拡張については主なものは入っているが、mbstringが入っていない。
yumで入れたら普通にインストールできた。
sudo yum install php-mbstring
mbstringを有効にするためにApacheを再起動。
すると、アクセスできなくなった。EC2のLoadBalancerからインスタンスが外れている。
SNSからのアラートメールもいくつも送られてきてる。
調べてみると、httpd.confでポート番号が80になっていた。
8888に変更して再起動。
これでアクセスできるようになった。mbstringも使えるようになった。
使い終わったら、AWS Management ConsoleでCloudFormationのstackを削除。
するとCloudFormationが作った一連のものをきれいに削除してくれた。
例外はS3で、S3だけはバケットが残っていた。
あとこれは今回の調査に直接関係ないが、AWS Management ConsoleのS3とEC2が重くなった気がする。(この前の改善の影響?)
結論
ささっとPHP実行環境を作りたいなら、これもありかもしれないと思った。
RDSを使いたいかどうかは状況によるけど、CloudWatchとかSNSの設定が楽なのは便利そう。
0 件のコメント:
コメントを投稿