AWS EC2でwordpressをユーザーデータで立ち上げる
この記事でできること
後半に記載の前準備後に、ユーザーデータを利用して、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
Author And Source
この問題について(AWS EC2でwordpressをユーザーデータで立ち上げる), 我々は、より多くの情報をここで見つけました https://qiita.com/oreish/items/5dcfb817844c91b0884c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .