この記事はContainer with AWS Advent Calendar 2015の21日目の記事です。
昨日はpottavaさんの「AWSで docker-swarmクラスタを立ち上げようとして失敗した話」でした。
AWSで docker-swarmクラスタを立ち上げようとして失敗した話 - Qiita
Amazon EC2 Container Service (ECS)と戯れた1年
今年はproductionにDockerを投入するという、自分としてはかなりアプリケーションのアーキテクチャに変革が起きた年だったので振り返ってみようと思います。んで、来年の戦略等をば。
書いた記事
書いた記事はこんな感じ。
WebアプリをDocker構成にした場合にフロントエンドリソースを扱うためのデザインパターン - tehepero note(・ω<)
『Flexible Blue Green Deploymentのススメ』
UbuntuでUpstartを使ってECS Agentをサービス化する - tehepero note(・ω<)
EC2 Container Service(ECS)を管理して、Blue-Green Deploymentを実現するツールを書いた - tehepero note(・ω<)
Amazon EC2 Container Service(ECS)でPrivate Docker Registryを立ててみた - tehepero note(・ω<)
登壇資料
11月にはコンテナ支部にお呼ばれしまして、40分も喋らせていただきました。
ecs-formation
東京リージョン公開後からECSを使っていましたが、当時はecs-cliとかも何も無かったのでecs-formationというTask Definitionの更新やServiceの更新(deploy)をするツールを書きました。
ローカルではdocker-composeを愛用しているので、同じようなyamlの構造でECSも操作できたらなーと思い作ったツールです。今のプロジェクトでは2ClusterパターンでのBlud Green Deploymentも行っていますが、ecs-formationではこれもサポートしてくれます。
とはいえ本家がecs-cliを出してきた現状ではecs-formationの立ち位置についてはちょっと微妙かもしれません。しかし、ecs-cliにスイッチする必要があるかと言われればそれも無い気がしてるので、当面はガッツリメンテしていきたいと思います。
ちなみにこの週末でかなりアップデート入れました。
Issues · stormcat24/ecs-formation · GitHub
docker-composeとECSの最新に追従した感じです。
ecs-formationのこれから
ECS自体も頻繁にアップデートされているので追従していくのはもちろん、実運用に活かせる機能はどんどん入れていきたいところ。
Notificationの充実
TaskがRUNNINGになったことを通知したいっていう欲求がかなりあります。これ実は単純ではなくて、RUNNINGになったけどアプリの初期処理で落ちて**RUNNING → FAILED** になったりすることもあるので一筋縄ではいかなそう・・・
リソースキャパシティチェック
ECSのClusterのキャパシティを超えるようなタスクを稼働させることはできません。これを許容キャパシティを見ながらTask Definitionを設定してるのがちょっとタルい(リソース計算芸人みたいになってる)。 なので、許容リソースをみつつcpu_unitsやmemoryを動的に調整できるようにしたいところ。
コンテナ芸人としての来年
個人的にはフロントエンドに転向するというロードマップがあるのですが、今のフロントエンドからもDockerというかコンテナは切り離せない存在になってきているので今後もコンテナ芸人活動を続けていくかと思われます。 コンテナ界隈での勉強会ではチョロチョロしそうなので引き続きよろしくおねがいしますといったところです。