本資料は書きかけのメモです。もう少し中身が分かったら、詳細に書く予定です。
Dockerを使う
Dockerを使うのですが、環境を整えるのが面倒なのでECSを使えないかと考えたので、そのメモです。
Amazon ECSの概念整理
クラスタ
ECSが動作するEC2インスタンスをまとめて管理する単位として、「クラスタ」という概念を用います。クラスタを作るとCloudFormationで環境作ってくれます。
ECS インスタンス
ECSを動作させるEC2インスタンスをECSインスタンスと呼びます。
クラスタの管理タブの一つとして表示されます。
実際のアクセスポイントはこのインスタンスのIPアドレスなどになるため、パブリックIPなどを確認します。
タスク定義
タスク定義は複数のコンテナを合わせて一つの集合をタスク・サービスと概念化して、その定義ファイルを「タスク定義」として管理します。
コンテナ定義
DockerFileやコマンドの引数となるような設定をコンテナ定義で実施します。
- ポートマッピング
- 環境変数
- イメージ名称
(dockerhubが利用できます。ユーザ指定をしなければ、officialのものが入ります) - Link対象
Task/Service
タスク定義に基づいて実際に動作させる設定がTask、Serviceとなる。この違いは一度起動すると終了するのがTaskで、監視していてコンテナが停止すると自動起動するのがServiceという違いがある。
ECS コンソール
ECSの管理ツールを用いると上記が簡単に設定できる。dockerのコマンドであるpull/run/startなどを自動的に実施ししてくれる。
今後のテーマ
今後のテーマとして、
- AutoScaling
- ELB
を用いて、インフラを考えることなくコンテナが利用できることを確認する。 - 専用のVPCに対してVPC間接続をしてEC2のサーバからプロキシして、一つのサーバで動作しているようにみせかけること