7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ELB + EC2 + Route53 + Certificate Manager + docker + nginx + php7.3 + wordpress + mysql5.7でSSL化したブログサイト環境の構築

Last updated at Posted at 2019-10-12

経緯

  • HTTPSでのブログサイト構築までを簡単にできるようにしておきたかった。
  • ECS、EKSをこれから利用するにあたってその前にEC2へDockerで環境構築するための練習です。

利用するGitリポジトリ

参考記事

Route53でホストゾーンの作成

AWSコンソールログイン後、以下メニューでドメインを取得してください。1※お金かかります。
image.png

Certificate ManagerでSSL証明書を発行

  • 上述したドメインに対してSSL証明書を発行2

EC2の作成(セキュリティグループの作成)

  • EC2の作成では基本的には初期値で良いですが、セキュリティグループのルールを一応SSH接続は自分のグローバルIPアドレスからしかアクセスできないようにした方がよいかと。3あとHTTP, HTTPSは追加。
    image.png

Elastic IPとEC2の関連付け

  • 「新しいアドレスの割り当て」ボタンから新しいIPアドレスを作成したインスタンスに関連付けする
    image.png

ELBの作成(SSL証明書の設置とEC2への接続)

  • Application Load Balancerを選択して作成
  • リスナーへ HTTP / HTTPS を追加
  • アベイラビリティーゾーン:2つ以上選択。ELBとEC2を接続できる同じVPCに設定。
    image.png
  • セキュリティーゾーンは作成したEC2同じセキュリティグループを設定
  • ターゲットグループ作成時に作成したEC2を登録する

Route53でドメインとELBの関連付け

  • Route53で作成したドメインに対して上述で作成したELBをエイリアス先として設定する
    image.png

EC2に先ほど設定したEC2と関連付けたEIPを指定してSSH接続(鍵ファイルも指定)

$ ssh -I /path/to/keyfile ec2-user@XX.XX.XX.XX

workspaceを作成

$ mkdir ~/workspace
$ cd ~/workspace

yum update

$ sudo yum update

dockerをインストール

$ sudo yum install -y docker

dockerを起動

$ sudo service docker start

docker 起動確認

$ sudo docker info


docker-composeをインストール

$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

docker-compose インストール確認

$ docker-compose --version

ec2-userをdockerグループに所属させる

$ sudo gpasswd -a $USER docker

dockerデーモンを再起動する

$ sudo systemctl restart docker

ログアウト

$ exit

再ログイン

$ ssh -I /path/to/keyfile ec2-user@XX.XX.XX.XX

workspaceへ移動

$ cd ~/workspace

Gitをインストール

$ sudo yum -y install git

用意したgitリポジトリをクローン

$ git clone https://github.com/ienokado/docker-wordpress-nginx.git
$ cd docker-wordpress-nginx

wordpressを作成する

$ docker-compose up -d —build

結果

  • ドメインへアクセスする
  • インストール設定画面が表示されるので通常のWordpressと同様に実施
  • HTTPSアクセスの場合初期インストール時にCSSやJSがHTTPで読み込まれてしまい、デザインレイアウトが崩れる
    • wp-config-sample.phpのrequire_once( ABSPATH . 'wp-settings.php' );の手前に以下記述

define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
  • DB接続の設定はdockerーcompose.ymlへ設定している内容を設定する ※接頭辞は自由
    image.png

所感

意外とややこしかったです。
もっとスマートなやり方がありましたら教えてくださいませ。
誰かの参考になれば嬉しいなと思ってます。

  1. Amazon Route 53でドメインを購入する

  2. AWS Certificate ManagerでSSL証明書を発行する

  3. グローバルIPアドレス確認 / コマンドではifconfig

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?