ローカル環境から、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にアクセスして動作確認をします。
確認ができたら、ダウンします
docker-compose down
このdocker-compose.ymlをECSの中で起動します。
AWSでの作業
ECSアップするまでにやることは、3つです。意外と簡単だと思います。
1.リポジトリにアップロードする
こんな画面になるので、コマンドをそのまま実行します。
これでECRへの登録は完了です
2.タスクを作る
僕の理解ですが、いくつかのリポジトリを一つのプロセス群として、タスクとして定義しておいて、それを、クラスタの中で実行します。
一つまたは複数のリポジトリをタスクという、括りで実行します。逆に言えば、タスクはリポジトリ単位で構成されるということです。
CLIはできるだけ使いません。なぜなら僕ができなかったからです。では、実際にやっていきましょう。
- 以下の画面で、Fargateを選択します。
3.クラスタを作る
-
平たく理解するなら、これから使いたいコンテナのことです。これを実行すると、ローカル環境で見た画面になります。
では、実際にやっていきましょう。 -
この画面になったら完了です。簡単ですね。
- あとはタスクを実行して、こんな画面から
- こんな画面にいってIPを見て、ブラウザに入力します。
- 以下の画面が見えたら終わりです。
おまけ
SSHでコンテナにログインしたいこともあると思うので、SSHキーとセキュリティグループを設定します。
EC2インスタンスの中から、セキュリティグループというのがあるので、その中のSSHの項目を有効にするだけです。
これをやるに至ったきっかけ
wordpressをDockerでやろうと思いましたが、IP固定、DNS登録、Autoscaling、ボリューム、バックアップの料金
、管理の面倒さがコストになる判断しました。
Dockerのいいとこは、手早く環境を作られること、それによりすぐに開発に移ることがです。
ブログというのはDockerのメリットにそぐわないと判断し、僕はLightsailを使うことにしました。
ブログしたくて、wordpressが欲しかったらLightsailを黙って使うのが、やはりベストプラクティスでした。
参考記事 Qiita
https://qiita.com/niisan-tokyo/items/4e72c6c11c3f9562fe66
ここまで書きましたが、理解が間違っているところは多分にあると思います。
ご指摘よろしくお願いします。ウェルカム指摘。