AWS EC2に Nginx / vsftpd /php-fpm / mysql を入れてみた。
2015/03/09
下書き状態で放置していたので、 せっかくなので公開。 ちなみに開発環境はMacです。
以下の構成で構築します。
- AWS EC2(仮想サーバ)
- nginx(WEBサーバ)
- vsftpd(FTPサーバ)
- php-fpm ( php実行環境 )
- mysql ( RDBMS )
AWS環境の用意
おしながき
- AWSアカウントの作成
- AWSマネジメントコンソールからのEC2インスタンスの作成
- EC2で作成した仮想サーバに接続する為の秘密鍵を作成
- 生成した公開鍵に権限を与える
- 秘密鍵が適切に設定できているかどうか確認する為、サーバへ接続する
- Elastic IPを固定する
- nginx( webサーバ )のインストール
- php-fpm (PHP実行環境 ※nginxと連携させる)
- vsftpd (FTPサーバ)
- mysql (RDBMS 管理運用システム)
上記の1〜3まで、
「1. AWSアカウントの作成」
「2. AWSマネジメントコンソールからのEC2インスタンスの作成 」
「3. EC2で作成した仮想サーバに接続する為の秘密鍵を作成」
この辺についてはLIGさんの記事でわかりやすく解説されていたので、
そちらを参照して下さい。(ぶん投げ)
参考 : http://liginc.co.jp/web/programming/server/39969
見出し : Apacheインストール の直前までを参考にする。
4. 生成した公開鍵に権限を与える
コンソールでの作業。
以下の例では「書類」に秘密鍵を置いた。
該当ディレクトリへ移動して、pemに対して実行権限を与える。
cd /Users/ユーザ名/Documents/ chmod 600 生成した鍵.pem
5. 秘密鍵が適切に設定できているかどうか確認する為、サーバへ接続する
ssh -i 生成した鍵.pem ec2-user@Public DNSの値
初めて接続する時は以下の様に、 繋いで良いか確認されるので、 “yes”を入力する
Are you sure you want to continue connecting (yes/no)?
6. Elastic IPを固定する
デフォルトだとIPアドレスがインスタンスを再起動する度に変わる為、
アクセスするIPアドレスを固定します。
※ EC2につけられるIPアドレスやホスト名が3種類あるが、
デフォルトだと動的な値しか無い為。
(1). Public DNS
グローバルなホスト名。
インターネットから接続可能でデフォルトでは、動的なホスト名になる。
インスタンスを停止後に起動すると、値が変わる。
(2). Elastic IP
Elastic IPを有効にした場合、割り当てられる固定IPアドレス。
Elastic IPが有効である場合、Public DNSはElastic IPを逆引きしたものに固定される。
(3). Private DNS ( Private IPs )
Privateなホスト名 及び IPアドレス。
同一リージョン内で他のインスタンスと通信する際に利用する。
インターネットからは接続できない。
Private DNS ( Private IPs )を使って通信する場合に限り、
同一のAZ内の通信は、費用がかからない。
Elastic IPの設定が完了したら、
SSH接続時の値を以下のように変更する。
ssh -i 生成した鍵.pem ec2-user@Public DNSの値
↓
ssh -i 生成した鍵.pem ec2-user@Elastic IPの値
■ nginx( webサーバ )のインストール
参考 : http://d.hatena.ne.jp/january/20130819/1376866225
nginx が含まれたAMIもたくさんある。 らしい。
1.nginxの情報を確認する
yum info ngninx
2. nginxのインストール
sudo yum install nginx
■ vsftpd (FTPサーバ)
概要 :
vsftpd をインストールして、ユーザー/パスワードを作成。
上記ユーザーに対しての接続権限・rootパスを指定。
AWSコンソールより、ftpポートを開通する。
参考 :
http://blog.genies.jp/2011/07/amazon-ec2-amazon-linux-vsftpd.html
■ php-fpm (PHP実行環境 ※nginxと連携させる)
※ FPM (FastCGI Process Manager)
参考 :
http://www.s-shirayama.com/blog/4/
■ mysql (RDBMS 管理運用システム)
1.mysqlのインストール
yum install mysql
yum install mysql-server
2.mysqlを起動、サーバ再起動時に自動立ち上げをする設定をONにする
/etc/init.d/mysqld start
/sbin/chkconfig mysqld on
3.php-mysqlのインストール
yum install php-mysql
4.mysqlでdatabaceを作成
# ※ aws_db01 の部分が任意の名称
create database aws_db01
5.DBが作成できたかどうかを確認する
SHOW DATABASES;
最後に
EC2インスタンスは起動している時間だけ、課金される為
必要がない時は、停止する事。
感想
細かい事所まで理解したとは言えないけども、 サーバの全体像が見れたような気がする。