ECS (Amazon Elastic Container Service) の Fargate 起動タイプで WordPress を動かす

概要

ECS の Fargate 起動タイプで Docker 公式の WordPress のコンテナを動かしてみた。
ほぼ EC2 起動タイプについての記事 の Fargate 版。

Fargate とは

Docker コンテナを動かすクラスタとして、自前で管理する EC2 ではなく、AWS 管理のリソースを使用する方式。 要するに、ECS が純粋にコンテナをホスティングするためのプラットフォームとなる。

出典: Introducing AWS Fargate – Run Containers without Managing Infrastructure | AWS News Blog

なにが嬉しいのかというと、こちらに記載したとおり、コンテナのホストとなる EC2 インスタンス (の脆弱性対応やスケーリングなど) を自分で管理するコストが不要となるという点がデカイ。

手順

タスク定義

  • Fargate を選択

Fargate 起動タイプを使用している場合、host および sourcePath パラメーターはサポートされません。
タスク定義パラメーター

WordPress コンテナの起動設定。 コンテナ定義は、 EC2 起動タイプのそれと同様に下記を設定。

Data Volume コンテナは意味がないので、今回は設けない。

クラスター作成

  • EC2 を作成しないので「ネットワーキングのみ」を選択

  • EC2 起動タイプと比較すると、EC2 インスタンス周りの設定がないのですごくあっさり

サービス定義

  • EC2 起動タイプの場合と大差ない
  • コンテナの ENI へのパブリック IP 割当てが可能だったので、ELB は設定しなくても、とりあえず外部からアクセスできた
    • EIP は設定できないので運用時は ELB など必須

ここまで行うと、ぬるっと WordPress コンテナが作成される。 コンテナの Public IP へアクセスすると WordPress 初期インストール画面が表示されるはず。

所感

  • EC2 インスタンスを意識せずにコンテナを動かせるのはインパクトがデカい
    • ただの IaaS からコンテナ用 PaaS へのパラダイムシフトみがある
  • いろいろ制限があってできないことが多いので要注意
  • AWS 管理のホストマシンを使っている都合上? ストレージを永続化できないので、真面目にステートレスなコンテナを実装しないと使えない

各 Fargate タスクはプロビジョニング時に次のストレージを受け取ります。タスクストレージは一時的なものです。Fargate タスクが停止すると、ストレージは削除されます。
Amazon ECS の AWS Fargate