0
0

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 3 years have passed since last update.

AWSガチで何もわかってない人がECSでWordPressをデプロイするまで

Posted at

AWSはネットワークが独学難しく、半ば挫折気味でした。

AWSだと「Hello World!」を出すまでが非常に難しく(VPC、サブネット、ルーティングetc)まずは手を動かしてみるのにいい題材はないだろうか?

...と考えていたところ、ECSでWordPressをデプロイしてみるのが非常に簡単でオススメだということで、実際にやってみました。

必要なもの

dockerコンテナをローカルで立ち上げてみる

1. CLI上でdocker-composeファイル作成

(とりあえずディレクトリ直下にdocker-compose.yml作成いただければOKです)

  • cd path/to/your/directory プロジェクトを作成するディレクトリへ移動してください
  • mkdir {フォルダ名} && cd {フォルダ名} フォルダを作成し、そのディレクトリへ移動します
  • touch docker-compose.yml
    doccker-composeという複数コンテナからなるサービスを実行するための手順書(のようなもの)を作成します。
  • vi docker-compose.yml
  • i
    インサートモード起動
  • ▼をコピペ
docker-compose.yml
version: '2'
  services:
    wordpress:
      image: wordpress
      mem_limit: 268435456
      ports:
      - "80:80"
      links:
      - mysql
    mysql:
      image: mysql:5.7.25
      mem_limit: 268435456
      environment:
        MYSQL_ROOT_PASSWORD: password
  • esc
    インサートモード終了
  • :wqを押してEnter
    これでファイルを保存しviを終了します

2. docker-composeファイルのビルド

  • docker-compose up -d
    先ほど作成したファイルがあるディレクトリ直下で実行します
  • docker ps
    mysql:5.7.25とwordpressというイメージが作成されているのを確認します。
  • ブラウザでhttp://localhostへアクセス
    自動的に次のような画面にリダイレクトされると成功です。
スクリーンショット 2020-07-24 16.05.28.png

AWS ECS上でdockerコンテナを実行する

(参考) Homebrewによるecs-cliのインストール

  • パッケージのインストール
    brew install amazon-ecs-cli
  • 初回インストールなのでリージョン/クラスター設定
    ecs-cli configure --region ap-northeast-1 --cluster {好きなクラスター名}
    リージョンは日本を示すap-northeast-1を。
    クラスターとはかなりざっくり言えば、dockerコンテナをひとまとめにした大きな括りです。ここでは「wordpress-example」とかで大丈夫です。

実際にECS上にコンテナをデプロイする

先ほどのdocker-compose.ymlの存在するルートディレクトリから実行します。

  • 新規AWS ECSクラスターを作成する
    ecs-cli up --capability-iam --size 2 --instance-type t2.micro
    インスタンスタイプはお好みですが、最小限のt2.microを選択推奨です。
    --capability-iamは、新規でIAMロールを作成することを示唆します。
    https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-up.html)
    このコマンドを実行することで、新規CloudFormationスタックが作成されます。
  • 成功したら...
    ecs-cli psこちらのコマンドをどうぞ。
    すると下記のような出力がされるはず。
Name                                            State                                                                               Ports                    TaskDefinition  Health

こちらのPorts欄にある({IPアドレス}->80/tcpの){IPアドレス}をコピペして、ブラウザで開けると、ローカルと同じような画面が出てきます。

スクリーンショット 2020-07-24 16.05.28.png

お疲れ様でした!

学んだことなど

AWSコンソールから、ECSクラスターを作成してみても、いっこうにうまくいかなかったのですが、CLIだとここまで簡単にデプロイできるのか!と思いました。

このデプロイをやるだけでも、AWS全くわかってない勢としては、非常に苦戦しましたので、ぜひ参考にしてみていただけますと!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?