WordPress
AWS
Docker
ECS
docker-compose

wordpressのdocker imageをECSにデプロイする

ローカル環境から、ECSにデプロイするまでの手順を書いていきます。


docker-compose.ymlの作成

まずは、wordpressを環境のためのdocker-compose.ymlを作ります。

ファイルの中身はこんな感じにしました。


version: "3.3"
services:
db:
image: mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
privileged: true

wordpress:
depends_on:
- db
image: wordpress
ports:
- "8888:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress

そして、アップする

docker-compose up -d

次に、localhost:8888にアクセスして動作確認をします。

wp1.png

確認ができたら、ダウンします

docker-compose down

このdocker-compose.ymlをECSの中で起動します。


AWSでの作業

ECSアップするまでにやることは、3つです。意外と簡単だと思います。


1.リポジトリにアップロードする


  • ECRへdocker-compose.ymlをアップします。


  • 以下の画面から適当な名前を付けて、次へ

    ecs6.png


こんな画面になるので、コマンドをそのまま実行します。

ecs7.png

これでECRへの登録は完了です


2.タスクを作る

僕の理解ですが、いくつかのリポジトリを一つのプロセス群として、タスクとして定義しておいて、それを、クラスタの中で実行します。

一つまたは複数のリポジトリをタスクという、括りで実行します。逆に言えば、タスクはリポジトリ単位で構成されるということです。

CLIはできるだけ使いません。なぜなら僕ができなかったからです。では、実際にやっていきましょう。


  • 以下の画面で、Fargateを選択します。

ecs3.png


  • タスクの名前は適当で構いません。

    ecs4.png



  • コンテナの追加のときに、先程アップしたリポジトリを選択します。


    • メモリ制限は128をとりあえず入れといていいと思います。あとは流れでいいでしょう。
      ecs5.png




3.クラスタを作る


  • 平たく理解するなら、これから使いたいコンテナのことです。これを実行すると、ローカル環境で見た画面になります。

    では、実際にやっていきましょう。


  • AWS Fargateを選択します

    acs2.png


  • クラスタの名前はこれまた適当で構いません。全部流れで入力できます。

    ecs12.png


  • この画面になったら完了です。簡単ですね。


acs1.png


  • あとはタスクを実行して、こんな画面から

ecs9.png


  • こんな画面にいってIPを見て、ブラウザに入力します。

ecs10.png


  • 以下の画面が見えたら終わりです。

wp1.png


おまけ

SSHでコンテナにログインしたいこともあると思うので、SSHキーとセキュリティグループを設定します。

EC2インスタンスの中から、セキュリティグループというのがあるので、その中のSSHの項目を有効にするだけです。


これをやるに至ったきっかけ

wordpressをDockerでやろうと思いましたが、IP固定、DNS登録、Autoscaling、ボリューム、バックアップの料金

、管理の面倒さがコストになる判断しました。

Dockerのいいとこは、手早く環境を作られること、それによりすぐに開発に移ることがです。

ブログというのはDockerのメリットにそぐわないと判断し、僕はLightsailを使うことにしました。

ブログしたくて、wordpressが欲しかったらLightsailを黙って使うのが、やはりベストプラクティスでした。

参考記事 Qiita

https://qiita.com/niisan-tokyo/items/4e72c6c11c3f9562fe66

ここまで書きましたが、理解が間違っているところは多分にあると思います。

ご指摘よろしくお願いします。ウェルカム指摘。