CodeDeploy + Github + AutoDeployでくっそハマった。
Amazonの英語のチュートリアルをおうだけなんですねどねー
英語読めないわしにはつらい。
所感をメモっとくと・・・
- EC2にはCodeDeployのAgentをインストールしないと行けない(これは必須みたい)
- appspec.yml にdeploy script的なものを呼び出す記述をするが、ここでエラーになると原因が追いづらく感じたので小さく作っていったほうがいい(慣れの問題?ログがわかりづらい気がした。Agentのログが出ているのでちゃんと見ればそれで原因は追えそう)
- GithubとAWS CodeDeployが直接連携できる。AccessKeyとか渡すので、連携用にIAM作るのがベター。
- トリガーにはGitHub Auto-DeploymentとかいうService使う。デフォルトのブランチしかhockできないっぽい。
- デフォルト以外のブランチでもCodeDeployフックさせるなら適当なCIサービス使わないとダメかなー
- AWSCodeDeployRole をEC2のiam-roleに紐付ける
- ログの場所 /opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log
基本amazonのdocument見ればok。なんとなくどこまでやってくれるサービスなのか掴めてなかった。
一瞬hockの方法がわからなかった(Github -> CodeDeployの連携ができることを知らなかった)ので、Webhock -> API Gateway -> Lambda -> CodeDeploy ? とか思ってめんどくせーなーと思ったけどそんなことなかった。
まとめ
- CodeDeployとGithubを組み合わせて、JenkinsやCI不要で自動デプロイができる。
- また、AutoScalingグループに対してローリングデプロイみたいなことができるのでこれ便利。