昨日は「JAWS-UG コンテナ支部 #9」に参加して,LT もしてきた.ECS を中心に移行の話,デプロイの話,モニタリングの話などを聞けたし,懇親会にも参加させてもらって,カジュアルに話せて楽しかった.僕もコンテナ支部の運営をお手伝いしたいな!
発表資料
今回 LT 枠で応募したら採択してもらえたので「ECS x Mackerel ~ 動的ポートマッピングに対応したタスクのメトリクスを取得する ~」という話をしてきた.内容としては,前にブログに書いた記事を整理した感じ.時間も少なくシュッと話したので,詳しくはブログを見てもらえればなと!
他の発表でも似た話があったけど,やっぱりタスクのメトリクスも取得したい場合は Datadog 一択という雰囲気があるので,CloudWatch や Mackerel でも気軽に低コストに取得できるようになると嬉しいなと思う.
感想
ECS アップデート情報 @riywo
- CloudWatch Events から ECS の RunTask を実行できるようになった
- RunTask と StartTask を実行するときに CPU と Memory の設定値を上書きできるようになったため,複数のタスク定義を作る必要がなくなった
- ただし,Service に紐付いていると使えないため注意すること
- Blue Green Deployment
- CloudFormation
ECS はサービスのアップデートが多く,どんどん便利になっていく印象がある.CloudWatch Events から ECS の RunTask が実行できるのであれば,バッチ基盤としても柔軟に使えそうですごく気になる.タスク定義を実行時に上書きできる機能は初耳だった.試してみよう.
www.slideshare.net
乗換 Navitime のバックエンドをオンプレから ecs に移行した時の話
- ECS Agent の接続チェックを
aws ecs describe-container-instances
を叩く - ECS Introspection API
- ECS ID Mapper
- タスクのメトリクスを取得するために Datadog を使っている
www.slideshare.net
AWS ECS のサービスを slack bot でデプロイする話 @h3_poteto
- amazon-ecs-cli は少し不便で,デプロイ完了を待ってくれない
- ecs-goploy を作った
- GitHub - crowdworks/ecs-goploy: re-implementation of ecs-deploy in Golang
- ロールバックデプロイもできる
- サブコマンドで run-task もできる
ecs-goploy はパッケージ実装になっているとのことで,Capistrano のような印象を受けた.僕も ECS のデプロイツールを選定するためにいろいろ調査したけど,最終的には silinternational/ecs-deploy にした.完全にシェルで実装されていることと,タスク定義の更新とサービス反映が簡単に行えることがメリットだった.発表でも話があったけど,確かに master の実装を見るとタスク定義だけの変更ができそうに見えるんだけど,実際に使ってみるとエラーになる(もしかしたら今はもう直ってるかも).CloudFormation を使ったデプロイはまだ試したことがないので,近いうちに試してみようかなと.
GitHub + ECS で快適 Review 環境 @pataiji
- デプロイ環境(特にステージング)の渋滞があり,もっとスケールさせたいと考えていた
- Heroku Review Apps も検討した
- GitHub から WebHook を受ける
- branch を clone して,Rails アプリケーションを起動させる
以下の記事を前に読んでいて,興味があったので「あの話かー!」という感じだった.まだ一部自動化できていない部分もあるみたいだったけど,それでも素晴らしい試みだと思う.少し気になったのは,データベース変更が伴うプルリクで,この場合も特に考慮せずに動作確認できるようになっているのかな?
AWS CodeBuild カスタム Docker イメージを使ってビルドする
- CodeBuild で buildspec.yml に書く version は 0.2 にする
- 管理コンソールの手順解説
AWS の Code 系は使ったことがなく,おおー!という感じだった.うまく自動化できれば良さそう.
関連記事
「JAWS-UG コンテナ支部」の参加は今回が3回目だった.引き続き参加したいと思う.
参加レポート
発表中!