LoginSignup
31
50

More than 5 years have passed since last update.

AWS EC2 インスタンス作成、Webサーバ構築

Last updated at Posted at 2016-09-13

はじめに

AWS EC2を使ってWEBサーバを構築しましたので、備忘録としてまとめます。

目標

仮想サーバを構築しWordPrssを設置する。(WordPrssの設定は省略する。)

構築の流れ

  • EC2 インスタンスを作成する
  • セキュリティグループを作成してアクセス制限をかける
  • サーバにログインする
  • SSHのポートを変更する
  • ユーザーを追加する(鍵を登録する)
  • ミドルウェアをインストールする(Apache PHP MySQL FTP)
  • ミドルウェアを設定する
  • 【おまけ】 WordPressをインストール

アカウント作成、ログイン

こちらにまとめてるのでどうぞ。
AWSアカウント作成後の初期設定(セキュリティ設定)

EC2 インスタンスを作成

インスタンスとは AWS クラウドにある仮想サーバのこと。
詳しくはこちら

1.jpg

「EC2」をクリック。

2.jpg

「Launch Instance」をクリック。

Step 1: Choose an Amazon Machine Image (AMI)

3.jpg

EC2インスタンスのOSを選択。
今回は「Amazon Linux AMI 2016.03.3 (HVM), SSD Volume Type - ami-374db956」を選択。

Step 2: Choose an Instance Type

4.jpg

無料枠のt2.microを選択し、「Next: Configure Instance Details」をクリック。

Step 3: Configure Instance Details

5.jpg

「Protect against accidental termination」にチェックを入れ、「Next: Add Storage」をクリック。
※こちらにチェックを入れておくと、意図せぬ削除から保護してくれるようになる。

Step 4: Add Storage

6.jpg

用途に合わせてストレージを追加する。今回はデフォルトのままで、「Next: Tag Instance」をクリック。

Step 5: Tag Instance

7.jpg

任意のタグを追加し、 「Next: Configure Security Group」をクリック。

Step 6: Configure Security Group

8.jpg

セキュリティグループを設定し、「Review and Launch」をクリック。
※今回は、sshをhttpを設定。

Step 7: Review Instance Launch

今までの設定を確認し、「Launch」をクリック。
キーペアの作成画面が表示される。

9.jpg

今回は、新規作成するので、「Create a new key pair」を選択し、Create a new key pairに任意の名前を入力し、「Create a new key pair」をクリックし、ダウンロードする。
サーバに接続するのに後ほど必要になるので、任意の場所に置いておく。

ダウンロードが完了したら、「Launch Instances」をクリック。

10.jpg

インスタンスが作成中なので、「View Instances」をクリック。

11.jpg

少し時間がかかるが作成が完了すると、インスタンスの状態が「running」と「2/2 checks passed」になっていれば、インスタンスの作成が完了。

仮想サーバにログイン

ここから、ターミナルでの作業になります。
PuTTYを使用したWindowsからLinuxインスタンスへの接続はこちら

12.jpg

接続するインスタンスを選択し、「Connect」をクリック。

dfee6a99-8489-b647-c6cd-3f0a2c794e8d.jpeg

先ほどダウンロードした鍵のパーミションを変更する。

chmod 400 gehogeho.pem

パーミッションを変更しないとログイン時に怒られます。

...

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

...

SSHでアクセス

ec2-userでログインする。

$ ssh ec2-user@{instance IP} -i {秘密鍵保存ディレクトリ}/gehogeho.pem

...


       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|


...

無事ログインできたので、次の設定へ。

ポート番号の変更

rootでログインし、ポート番号を変更する。

$ sudo -s

# vi /etc/ssh/sshd_config


#Port 22
↓
Port 60530 //任意の0番~65535番までの番号に変更

# /etc/init.d/sshd restart //再起動

ユーザを作成

グループとユーザーを作成。

# useradd -g users gehogeho
# passwd ideacd

パスワードを設定。

# passwd gehogeho
ユーザー gehogeho のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

追加したユーザーにもrootになれるよう設定。

# visudo

root    ALL=(ALL)       ALL

↓
root    ALL=(ALL)       ALL
gehogeho  ALL=(ALL)       ALL

追加ユーザーの鍵の設定

追加ユーザーでリモートログインできるようにする。

rootからユーザーへ切り替え、ユーザーのディレクトリまで移動する。

# su gehogeho

$ /home/gehogeho

鍵の格納先のディレクトリと空の鍵ファイルを作成。

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

お使いのPCで鍵を生成を生成する。

[user@MacBook-PC] $ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/.ssh/id_rsa.
Your public key has been saved in /Users/.ssh/id_rsa.pub.
The key fingerprint is:
The key's randomart image is:
+--[ RSA 2048]----+
| .+BB.o..        |
|  o*+B. ..       |
| .o o o.E o      |
| . o o   o       |
|  . . . S        |
|     . .         |
|      .          |
|                 |
|                 |
+-----------------+

生成した、id_rsa.pubの中身を先ほどのauthorized_keysにコピペ。
id_rsaは、PC内に大事に保管しておく。

$ vi ~/.ssh/authorized_keys

一旦、ログアウトし、追加したユーザーでログインする。

$ ssh gehogeho@{instance IP} -i {秘密鍵保存ディレクトリ}/gehogeho.pem

必要なミドルウェアをインストール

yumアップデート

まず、yumアップデートをする。
※今回は、カーネルのアップデートを除外し、アップデートする。

# yum --exclude=kernel* update

必要なミドルウェアをインストール

今回は、WordPrssに必要なミドルウェアをインストールする。

  • Apache
  • MySQL
  • PHP
  • phpMyAdmin
# yum install httpd mysql mysql-server php php-mysql php-mbstring

phpMyAdminはCentOSの標準のリポジトリに無いようなのでepelからインストール

# yum install --enablerepo=epel phpMyAdmin

Apacheを起動

# /etc/init.d/httpd start

Apachewo自動起動にする

# chkconfig httpd on

MySQLを起動

# /etc/init.d/mysqld start

MySQLを自動起動にする

# chkconfig mysqld on

起動状態の確認

# chkconfig --list httpd
# chkconfig --list mysqld

ブラウザで確認。

15.png

Apacheの画面が出ていれば、とりあえずOK。

MySQLの設定

# vi /etc/my.cnf

// [mysqld] に以下を追記
character-set-server = utf8
skip-character-set-client-handshake

// 下を追記
[mysqldump]
default-character-set=binary

[client]
default-character-set = utf8

MySQL再起動

# /etc/init.d/mysqld restart

パスワードの設定をする。

# mysql mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1866163
Copyright (c) 2000, 2016, 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> //こちらにコマンドを入力。('パスワード') SET PASSWORD FOR root@localhost=PASSWORD('パスワードを入力');

mysql> SET PASSWORD FOR root@localhost=PASSWORD('gehogeho');
Query OK, 0 rows affected (0.01 sec)

mysql> exit;
Bye

phpMyAdminの設定

デフォルトではアクセス制限があるので設定を変更する。

# vi /etc/httpd/conf.d/phpMyAdmin.conf

// 21行目らへんを変更
<IfModule !mod_authz_core.c>
  # Apache 2.2
  Order Deny,Allow
  Deny from All
  Allow from 127.0.0.1
  Allow from ::1
</IfModule>

↓

<IfModule !mod_authz_core.c>
  # Apache 2.2
  Order Allow,Deny
  Allow from All
</IfModule>

Apacheを再起動

# /etc/init.d/httpd restart

アクセスして確認。
http://IP/phpMyAdmin/

  • ユーザー:root
  • パスワード:gehogeo

ドキュメントルートの設定

Apacheの設定を変更する

# vi /etc/httpd/conf/httpd.conf

// 293行目くらいを変更

DocumentRoot "/var/www/html"

↓

DocumentRoot "/home/gehogeho/html"


// 318行目くらいを変更

<Directory "/var/www/html">

↓

<Directory "/home/gehogeho/html">

htmlディレクトリを作成

# cd /home/gehogeho/
# mkdir html
# chmod 755 /home/gehogeho

Apacheを再起動

# /etc/init.d/httpd restart

WordPressインストール

日本語版を取得する。

# cd /home/gehogeho/www/
# mkdir wp
# cd wp
# wget https://ja.wordpress.org/latest-ja.tar.gz
# tar zxvf latest-ja.tar.gz
# chown -R apache.apache

アクセスして確認。
http://IP/phpMyAdmin/wp/wp-admin/setup-config.php

まとめ

ユーザー権限やパーミッションの変更を忘れていたりなど、すんなりいかないところもありましたが、なんとかインスタンスを立ち上げて仮想環境は作れました。
セキュリティグループなど、まだまだ疎いので、今後の課題にしていきたいと思います。

31
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
50