LoginSignup
4
4

More than 5 years have passed since last update.

AWSで動的サイトの構築

Posted at

概要

AWS上にカスタムVPCを設定してその上に、WordPressを使用した動的サイトを構築した時のメモ

構成

・カスタムVPC上にネットワーク上にWordPressを稼働させるEC2インスタンスとWordPressが使用するMySQLのRDSインスタンスを配置
・冗長化構成によるロードバランシング

str.png

カスタムVPCの構築

AWSコンソール→VPCダッシュボード→VPCの作成
ウィザード形式で簡単に作れるが、勉強のためウィザードを使用せずに進める。

AWSコンソール→VPCダッシュボード→VPC→VPCの作成
①VPCネットワークの作成
 名前タグ:test-vpc
 IPv4 CIDRブロック設定:10.0.0.0/16
 テナンシー:デフォルト
VPC作成後にメニューから、DNSホスト名の編集:「はい」
②サブネットの作成
 VPC→サブネット→サブネットの作成
4つのサブネットを作成する
名前タグ       VPC AZ IPv4 CIDRブロック
test-public-A / test-vlc/ ap-northeast-1a/ 10.1.11.0/24
test-private-A / test-vpc/ ap-northeast-1a/ 10.1.15.0/24
test-public-C / test-vpc/ ap-northeast-1c/ 10.1.51.0/24
tes-private-C / test-vpc/ ap-northeast-1c/ 10.1.55.0/24

 test-public-Aとtest-public-Cは、パブリックIPが自動的に付与されるように設定する。
 一覧のメニュー→クリックで自動割当IP設定の変更でIPの自動割当にチェックを入れる。

③インタネットゲートウェイの作成(構成のGWに相当するもの)
 VPC→インタネットゲートウェイ→インターネットゲートウェイの作成
名前タグ:test-InternetGateway
 作成したインタネットゲートウェイを作成したカスタムVPC(test-vpc)にアタッチする。

④ルートテーブルの作成
パブリックサブネット用にインタネットゲートウェイをルーティングするルートテーブルの作成
VPC->ルートテーブル→ルートテーブルの作成
名前タグ:test-publicRouteTable
VPC:test-vpc
test-publicRouteTableのルートの追加。
ターゲットにはtest-InternetGatewayを指定する。

 スクリーンショット 2018-08-12 13.50.46.png

 test-publicRouteTableをtest-public-Aとtest-public-Cのルートテーブルとして設定する。
 VPCダッシュボード→サブネット→test-public-Aとtest-public-Cそれぞれのルートテーブルを
 test-publicRouteTableにする。

 スクリーンショット 2018-08-12 14.03.03.png

⑥セキュリティグループの設定
 wordpress用とDB用のセキュリティグループの設定
 VPC→セキュリティグリープ→セキュリティグループの設定
 名前タグ:wordpress用(WP-Web-DMZ)とDB用(WP-DB)
 グループ名:WP-Web-DMZ, WP-DB
 vpc:test-vpc

 WP-Web-DMZのセキュリティグループの設定
 スクリーンショット 2018-08-12 14.17.08.png

 WP-DBのセキュリティグループの設定
スクリーンショット 2018-08-12 14.19.21.png

⑦DBサブネットグループの設定
 VPC上でRDBインスタンスを使用する場合、DBサブネットグループの作成が必要。
 Relational Database Service → サブネットグループ → DBサブネットグループ
 名前:wp-dbsublent
 vpc:test-vlc

 アバイラビィティーゾーンに追加するAZ(ap-northeat-1aとap-northeat-1c)を追加する。
 スクリーンショット 2018-08-12 14.24.00.png

RDSのインスタンス作成

 Relational Database Service →  インスタンス → DBインスタンスの起動
 以下の項目を選択
 エンジンのオプション:MySQL
ユースケース:本番稼動用 - MySQL

DBの詳細設定
  DBエンジンバージョン:MySQL 5.6.39
DB インスタンスのクラス:db.t2.micro
  マルチAZ配置:別ゾーンにレプリカを作成

詳細設定(設定)
DBインスタンス識別子:wp-mysql
マスターユーザーの名前:root
マスターバスワード:****
パスワードの確認:****

スクリーンショット 2018-08-12 14.39.12.png

EC2インスタンス起動

WordPressを稼動させるためのEC2インスタンスを生成する。
AMI:Amazon Linux AMI
 ネットワーク:vpc-test
サブネット:test-public-A
自動割当パブリックIP:有効
Nameタグ:WP-WebAPP
セキュリティグループ:WP-Web-DMZ

起動詳細は、https://qiita.com/hanasaku/items/b112cdef5e07ecdee4ff

WordPressのインストール

chmod 0600 was-key.pem
ssh -i was.key.pem ec2-user@<パブリックDNS名>

sudo yum install php php-mysql php-gb php-mbstring -y
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 dxf /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 http on
sudo service httpd start

MySQLのインストール

# RDSインスタンスにログイン(ログインはRDSインスタンスのエントリポイントに記載)
mysql -u root -p -h wp-mysql.**********

mysql> CREATE USER 'wordpress-user'@'%' IDENTIFIED BY 'wordpress';
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE DATABASE wordpress;
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress-user"@"%";
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES
Query OK, 0 rows affected (0.01 sec)

wordpress セットアップ

http:///wordpress/wp-admin/install.php

ロードバランシングの設定

①AMIの作成
 EC2 →  インスタンスを右クリック → DBインスタンスの起動

②別のAZでEC2を起動する
 EC2 →  AMI → AMIを選択 → 作成
AMI:Amazon Linux AMI

ネットワーク:vpc-test
サブネット:test-public-C
自動割当パブリックIP:有効
Nameタグ:WP-WebAPP
セキュリティグループ:WP-Web-DMZ
 
③ELBの設定
 EC2 →  ロードバランサー → ロードバランサーの作成
 ALBの選択
 スクリーンショット 2018-08-12 15.24.43.png

リスナー
  http:80
AZ
vpc:test-vpc
サブネット:test-public-A, test-public-C
タグ
キー:Name
値:WP-ELB
 ターゲットグループ
名称:WpTargetNew

④WordPressの設定変更
EC2 →  ロードバランサーに表示されるELBのDNSをWordPressに設定する。
スクリーンショット 2018-08-12 15.32.32.png

⑤スティッキーセッションの設定
冗長化構成したサーバー間でセッション情報を共有できるようにするための設定(スティッキーセッションの設定)を行う。
 EC2 →  ターゲットグループ
 WpTargetを選択
  登録解除の遅延:300秒
  維持設定:有効
  維持設定の時間:30分

⑥セキュリティグループの変更
 WordPressのEC2インスタンスはELB経由でのアクセスするように変更したため、ELBからのアクセスを許可するように設定を変更する。
httpのソース:カスタム  WP-ELBのグループIDを入力
WP-Web-DMZ
スクリーンショット 2018-08-12 15.47.35.png

4
4
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
4
4