tl;dr
こんばんは。最近は Fargate づくしのえのかわです。 CircleCI から ECS に対して Blue/Green Deployment をしたい場面、ありますよね。CircleCI-Public/aws-ecs-orb を用いることで Rolling Update は可能だったのですが、Blue/Green Deployment はサポートしていなかったのでコントリビュートしてみました。その流れを記録としてこのエントリに残したいと思います。
検討期
CircleCI から ECS に対して Blue/Green Deployment をしたい場面に遭遇し、いくつか方法を検討しました。
- CircleCI-Public/aws-ecs-orb を利用する
- kayac/ecspresso や silinternational/ecs-deploy などのデプロイツールを利用する
.circleci/config.yml
にスクリプト書く
当時は aws-ecs-orb 、ecspresso 、ecs-deploy それぞれ Blue/Green Deployment に対応していませんでした。aws-ecs-orb は以前から Rolling Update で利用していて、かつ Task Definition の Update もよしなにやってくれるので Issue を出しました。
Maintainer のコメントから、直ぐに対応はしてくれないだろうなーと思い PR を出そうと決めました。
コーディング期
といっても書くのは YAML と Shell くらいですが。。あと英語に苦戦しました。出した PR はこちら。
Description も書く必要があり、英語がつたない僕に Maintainer の lokst 氏が優しくコメント/レビューしてくれたのは助かりました。
やってよかった
1 人でイチからやった && プライベートの時間を使っての対応だったのでだいぶ時間が掛かりましたが、振り返ってみると「やってよかったなぁ」と心底感じました。ぼく自身、多くの OSS を利用していますが、あまりコントリビュートしていない点にコンプレックスを感じていたので、エンジニアとして少しレベルアップした気分です。ということで、今後も PR チャンスを見つけたらガンガン OSS にコントリビュートしていきます。Contributors に自分の名前があるのは嬉しいものです。