Amazon Web Services一覧

AWSを利用したクラウド環境でサーバ構築(LAMP環境の構築)

今回は、AWSを利用したクラウド環境をサーバ構築を紹介します。
前回でサーバの準備が整いましまたので、Apacheなどをインストールをします。

今回は、AWSを利用したクラウド環境をサーバ構築を紹介します。 まずはクラウド上で基本となるサーバを作成します。

サーバ環境構築

前回に作成したサーバにSSHに接続し、
AWSのサーバ1台(Amazon Linux 2)に下記の環境を構築します。

・HTTP サーバー: Apache2.4
・プログラム言語:PHP 7.2
・PHP 拡張
・MySQL5.7

yumのupdate

yumを利用してシステムにインストールされているパッケージのバージョンのアップデートを行う。

 
$ sudo yum update 

Apache24のインストール

$ yum list httpd
Loaded plugins: langpacks, priorities, update-motd
Available Packages
httpd.x86_64 2.4.33-2.amzn2.0.2 amzn2-core
$ sudo yum -y install httpd

httpdの起動など

httpdの起動と確認を行う。

# httpdを起動
$ sudo systemctl start httpd

# 確認(active:runningになればOK)
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
mqphp-fpm.conf
Active: active (running) since Mon 2018-06-25 08:01:17 UTC; 13s ago
Docs: man:httpd.service(8)
Main PID: 12751 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec: 0 B/sec"
CGroup: /system.slice/httpd.service
tq12751 /usr/sbin/httpd -DFOREGROUND
tq12757 /usr/sbin/httpd -DFOREGROUND
tq12758 /usr/sbin/httpd -DFOREGROUND
tq12759 /usr/sbin/httpd -DFOREGROUND
mq12760 /usr/sbin/httpd -DFOREGROUND
httpdをシステム起動時に毎回起動する様に設定する
# システム起動時に毎回起動するように設定
$ sudo systemctl enable httpd
httpdがシステム起動時毎回起動する様になったか確認する
# 確認(enabledで有効)
$ sudo systemctl is-enabled httpd
enabled

PHP7.2のインストール

PHPのインストールチェック

標準のリポジトリでは5.4となる。

$ sudo yum list | grep php
graphviz-php.x86_64 2.30.1-19.amzn2 amzn2-core
php.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-bcmath.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-cli.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-common.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-dba.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-devel.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-embedded.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-enchant.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-fpm.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-gd.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-intl.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-ldap.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-mbstring.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-mysql.x86_64 5.4.16-43.amzn2 amzn2-core
php-mysqlnd.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-odbc.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-pdo.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-pear.noarch 1:1.10.5-7.amzn2.0.1 amzn2-core
php-pecl-memcache.x86_64 3.0.8-4.amzn2 amzn2-core
php-pgsql.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-process.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-pspell.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-recode.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-snmp.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-soap.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-xml.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
php-xmlrpc.x86_64 5.4.16-43.amzn2.0.4 amzn2-core
rrdtool-php.x86_64 1.4.8-9.amzn2 amzn2-core
uuid-php.x86_64 1.6.2-26.amzn2 amzn2-core

Amazon-Linux-Extras

Amazon-Linux-Extrasという特別なリポジトリを使用するとこでより新しいバージョンをインストールすることができます。

$ amazon-linux-extras
  0  ansible2                 available  [ =2.4.2 ]
  1  emacs                    available  [ =25.3 ]
  2  memcached1.5             available  [ =1.5.1 ]
  3  nginx1.12                available  [ =1.12.2 ]
  4  postgresql9.6            available  [ =9.6.6  =9.6.8 ]
  5  python3                  available  [ =3.6.2 ]
  6  redis4.0                 available  [ =4.0.5 ]
  7  R3.4                     available  [ =3.4.3 ]
  8  rust1                    available  [ =1.22.1  =1.26.0 ]
  9  vim                      available  [ =8.0 ]
 10  golang1.9                available  [ =1.9.2 ]
 11  ruby2.4                  available  [ =2.4.2  =2.4.4 ]
 12  nano                     available  [ =2.9.1 ]
 13  php7.2                   available  [ =7.2.0  =7.2.4  =7.2.5 ]
 14  lamp-mariadb10.2-php7.2  available  \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
 15  libreoffice              available  [ =5.0.6.2_15 ]
 16  gimp                     available  [ =2.8.22 ]
 17  docker                   available  [ =17.12.1  =18.03.1 ]
 18  mate-desktop1.x          available  [ =1.19.0  =1.20.0 ]
 19  GraphicsMagick1.3        available  [ =1.3.29 ]
 20  tomcat8.5                available  [ =8.5.31 ]

PHP7.2のインストール

# インストール 
$ sudo amazon-linux-extras install php7.2
Installed:
  mariadb.x86_64 3:10.2.10-2.amzn2.0.1     php-cli.x86_64 0:7.2.5-3.amzn2.0.2
  php-fpm.x86_64 0:7.2.5-3.amzn2.0.2       php-json.x86_64 0:7.2.5-3.amzn2.0.2
  php-mysqlnd.x86_64 0:7.2.5-3.amzn2.0.2   php-pdo.x86_64 0:7.2.5-3.amzn2.0.2

Dependency Installed:
  mariadb-common.x86_64 3:10.2.10-2.amzn2.0.1
  mariadb-config.x86_64 3:10.2.10-2.amzn2.0.1
  php-common.x86_64 0:7.2.5-3.amzn2.0.2

Dependency Updated:
  mariadb-libs.x86_64 3:10.2.10-2.amzn2.0.1

Complete!
  0  ansible2                        available  [ =2.4.2 ]
  1  emacs                           available  [ =25.3 ]
  2  memcached1.5                    available  [ =1.5.1 ]
  3  nginx1.12                       available  [ =1.12.2 ]
  4  postgresql9.6                   available  [ =9.6.6  =9.6.8 ]
  5  python3                         available  [ =3.6.2 ]
  6  redis4.0                        available  [ =4.0.5 ]
  7  R3.4                            available  [ =3.4.3 ]
  8  rust1                           available  [ =1.22.1  =1.26.0 ]
  9  vim                             available  [ =8.0 ]
 10  golang1.9                       available  [ =1.9.2 ]
 11  ruby2.4                         available  [ =2.4.2  =2.4.4 ]
 12  nano                            available  [ =2.9.1 ]
 13  php7.2=latest                   enabled    \
        [ =7.2.0  =7.2.4  =7.2.5 ]
 14  lamp-mariadb10.2-php7.2=latest  available    \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
 15  libreoffice                     available  [ =5.0.6.2_15 ]
 16  gimp                            available  [ =2.8.22 ]
 17  docker                          available  \
        [ =17.12.1  =18.03.1 ]
 18  mate-desktop1.x                 available  [ =1.19.0  =1.20.0 ]
 19  GraphicsMagick1.3               available  [ =1.3.29 ]
 20  tomcat8.5                       available  [ =8.5.31 ]

PHPのバージョンの確認

# PHPのバージョン確認
$ php --version
PHP 7.2.5 (cli) (built: May 29 2018 19:08:12) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

上記13番の「php7.2=latest enabled 」となる。

PHP拡張のインストール

PHP拡張の確認
# 拡張機能を表示します。
$ sudo yum list php* | grep amzn2extra-php7.2
php-cli.x86_64                   7.2.5-3.amzn2.0.2            @amzn2extra-php7.
php-common.x86_64                7.2.5-3.amzn2.0.2            @amzn2extra-php7.
php-fpm.x86_64                   7.2.5-3.amzn2.0.2            @amzn2extra-php7.
php-json.x86_64                  7.2.5-3.amzn2.0.2            @amzn2extra-php7.
php-mysqlnd.x86_64               7.2.5-3.amzn2.0.2            @amzn2extra-php7.
php-pdo.x86_64                   7.2.5-3.amzn2.0.2            @amzn2extra-php7.
php.x86_64                       7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-bcmath.x86_64                7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-dba.x86_64                   7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-dbg.x86_64                   7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-devel.x86_64                 7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-embedded.x86_64              7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-enchant.x86_64               7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-gd.x86_64                    7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-gmp.x86_64                   7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-intl.x86_64                  7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-ldap.x86_64                  7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-mbstring.x86_64              7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-odbc.x86_64                  7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-opcache.x86_64               7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-pecl-zip.x86_64              1.15.2-3.amzn2               amzn2extra-php7.2
php-pgsql.x86_64                 7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-process.x86_64               7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-pspell.x86_64                7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-recode.x86_64                7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-snmp.x86_64                  7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-soap.x86_64                  7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-xml.x86_64                   7.2.5-3.amzn2.0.2            amzn2extra-php7.2
php-xmlrpc.x86_64                7.2.5-3.amzn2.0.2            amzn2extra-php7.2
PHP拡張のインストール

不足するものは追加します。

# 今回の拡張
$ sudo yum install php-cli php-common php-devel php-fpm php-gd php-mysqlnd php-mbstring php-pdo php-xml php-intl

MySQL5.7のインストール

Amazon Linux 2のデフォルトリポジトリであるamzn2-coreでは、yum install mysql を実行しても、malinaDBになってしまいます。
mysqlはCentOS7を利用します。Amazon Linux 2でのserviceコマンドがsystemctlコマンドにリダイレクトされるからです。

MySQL5.7のインストール

# MySQLをインポートする
$ sudo yum install http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# MySQLをインストールする
$ sudo yum install --enablerepo=mysql57-community mysql-community-server
・・・
================================================================================
 Package             Arch   Version
                                  Repository                               Size
================================================================================
Installing:
 mysql57-community-release
                     noarch el7-7 /mysql57-community-release-el7-7.noarch 7.8 k

・・・
# --enablerepo を指定しているので、インストールしたリポジトリが優先される。
#
MySQL5.7の起動とサーバー起動時の自動起動をONにする
// バージョン確認 兼 インストール確認
$ mysql --version
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
# サーバー起動時の自動起動をONにする
$ sudo systemctl enable mysqld.service
MySQLの起動の確認とパスワードの変更
# 起動確認
$ systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-06-28 05:00:22 UTC; 3min 22s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 3779 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 3757 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 3783 (mysqld)
   CGroup: /system.slice/mysqld.service
           mq3783 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mys...

Jun 28 05:00:21 ip-172-31-9-81.ap-northeast-1.compute.internal systemd[1]: St...
Jun 28 05:00:22 ip-172-31-9-81.ap-northeast-1.compute.internal systemd[1]: St...
Hint: Some lines were ellipsized, use -l to show in full.
MySQLの初期パスワードの変更を行う
# mysqlに入る
# パスワードがログに出力されているらしいので、以下のコマンドで確認する。
$ sudo grep 'temporary password' /var/log/mysqld.log
2018-06-28T04:58:10.338094Z 1 [Note] A temporary password is generated for root@localhost: XXXXXXXXXXXX

# XXXXXXXXXXXXの部分にパスワードが表示される。
# このパスワードを使って入る。
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql>-- 新しいパスワード設定 yyyyyyy が新しいパスワード
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'yyyyyyy';

AWSにおける環境構築の際の注意点

AWSにおいて環境構築の際はAWS独自の仕様を理解していないと、依存関係が壊れます。
注意してください。