AWSでLAMP環境を構築する手順

やりたいこと

awsを使ってLAMP環境の構築。
使用するサービスはEC2、S3、CloudFrontの3つ。
EC2の1インスタンス(1サーバー)にLAMPをインストール。
S3には画像等の静的コンテンツをアップロードして、CloudFrontからS3へとコンテンツを取得。
CloudFrontからエンドユーザへ静的コンテンツを配信。
といった流れを想定します。

EC2インスタンス作成

・ ホーム画面の「EC2」をクリック
・「Create Instance」の「Launch Instance」ボタンをクリック

以後、以下を選択する画面がでてくるのでそれぞれ入力していく流れ
1. Choose AMI
2. Choose Instance Type
3. Configure Instance
4. Add Storage
5. Tag Instance
6. Configure Security Group
7. Review

1. Choose AMI

どのイメージファイルからOSをインストールするかを選択する画面。
ここでは「Amazon Linux AMI 2014.09.2 (HVM)」を選択する。CentOSとかとほとんど同じでしょ(たぶん、、、)

2. Choose Instance Type

マシンのスペックを選択する画面。とりあえず検証用の環境なので1番低スペックな「t2.micro」を選択する
ちなみに後から変更可能

3. Configure Instance

EC2インスタンスを作成するネットワークを選択。VPCという内部ネットワークを選択することになる。
が、今回はデフォルトで準備されているVPCを使用するのでこのページはこのまま。でいいのかな、、、

4. Add Storage

ストレージを選択する画面。デフォルトのまま

5. Tag Instance

インスタンスに名前をつける。わかりやすい名前をつける

6. Configure Security Group

インスタンスセキュリティポリシーを設定。
デフォルトでSSHのみの設定となっているので、「Add Rule」から「HTTP」も追加。
この設定をすることで、Webサーバ構築後にブラウザから閲覧可能になる。

7. Review

1〜6の設定内容を確認してOKなら次へ。
ここでサーバにログインするための鍵ファイルが生成されるので、ダウンロードして保存しておく
ここまででEC2インスタンスが作成されます。

作成したEC2インスタンスLAMP環境を構築

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html
といっても公式ページのチュートリアルにやり方書いてあるので基本的にそのまま進めます。
そのままだとPHP5.3だけど、PHP5.5を入れたいので少し修正して進めます。

sudo yum update -y

// apache2.4(php5.5を入れるときにこのバージョンでないとエラーになったので)
sudo yum install -y httpd24

// php5.5と使いそうなもの
sudo yum install -y php55 php55-devel php55-mysqlnd php55-gd php55-mbstring

// mysql5.5
sudo yum install -y mysql-server

// apache起動と設定
sudo service httpd start
sudo chkconfig httpd on

// web開発用のグループを作成して、ec2-userをそこに追加
sudo groupadd www
sudo usermod -a -G www ec2-user
exit
sudo chown -R root:www /var/www

// 権限とか・・・チュートリアルコピペ
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} +
find /var/www -type f -exec sudo chmod 0664 {} +

// mysql
sudo service mysqld start
sudo mysql_secure_installation // rootパスワードの設定して、その他確認してOKなら「Y」で1度抜ける
sudo service mysqld stop
sudo chkconfig mysqld start

その他、一般的にやってる設定とか

webサーバ設定作業メモ - 私用 - とりあえずphpとか
webサーバ設定作業メモ2 - 私用 - とりあえずphpとか

過去にまとめたこのページの以下らへんを必要であれば都度やればだいたいOKかなと
・一般ユーザの作成
・バーチャルホストの設定
・/etc/php.iniの編集
mysqlのデータベースとユーザ作成
apacheログのローテーション設定

あと、時間は合わせておいたほうがいいかも

sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime

最後に

長くなったので、S3とCloudFrontの設定は次回に
といっても用途によってかわってくるのかな

以上です