昨日、AmazonにてJAWS-UGコンテナ支部に参加しました。
ECSのサービス担当者によるAmazon ECS Case Study and Use Case
コンテナ
利用率の監視、モニタリングの監視が必要。セキュリティも。
コンテナの状態(Runningしているのか、Stoppingしているか)
コンテナ、クラスタが多くなると、管理も大変になる。ここで、AmazonECS、Kubernetes(Google Container Engine)が必要に。
AmazonECS
クラスタの中で複数のジョブスケジューラを起動できる。他のAWSサービス(EBS、ELB、Cloudformation等)との連携が可能。
シンプルなAPI
DockerHubに登録されているDocker イメージをpull、runするので、pullするのに時間がかかる、DockerHubにイメージを置くのがセキュリティ的に二の足を踏む場合も。
Google Container Registry に相当するサービスが望まれる。あと、コンフィグがjsonフォーマットだけでなく、yamlでも記載できれば。
ユースケース
バッチジョブ
マルチスケジュール機能を活用してバッチ処理に最適。
http://thinkit.co.jp/story/2015/04/10/5855
継続的インテグレーション
immutable infrastrure。サーバー使い捨て。コンテナの起動の高速な点を活用。
分散アプリケーション、マイクロサービス
MVCモデルでWebアプリケーションを開発デプロイすると規模も大きくなる。この反面、1 functionにサービス提供するのにコンテナには最適と考える。
IoT向けのサーバリソースにdockerも選択肢の1つになるのか。
PaasS。マルチテナントに適用しやすくなる。
cloudpack 鈴木様のスライドより
すべてのインスタンスで動かしたいコンテナがあればAmazonECS Taskで動かせる読み物はこちら。
https://aws.amazon.com/jp/blogs/compute/running-an-amazon-ecs-task-on-every-instance/
EC2→ECS
EC2の資源をそのまま載せ替えることもできるが、2-Tier アーキテクチャで作り直すのがいい。
コンテナはSierの点から運用保守とか考えると導入しずらいのも事実。
Blue-Green Deployment with ECS and monitoring by はてな
ECSでBlue-Green deploymentを行うとすると、Taskのhost portをずらす、Delete/CreateLoadBalancerListenerがアトミックでないので、一時的に紐付けいているものがいなくなることも。この点、HA Proxyで解決できること
モニタリングは、ベーシックな監視はcgroup。詳細は、 https://docs.docker.com/articles/runmetrics/
docker in docker 。コンテナの中で、コンテナの話も。docker in dockerは正直実運用には。。。
https://blog.docker.com/2013/09/docker-can-now-run-within-docker/
https://github.com/tehranian/dind-jenkins-slave
docker in dockerとjenkins (Ci)との連携も
https://github.com/jpetazzo/dind