Closed6

ECSでCICD(GHA+Codeシリーズ)

ひやんが / hiyangerひやんが / hiyanger

ECS、RDS、ALB、ネットワーク全般、Codeシリーズ作成

ある程度、ちゃんと作ろうとするとそれなりにリソース作成が必要になってしまった...

Terraform

Pipeline(ECRから未発火)

とりあえずパイプラインできたとこまで

→V2で発火(V1だとNG)

ひやんが / hiyangerひやんが / hiyanger

CodeBuild / RDS マイグレーション

SQLファイルをgitに配置時、GitHubActionsでイメージのビルドと一緒にS3へSQLファイルをコピーする。

RDSはプライベートサブネットに配置するとCodeBuildもVPC内に配置して、お互いにセキュリティ許可とCodeBuildが外部通信するためにNATをおくというなかなか手間なことになる。なので、今回はRDSをパブリックに配置。ただしこの場合、CodeBuildのIPがパッとわからないので、一旦IPを全許可する方向でテスト。

※一応IPはここから探れば絞れるかも?
https://docs.aws.amazon.com/vpc/latest/userguide/aws-ip-ranges.html

ひやんが / hiyangerひやんが / hiyanger

CodeDepoloy

構成図はこんなかんじ

アーティファクトはいろんな動きをとることができるのでいろいろ考えてみた

できました☺️

まじでハローワールド...

やりのこしたこと(やりきれなかったこと)

  • DBのマイグレーションはSQLを別でつくってやってるけど元のイメージ使ってやりたい

https://zenn.dev/reireias/articles/8e987af2762eaa#3.-image-buildのみgithub-actionsでやる

  • appespecももっと簡単に取得したい(ソースステージ追加とか?)
  • appscpecの <TASK_DEFINITION> がとれない(ARNベタ書きしてる)
  • task_def.json 使いたい
  • 複数リポジトリ&イメージになったらどうする?

かんそう

CodeBuildのマイグレーション、CodeDeployでアーティファクト設計が大変だった。 逆に言えばいろんな方法がとれるので、おもしろいなぁとおもった。

できるまで数日かかってしまった。アドカレのためにかいてたので12/31におわらせたかったけど、1/1までのびてしまった。でもおわってよかった。

参考

https://dev.classmethod.jp/articles/codepipeline-ecs-codedeploy/

https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html

https://tak-bluesky.work/node-codepipeline/#

ひやんが / hiyangerひやんが / hiyanger

codeシリーズは ecspresso という選択肢も
ECS外の動作で結局はCodeシリーズ必要?

https://qiita.com/sergicalsix/items/12c2441c08eb9aa311a8

ecspressoとは、ECS専用の管理・デプロイツールです。

ecspressoの利点は、ECSとそれ以外の管理方法を明確に分離できる点です。一般に「アプリケーションの>デプロイ頻度>>他リソース(ex.EC2)のデプロイ頻度」より、管理方法が異なった方が都合が良いです。

このスクラップは2025/01/26にクローズされました