Rhyztech blog

docker-compose.ymlを使って5ステップでAmazon ECS環境を構築する方法

tech

Docker ComposeとAmazon ECSの統合により、docker-compose.ymlから環境を構築することができるようになりました。 ここではwordpressのシンプルな環境を5ステップで構築できることを紹介していきます。

ステップ1 - Dockerのコンテキスト情報を作る

Amazon ECS環境へデプロイするために、ECS環境をターゲットとしたDockerコンテキストを作成します。 ここでは「wordpress-dev」という名前でECS用のコンテキストを作成します。 コマンド実行後にAWSのアカウント情報やアクセスキーの情報はご自身のものを入力してください。

docker context create ecs wordpress-dev

docker context lsでコンテキストができているか確認します。(defaultは今までローカルで使っていたやつ

$ docker context ls
NAME                   TYPE                DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT                                 ORCHESTRATOR
default                moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock   https://kubernetes.docker.internal:6443 (default)   swarm
wordpress-dev *        ecs                 (ap-northeast-1)

ステップ2 - DockerのコンテキストをECSのものに切り替える

Dockerのコンテキストを今までローカルで使っていたものではなく、ECS用のものに切り替えます。

docker context use wordpress-dev

ステップ3 - wordpress用のDockerファイルを用意する。

wordpress用のDockerファイルを用意します。 wordpressのイメージは私がカスタムしたものを使っていますが、標準のものを使っても良いです。 ただし、標準のものはファイルのアップロード制限が厳しく、テーマがアップロードできなかったのでカスタムしたものを使用しました。

version: "3.2"

services:
  wordpress:
    image: rhythm191/wordpress-dev:latest
    restart: always
    ports:
      - 80:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    depends_on:
      - db
    links:
      - db
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - 3306:3306
volumes:
  wordpress:
  db_data:

ステップ4 - wordpressを立ち上げる。

docker comopseコマンドでECSに環境を立ち上げます。(docker-composeコマンドとは異なるので注意

docker compose up

ステップ5 - 立ち上がった環境を確認する。

docker compose psを行うことで立ち上がった環境のURL等を確認することができます。 これで立ち上がった環境にアクセスできます。 (下の例ではURLパス等は変えてあります)

$ docker compse ps
ID                                               NAME                REPLICAS            PORTS
wordpredd-dev-DbService-zK9GBBBBBBBBBBBB         db                  1/1                 dev-LoadB-1EGSXXXXXHUNTS-f19e4c2xxxxxxx88.elb.ap-northeast-1.amazonaws.com:3306->3306/tcp
dev-WordpressService-XOJJJEOKKKKKKADWDDDDDDSSS   wordpress           1/1                 dev-LoadB-1EGSXXXXXHUNTS-f19e4c2xxxxxxx88.elb.ap-northeast-1.amazonaws.com:80->80/tcp

おまけ - 環境の落とし方

次のコマンドで綺麗さっぱり環境を削除することができます。

docker compose down

Copyright 2021, rhyztech. All Rights Reserved.