Amazon Web ServicesでSymfony2.1の動作環境を10分で構築する手順

去年は少し忙しくてブログの更新をさぼった一年でしたが、今年は更新頻度を上げていこうかなと思います(笑
awsでSymfony2.1の検証的な環境を構築する手順です。
Symfony2を触ってみたいけど、わざわざ設定するのはメンドクサイなーってな人向けです。awsなのですぐ廃棄できます。
まじめにやるならpuppetがお勧めです。

0. 注意事項

  1. 環境を壊す可能性がありますのでawsの新規環境で行ってください。
  2. 運用する場合、設定を行いましょう
  3. php5.3.3なのでSymfony2.1の推奨設定は満たせてないです。
  4. 動作させるとお金がかかるので動作させたらインスタンス(ami)の削除をすると良いです

1. 準備するもの

awsのアカウント

2. awsにインスタンスを作成

awsにSymfony2をインストールするためのインスタンスを作成します。

2.1 キーペアの作成

メニューの「Key Pairs」から作成します。
名前はsymfony21とすると「symfony21.pem」というファイルをダウンロードが取得できます。
これはログインするために必要となるので大事に保存しておきましょう

2.2 インスタンスの起動

次にインスタンスの起動を行います。

f:id:taka512:20130112195718p:plain

メニューの「Instance」から「Launch Instance」を選択します。

「AWS Marketplace」を選択しテキストボックスに「CentOS」を入力してGOボタンを押す

f:id:taka512:20130112195813p:plain

マーケットプレイスに「CentOS 6.3 x86_64 Release Media」が表示されるので選択する。
次の画面でContinueボタンを押すと「Launch on EC2」の画面が表示されるので下記を選択

・Region
→Asia Pacific(Tokyo)を選択

・EC2 Instance Type
→Standard Small(m1.small)を選択

・Key Pair
→symfony21を選択

あとはデフォルトの選択で「Launch with 1-Click」ボタンを押すとインスタンスが起動します。

2.3 セキュリティグループの設定

awsでのアクセスを許可するポートの設定を行います。

f:id:taka512:20130112200329p:plain

メニューのSecurty Groupsを開くと新しいセキュリティグループが追加されてます。
「Inbound」から80と443を「add rule」した後に「Apply Rule Changes」で設定を反映します。

2.4 アクセスの確認

2.1で作成したキーをどっかのlinux環境にコピーしましょう。
で以下のコマンドでアクセスできたらインスタンスの作成は終了です!

ssh -i symfony21.pem root@[インスタンスのホスト名]

インスタンスのホスト名はawsのmanagement consoleから取得できます

3. サーバの設定

サーバ設定します。下記コマンドで途中で入力を求められる所はEnterを押すと良いです。
速いと10分ぐらいで終わります

# yum -y install make git
# git clone https://github.com/taka512/make_symfony2.git
# cd make_symfony2
# make

で、最後に再起動
ちなみに再起動するとaws内での名前解決ができなくなります。
原因不明ですがdnsをgoolgeのpublic dnsを参照するよう書き換えると解決します(が、再起動すると元に戻ります)
原因がわかる方がおりましたら教えていただけると助かります!

再起動

# init 6

DNSgooglednsに書き換えたい場合は下記コマンド

# make setup_resolve

再起動してアクセスすると下記のような画面が表示されれば成功です。

http://[awsドメイン名]/app_dev.php

f:id:taka512:20130119160937p:plain


4. TODO

  1. 設定ファイルはちゃんと設定した上でgitに登録した物を取得するようにしたい
  2. phpはmakeして最新版を入れたい
  3. ENTERの入力の必要性も無くしたい