Amazon Linux にLAMP環境を構築

EC2インスタンスにログインします。

20140907_ec2_9

1.MySQLのインストール

MySQL Client のインストール

$ sudo yum install mysql
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
(略)
Installed:
mysql.noarch 0:5.5-1.6.amzn1
Dependency Installed:
mysql55.x86_64 0:5.5.38-1.0.amzn1 mysql55-common.x86_64 0:5.5.38-1.0.amzn1 mysql55-libs.x86_64 0:5.5.38-1.0.amzn1
Complete!

MySQL Server のインストール

$ sudo yum install mysql-server
Loaded plugins: priorities, update-motd, upgrade-helper
(略)
Installed:
mysql-server.noarch 0:5.5-1.6.amzn1
Dependency Installed:
mysql55-server.x86_64 0:5.5.38-1.0.amzn1 perl-Compress-Raw-Bzip2.x86_64 0:2.061-1.10.amzn1
perl-Compress-Raw-Zlib.x86_64 0:2.061-1.10.amzn1 perl-DBD-MySQL.x86_64 0:4.023-2.16.amzn1
perl-DBI.x86_64 0:1.627-1.7.amzn1 perl-Data-Dumper.x86_64 0:2.145-1.4.amzn1
perl-IO-Compress.noarch 0:2.061-1.1.11.amzn1 perl-Net-Daemon.noarch 0:0.48-4.4.amzn1
perl-PlRPC.noarch 0:0.2020-12.5.amzn1
Complete!

MySQL起動

$ sudo /etc/init.d/mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h ip-172-31-3-179 password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
[ OK ]
Starting mysqld: [ OK ]

MySQLバージョン確認

$ mysql
mysql> select VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 5.5.38 | 2014-09-07 |
+-----------+--------------+
1 row in set (0.00 sec)

MySQLのrootパスワード設定や匿名ユーザ削除、テストデータベース削除等の初期設定

$ sudo mysql_secure_installation

設定したパスワードでログインできるか確認

mysql -u root -p

chkconfigで自動起動設定

$ sudo chkconfig mysqld on
$ chkconfig --list | grep mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ sudo chkconfig httpd on
$ chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 2.PHPのインストール

$ sudo yum install php55
(略)
Installed:
php55.x86_64 0:5.5.14-1.75.amzn1
Dependency Installed:
apr.x86_64 0:1.5.0-2.11.amzn1 apr-util.x86_64 0:1.4.1-4.14.amzn1 httpd24.x86_64 0:2.4.10-1.59.amzn1
httpd24-tools.x86_64 0:2.4.10-1.59.amzn1 json-c.x86_64 0:0.11-4.5.amzn1 libzip.x86_64 0:0.10.1-1.3.amzn1
mailcap.noarch 0:2.1.31-2.7.amzn1 php-pear.noarch 1:1.9.4-20.15.amzn1 php55-cli.x86_64 0:5.5.14-1.75.amzn1
php55-common.x86_64 0:5.5.14-1.75.amzn1 php55-pecl-jsonc.x86_64 0:1.3.2-1.9.amzn1 php55-process.x86_64 0:5.5.14-1.75.amzn1
php55-xml.x86_64 0:5.5.14-1.75.amzn1
Complete!
$ php -v
PHP 5.5.14 (cli) (built: Jul 9 2014 21:40:15)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

PHPモジュールのインストール

$ sudo yum install php55-mysqlnd
$ sudo yum install php55-mbstring
$ sudo yum install php55-gd php55-pdo
$ sudo yum install php55-xmlrpc

ここで、PHP5.5から以下のようになったので、「php55-mysqlnd」をインストールした。

「php-mysql」が廃止されて「php-mysqlnd」に置き換わった
「php-mysqlnd」でmysql_connect()系関数を使用した際、MySQLの古いパスワードフォーマット(16バイト)を使うとDBに接続できない

以下参考:

php.ini の設定

upload_max_filesize = 1280M
post_max_size = 1536M
memory_limit = 2048M

3.その他設定

ライブラリ等のインストール

$ sudo yum install libzip libzip-devel zlib-devel libaio
$ sudo yum install pcre pcre-devel
$ sudo yum install mysql55-devel.x86_64

システム時刻をJSTに設定

sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

4.AMI・スナップショットの取得

ここまで構築した環境のスナップショットを取ります。

AWS管理コンソールに入り、サービスのEC2を選択、左メニューの「Instances」をクリックします。
Snapshotを取りたいインスタンスを選択し、「Actions」から「Create Image」を選びます。(一応、インスタンスは停止しておいた方がいいかもです)

20140907_ec2_a

Image Name と Discriptiion を記述して「Create Image」をクリックします。

20140907_ec2_b

これで、左メニューの「IMAGS」-「AMIs」と「ELASTIC BLOCK STORE」-「Snapshot」にそれぞれ、AMIとSnapshot が作成されます。

スナップショットからのインスタンス復元はまた別途。

補足:

AMIとスナップショットの違いについては下記で解説されています。簡単に言うと以下のようです。

ナップショット = 「EBS ボリュームの中のデータ」を特定のタイミングで取得しS3に保存したもの
AMI = 「EBS ボリュームの中のデータ(スナップショット) とインスタンスを構成する管理情報」を含む起動テンプレート

あと、このサイトの解説がInstance/Volume/Snapshot/AMIの関係が判りやすいです。

また、上記の手順で行った「Create Image」でAMIとSnapshotが同時にできる理由についてはこのサイトの補足にある下記説明が判りやすいです。

> あとはEBS root Instanceをバックアップとるときに、Create Image(EBS AMI)する方法とSnapshotを取る方法と2通りあってこれもまた混乱します。(どう使い分ければいいのか等)

この部分は回答していませんでしたが、ついでに説明しておきますね。
簡単に言うと CreateImage=CreateSnapshot+CreateAmi なだけです。

先に述べたとおり AMI はHDDを構成を記述した設定セットです。
既存のInstanceと同じAMIを作りたい場合は、まずルートボリュームのSnapshotを取り、そのSnapshotをルートデバイスに紐付けたAMIを作るという手順になります。
CreateImage はその決まりきった手順を一発で行なってくれるだけのものです。

CreateImageのメリットは操作が簡単でお手軽なことです。
対してCreateSnapshotとCreateAmiを別に行うことのメリットは柔軟なバックアップや起動構成を自分で管理できるということです。

今回のownCloudインストールを踏まえたLAMP環境構築には下記サイトを参考にさせて頂きました。

コメントを残す

コメントは当サイト運営者の承認後に反映されます。
お名前はニックネームでも結構です。

Comments are allowed only in Japanese. / 日本語が含まれない投稿は無視されますのでご注意ください。