今夜は社内AWSもくもく会2 - シーズン2
今日すること
こんにちはふるてつです。
久しぶりに社内AWSもくもく会のことを書きます。
社内AWSもくもく会自体は継続していたのですが、わたしのアカウントの無料利用枠が尽きてしまい、
ブログ書きのみしばらくお休みしていました。
今回新たにもう1つアカウントを作り直しましたので、先週から再開しましたので、今回からAWSはシーズン2になります。
いつもの本の続きからですけど。
今回のテーマは「WordPressを使ったブログサイトの構築」になります。
本では下記のように本番版のDBを作ってマルチAZのマスタとスレーブ構成にするそうですが、どうも有償になりそうなのでテスト版のDBで1台だけにしました。
皆様ももし本と同じことをするなら、この点はぜひ気を付けてください。
※このブログを書いた後に分かったのですが、無償版でもマルチAZのマスタとスレーブ構成はできそうです。
ためしたらまた別途書きます。
VPCネットワークの作成
まずはいつものVPC作成です。
なにかするときは大体これがありますね。今回は10.1.0.0/16
です。
新たに作成したVPCが1件増えました。下の画像の1件目になります。
追加したVPCの「DNSホスト名」を有効にします。
これはなぜ必要かわからないのですが、多分Wordpressの設定あたりでつまずくのでしょう。
いったん本の通りに有効にします。
サブネット作成
次はサブネットを4つ作成します。
Name | IPv4 CIDR |
---|---|
WP-PublicSubnet-A | 10.1.11.0/24 |
WP-PrivateSubnet-A | 10.1.15.0/24 |
WP-PublicSubnet-C | 10.1.51.0/24 |
WP-PrivateSubnet-C | 10.1.55.0/24 |
下は「WP-PublicSubnet-A」を作っています。
本の通りに4つ作成しますが、「WP-PrivateSubnet-C」は今回は使用しないそうです。
インターネットゲートウェイ作成
次もほぼお約束ですが、インターネットゲートウェイの作成です。
メニューの「インターネットゲートウェイ」から「インターネットゲートウェイの作成」をクリックします。
作成したゲートウェイを今回新たに作成したVPCにアタッチします。
ルートテーブル作成
これもいつものルートテーブル作成です。
メニューの「ルートテーブル」から「ルートテーブルの作成」をクリックします。
追加したルートテーブルを選択し画面下側にある「ルート」タブを選択し「ルートの編集」を行います。
すべての送信先(0.0.0.0/0)に上記で作成したインターネットゲートウェイを割り当てます。
下の感じになります。
そして2つのパブリックサブネット「WP-PublicSubnet-A」と「WP-PublicSubnet-C」に作成したルートテーブルとの関連付けを追加します。
これで2つのサブネットに外部からアクセスできるようになるはずです。
下は「WP-PublicSubnet-A」にルートテーブルの関連付けを追加しているところです。
「ルートテーブルの関連付けの編集」をクリックします。
作成したルートテーブルを選択します。
下のようにルートテーブルの関連付けが新たに追加されています。
「WP-PublicSubnet-C」も同様に行います。
セキュリティグループの作成
次にセキュリティグループを作成します。
メニューから「VPC」→「セキュリティグループ」→「セキュリティグループの作成」を選んでいきます。
まずはWordpress用のセキュリティグループを作成します。
名称は「WP-Web-DMZ」とし、VPC欄には今回作成したVPCを選択します。
次にインバウンドのルールを追加します。
SSH
とHTTP
の22番と80番ポートを開けるようにします。
次はDBです。
名称は「WP-DB」とし、こちらもVPC欄に今回作成したVPCを選択します。
DBはMySQL
の3306番ポートを開けるようにします。
DBサブネットグループの作成
RDSを作る前にDBサブネットを作成します。
AWSではRDSを作成する際、必須のようです。
まずはRDSのメニューから「サブネットグループ」を選択します。
下記の内容で「サブネットグループ」を作成します。
名前は「wp-dbsubnet」、AZは「ap-northeast-1a」に加え「ap-northeast-1c」も追加します。
RDS(MySQL)の作成
これまでの道のりは少々長かったですねー。
しかしやっていることはほとんど下準備といった感じです。
これからやっとDBやPHPが出てきます。
RDSのメニューから「データベース」→「データベースの作成」をクリックします。
データベースはMySQLを選びます。
本では本番用を選ぶように書いてありますが、有償になってしまうので「開発/テスト」用に変えました。
無料利用枠内で選択すると下記のようになります。
MySQLのバージョンは「5.6.37」
無償にしたいのでDBインスタンスは「t2.micro」
マルチAZは選べません。
「次へ」をクリックする。
ネットワークとセキュリティの設定は下記になります。
データベースの名前は空にします。
残りはほぼデフォルトのままです。
そしてデータベースを作成します。
Wordpress用のEC2作成
Wordpress用のEC2インスタンスを作成します。
Amazon Linux2もありますが、慣れていないので2でない方を使用しました。
上から2番目です。
こちらも無償にしたいので「t2.micro」を選択します。
セキュリティグループは「WP-Web-DMZ」を指定して、22番と80番ポートを開けるようにします。
あとはまたキーペアを作成してTeraTermでsshログインできるようにします。
PHP、MySQL、WordPressのインストール
まずはEC2にTeraTermでログインします。
そしてコマンドラインからPHP
一式をyum
コマンドでインストールします。
sudo yum install php php-mysql php-gd php-mbstring -y
次はWordpress
関連。wget
でgz
ファイルをダウンロードしtar
で解凍します。
mysql
は不要な気もしますが本の言うとおりにしました。
sudo yum install mysql -y
wget -O /tmp/wordpress-4.9.4-ja.tar.gz https://ja.wordpress.org/wordpress-4.9.4-ja.tar.gz
sudo tar zxf /tmp/wordpress-4.9.4-ja.tar.gz -C /opt/
sudo ln -s /opt/wordpress /var/www/html/
sudo chown -R apache:apache /opt/wordpress
sudo chkconfig httpd on
sudo service httpd start
下のようにhttpd
サービスがスタートしました。
次にRDS
にWordpress
用のスキーマ(データベース)を作ります。
まずRDS
の「エンドポイント」を確認します。
下記画面の赤枠のところが「エンドポイント」です。
こちらを使用してDBにログインします。
下記のようなコマンドでログインできます。
mysql -u hoge-p -h wp-mysql.**********.ap-northeast-1.rds.amazonaws.com
あとはWordpress
用のユーザーとデータベースを下記のコマンドで作成します。
CREATE USER 'wordpress-user'@'%'IDENTIFIED BY 'wordpress';
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress-user"@"%";
FLUSH PRIVILEGES;
最後にWordpress
のセットアップ用URLを開きます(EC2のエンドポイント + wordpressのアドレス)
http://ec2*********.ap-northeast-1.compute.amazonaws.com/wordpress/wp-admin/setup-config.php
データベース名は「wordpress」、ユーザ名とパスワードはRDS
に設定した値を入力します。
データベースのホスト名はデフォルトのまま、テーブル接頭辞は「wp_」にします。
あとサイトのタイトルやユーザ名は任意で、パスワードはデフォルトのままにしました。
これで終わりです。長かった…
感想
今回は区切りが若干悪くて1つの記事で大分長くなってしまいました。
しかしまだこの続きがあるようなので、次回はさらにその2を書く予定です。
次回のために環境を残さないとですね。
RDSが最近停止(STOP)できるようになったのは良いですね。
1週間だけらしいのですがその間でも課金を心配せずに済みます。
あとWordpress
はEC2
を立てなくても作れるような話を聞いたことがあります。
本の先でそのあたりの話が出てくるかもしれません。
それではまた