Application Architecture
definitionとserviceをどうやって作かを考えた場合、個々のコンポーネントのスケールをどうするか、同じ instanceで動かす必要があるプロセスがどれなのかを考える手伝いになる。サンプルは以下のコンポーネントを構成していると仮定する。
- フロントエンドサービスはwebpageで表現する
- バックエンドサービスはフロントエンドの為のAPIを提供する
- データストア
開発環境ではおそらく全部で3つのコンテナをDockerホストで動かすだろう。本番環境でも同じアプローチをする誘惑にかられるだろう。しかしこのアプローチはいくつかの欠点があります。
- 一つのコンポーネントを変更すると3つのすべてのコンポーネントに影響する。あなたが望む変更の範囲より大きいだろう。
- 個々のコンポーネントのスケールがより難しい、なぜなら全部のコンテナを比例的にスケールしなければいけない
- Task definitionは定義できるのは10コンテナだけで、アプリケーションは今後より多く必要とする場合がある
- Task definitionにあるすべてのコンテナは同じ container instance上に配置しなければいけない。それによってinstanceを大きいサイズにしなければいけない。
一般用途のtask definition