Installing the Amazon ECS Container Agent
もしAmazon ECS container agentが含まれているAMIから起動してない場合は以下の手続きでinstallが出来る。
Note Amazon ECS container agentは Amazon ECS-optimized AMIに含まれているのでinstallの必要性はない。
Amazon Linux ECS instanceに Amazon ECS containe agentをインストールする
- ECSにアクセス出来るIAM role割り当てられたAmazon linux instanceを立ち上げる。詳細Amazon ECS Container Instance IAM Roleを参照
- instanceに接続する
- ecs-initパッケージをインストールする。詳細はview the source code onGitHub
sudo yum install -y ecs-init
- Docker daemonを起動する
sudo service docker start
- ecsinit upstart jobの起動
sudo start ecs
- agentの起動とinformationをagent introspection APIから確認出来る。(optional)詳細は Amazon ECS Container Agent Introspectionを参照
curl http://localhost:51678/v1/metadata { "Cluster": "default", "ContainerInstanceArn": "<container_instance_ARN>", "Version": "Amazon ECS Agent - v1.12.2 (ecda8a6)" }
Amazon Linux EC2 instance以外にinstallする場合
- Amazon ECS をアクセスできる IAM roleが割当られるEC2 instanceを起動する。詳細はAmazon ECS Container Instance IAM Roleを参照
- instance に接続する
- instance にDockerをインスントールする。Amazon ECS は Docker version 1.5.0以上が必要(推奨バージョンは1.11.2)。多くのsystemのpackage manager、例えばyumやapt-getはこのバージョンを持たない。dockerの最新版を特定のLinux ディストリビューションにインスントールする情報についてはhttp://docs.docker.com/installation/を参照。
note Amazon Linux AMI はいつもECSのためのおすすめのDockerのバージョンが含まれている。sudo yum install docker -y を使用してAmazon LinuxにDcokerをインストールすることができる。 - 必要最小バージョンの確認をする
このサンプルでは、Dcokerのversionは1.4.1、これは最小バージョンの1.5.0より下になる。このinstanceはシステムのupgradeが必要となる。dockerの最新版を特定のLinux ディストリビューションにインスントールする情報についてはhttp://docs.docker.com/installation/を参照。$ sudo docker version Client version: 1.4.1 Client API version: 1.16 Go version (client): go1.3.3 Git commit (client): 5bc2ff8 OS/Arch (client): linux/amd64 Server version: 1.4.1 Server API version: 1.16 Go version (server): go1.3.3 Git commit (server): 5bc2ff8
- 以下のコマンドをcontainer instanceで実行してtaskのためのIAM rolesを有効にする。詳細はIAM Roles for Taskを参照
sysctl -w net.ipv4.conf.all.route_localnet=1 iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679 iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679
- Amazon ECS container agent