#この記事でできること
後半に記載の前準備後に、ユーザーデータを利用して、wordpress AWS EC2でコピペだけでを立ち上げられる
###先に結論
これをユーザーデータにコピペするだけ
#!/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
上記を実行する前には、下記の準備を行っておく必要があります。
##前準備
あくまで例です
###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