soranoba
soranoba Author of soranoba.net
programming

AWS EC2 + Wordpress + Let's Encrypt + Dockerでブログを始めることにした

ブログを始めることにした.

始めるにあたって, はてなブログにするか適当にホスティングするか多少悩んだものの, AWSの無料枠でホスティングできそうだったのでAWS + Wordpressで作ることにした. あと, Let’s Encryptしたかった. 折角なので構成について紹介するが, 複雑なことは何一つやっていないのと先人達の記事があるので, 軽く紹介するに止める.

(2018/08/06追記: アカウント作成1年間のみの無料枠のようでした)

構成

  • ドメイン
    • レジストラ: お名前.com
    • ネームサーバー: AWS Route53
  • サーバー
    • AWS EC2, CentOS Linux 7
    • Elastic IP
  • アプリケーション

ドメインは数年前から持っているので移管せずにネームサーバーだけ切り替えた. (VPSを借りていたがハングしたのを契機に解約した)
EC2インスタンスはWordpress by Bitnamiもあるが, 独自のctlコマンドでapache, wordpress他を立ち上げていて, 自動起動設定をここに入れ込む気概もなく, 採用をやめた.

docker-compose.yml

mysql + wordpressは公式が出しているコンテナを使うことができるので, docker-composeを使ってこれらの設定をする. それに加え, https-portalがLet’s Encryptの証明書自動更新とnginx proxyによる80/443ポートのフォワーディングを設定できるので, これを使うことにした.

こんな感じになる.

https-portal:
  image: steveltn/https-portal:1.3.0
  ports:
    - '80:80'
    - '443:443'
  links:
    - blog-wordpress
  restart: always
  environment:
    DOMAINS: 'soranoba.net -> http://blog-wordpress'
    # STAGE: 'production'

blog-wordpress:
  image: wordpress:4.9.7-apache
  restart: always
  links:
    - mysql
  environment:
    WORDPRESS_DB_PASSWORD: '<password>'

mysql:
  image: mysql:8.0.12
  restart: always
  environment:
    MYSQL_ROOT_PASSWORD: '<password>'

STAGEをコメントアウトして, self-signed certificateで動作するはずが, エラー吐いて動作しなかったので多少手間取ったが, そこ以外はすんなりと設定できた.

なんとも楽になったものだ.

(Updated: )

comments powered by Disqus