Amazon EC2 Container Serviceでサービスを構築する③ 〜 入門Amazon ECS 〜

前回の続き
いよいよECSを使ってみよーってことで、今回見てるのはGetting Started with Amazon ECS - Amazon EC2 Container Serviceこの辺。
ECSコンソールでタスク定義、スケジュール定義、クラスタ設定をしていこう。

ECR(Amazon EC2 Container Registry)をサポートするリージョンでやる場合は、ECRイメージレポジトリを作ってイメージをプッシュすること可能。使いたいときは下記参照。
Amazon ECR

ECSのfirst run wizardはECSを始めるための手順をガイドする。wizardはサンプルwebアプリケーションのクラスタ作成と実行のオプションを与えてくれる。またはECS上で実行したいdockerイメージをもう持ってるなら、そのイメージのタスク定義を作って、クラスタ内で使うことができる。

注意
前回の記事に書いたような内容は先に済ませておく必要がある。



ECS first run wizard設定オプションの選択

  1. ECS first run wizardを開こう
    https://console.aws.amazon.com/ecs/home#/firstRun
  2. ECRがサポートされているリージョンならECRを使う選択肢が表示され、使うこともできる。使わない、出来ないならcontainer task定義作成に進む。ECR使わないのでとりあえずとぶ。

Create a task definition (task定義の作成)

task定義はアプリケーションの青写真みたいなもんだ。どのdockerイメージを使うのかをcontainerに伝え、taskの中で何個のcontainerを使い、それぞれのcontainerのリソース割当を指定するために、ECSを稼働させるときにはtask定義を必ず指定しなければならない。

task定義パラメータの作成

first run wizardはタスク定義がプリロードされています。下記のようなsimple-appコンテナ定義が表示されています。
f:id:nyoro13:20151224173004p:plain
task定義のりネームやcontainerが使うリソース(cpuやmemory)のレビュー、編集が出来ます。リソースとかは「Advanced options」の中。first run wizardで作成されるtask定義は、簡潔化のためにシングルcontainerに制限されています。後ほどECSコンソールでマルチcontainerのtask定義を作ることが可能です。

Next stepを選択して続行

Configure service (サービス設定)

wizardのこのセクションではtask定義に作られるECSサービスをどのように設定したいかを選択する。
サービスはtask定義で指定された数のコピーをクラスタ内に起動し、維持する。
ECSサンプルアプリケーションは無期限に実行されるwebのhello worldアプリケーションなので、サービスとして実行されると、taskがunhelthyやストップ状態になるとリスタートする。

  1. Service Nameフィールドにはサービス名を
  2. Desired number of tasksフィールドには、task定義を起動したいtask数を
    • task定義にstaticポートマッピングがあれば、wizardの次セクションにある起動containerインスタンスの数はここで指定するtask数以上でなければならない。
  3. ELBのサービスへの使用を選択することも可能。ロードバランサを使用する設定のサービスからtaskが起動された時、taskが実行されるcontainerインスタンスはロードバランサとともに登録され、ロードバランサからの通信はロードバランサ内インスタンスを介して分配される。
  4. ロードバランサの設定を確認し、Next Step

Configure cluster (クラスタ設定)

wizardのこのセクションでは、クラスタに名前を付けtaskが配備されるcontainerインスタンスの設定を行うことができる。アドレス範囲やIAMロールなど。

  1. Cluster nameフィールドにはクラスタ名を
  2. EC2 instance typeフィールドには、containerインスタンスで使用するインスタンスタイプを。インスタンスのCPUとメモリが多ければ多いほど扱えるtaskの数は多くなる。
  3. Number of instancesフィールドにはクラスタ内にtaskを配備して実行しておきたいインスタンス数を。インスタンス数が多ければ多いほど、配備できるtaskも増える。インスタンスが増えるとお金もかかるから注意してや。注意: containerのポートをcontainerインスタンス上のポートとして開くタスクが複数あるサービスを作成する場合は(ECS sampleアプリのように)、複数インスタンスをここで指定する必要がある
  4. containerインスタンスのキーペアの選択。インスタンスsshログインするために必要。キーペアを指定しなければsshインスタンスに接続することは出来ない。キーペアが無いなら事前に作成すること。
  5. (Optional) Security GroupセクションではCIDRブロックの選択をする。デフォルトではがっばがば。
  6. Container instance IAM roleセクションでは作成済みのECS container instance roleを選択するか、新規作成を選択してください。
  7. Review and Launchをクリックして進む

Review

  1. 確認してLaunch Instance & Run Serviceをクリックして終了。Launch Statusページに移って起動ステータスとプロセスの各ステップの説明が表示される。
  2. 起動完了後にView serviceを選択しECSコンソールでサービスを見ることができる


次回へ続く





Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)