LoginSignup
1
0

More than 1 year has passed since last update.

AWS EC2でwordpressをユーザーデータで立ち上げる

Posted at

この記事でできること

後半に記載の前準備後に、ユーザーデータを利用して、wordpress AWS EC2でコピペだけでを立ち上げられる

先に結論

これをユーザーデータにコピペするだけ

ECインスタンスのユーザーデータにコピペするbash(バッシュ)


#!/bin/bash

echo "===sudu su -==="
#以下、管理者権限
sudu su -

echo "===yum -y update==="
# インストールされている すべてのソフトの アップデート
yum -y update

echo “===amazon-linux-extras install php7.2 -y===”
# レポジトリからphp7.2 install yes
amazon-linux-extras install php7.2 -y

# wordpress(PHP)に必要なソフトをインストールする
echo “===yum -y install mysql httpd php-mbstring php-xml gd php-gd===”
yum -y install mysql httpd php-mbstring php-xml gd php-gd

echo "===systemctl start httpd.service==="
#アパッチを起動
systemctl start httpd.service

echo "===systemctl enable httpd.service==="
#アパッチ再起動後も実行を有効
systemctl enable httpd.service

# wget(HTTP/(S)でダウンロード) 最新のwordpress tar.gz形式
# オプション-O がないと保存先がひとつ前になる、なぜ(?)
echo “===wget http://ja.wordpress.org/latest-ja.tar.gz -O /usr/local/src/latest-ja.tar.gz===”
wget http://ja.wordpress.org/latest-ja.tar.gz -O /usr/local/src/latest-ja.tar.gz

echo "===cd /usr/local/src/==="
#ディレクトリ移動  ダウンロードは一般にここに入れるらしい
cd /usr/local/src/

#tar.gz形式の最新ワードプレスjpを展開。 z(gzipファイル)をx(展開)v(詳細を表示する)f(ファイルの指定)
echo”===tar zxvf latest-ja.tar.gz===”
tar zxvf latest-ja.tar.gz

#カレントディレクトリにあるwordpressとサブディレクトリすべてを /var/www/html/のしたにコピーする -r(コピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする
echo”===cp -r wordpress/* /var/www/html/===”
cp -r wordpress/* /var/www/html/

#/var/www/htmlの権限をapacheの所有者apacheのユーザーにする -R(再帰的に変更)
echo”===chown apache:apach -R /var/www/html===”
chown apache:apache -R /var/www/html

インスタンス起動後数分すると・・・
image.png


上記を実行する前には、下記の準備を行っておく必要があります。

前準備

あくまで例です

VPC

10.0.0.0/21

subnet

(サブネット把握しやすいように第3オクテットをNameの末尾の数字とした)

RDSでマルチAZ構成のため異なるAZにpublic,privateサブネットをそれぞれ用意する

ap-northeast-1a Name:PublicSubnet0 10.0.0.0/24
ap-northeast-1a Name:PrivateSubnet2 10.0.2.0/24
ap-northeast-1c Name:PublicSubnet1 10.0.1.0/24
ap-northeast-1c Name:PrivateSubnet3 10.0.3.0/24

インターネットゲートウェイ

VPCにアタッチ

ルートテーブル

サブネット PublicSubnet0 のルートテーブルで 0.0.0.0/0 でインターネットゲートウェイを指定

RDS

サブネットグループを作成

RDSを作成

WordPressにはMySQLが必須。WordPressではMySQLまたはMariaDBが推奨されています。 多くのレンタルサーバーはデータベースにMySQLを採用しています。
ということなので、MySQLを選択

VPCセキュリティグループは、新しく RDS-SG の名称で作成する 
(マスターユーザー名:wordpress、インスタンス安いのに変更、vpc指定、サブネットグループ指定、Azは1a、あとは大体デフォルト)

セキュリティグループ

テストなので今回はHTTPのみ。本番はHTTPS+AWS HTTPS 証明書 ACM+(ELB or Route53)ご利用ください。

Name:Web-SG で以下で作成
インバウンドルールを編集
HTTP TCP 80 0.0.0.0/0 –
HTTP TCP 80 ::/0 –
SSH TCP 22 0.0.0.0/0 –

RDSで作成したセキュリティグループ RDS-SG を以下に変更
インバウンドルールを編集
既存IPアドレス削除し、Web-SGを指定する。

EC2

(やっと出番です)
最初に示したバッシュをユーザーデータにコピペして、セキュリティグループWeb-SG でインスタンスを起動!!!!

はまったこと

sudo su - がないと権限が足りない
wget http://ja.wordpress.org/latest-ja.tar.gz -O /usr/local/src/latest-ja.tar.gz のオプションOがないとcloud-init-output.log でScheme missing.表示で失敗する。

まとめ

sudo su
cat /var/log/cloud-init-output.log
がめっちゃ役立つのよくわかった

【ハンズオン1】基本的なブログサービスを構築する(シングル構成)
AWSCloudTech

1
0
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
1
0