Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ECSのCanaryリリースをExternalデプロイタイプで実現する方法

 ECSのCanaryリリースをExternalデプロイタイプで実現する方法

Tetsuya Kikuchi

August 03, 2024
Tweet

More Decks by Tetsuya Kikuchi

Other Decks in Programming

Transcript

  1. Tetsuya Kikuchi 3 @t-kikuc @t_kikuc • PipeCDのメンテナ @ (株)サイバーエージェント ◦

    PipeCD: OSSのデプロイツール ◦ 主にAWS関連機能(ECS,Lambda)の開発を担当 • 関心領域: CI/CD、DevOps • 今年度AWS認定10個ぐらい失効します
  2. PipeCDとは • PipeCD: OSSのデプロイツール ◦ ECS, Lambda, Kubernetes, Terraform, CloudRunに対応

    ◦ CanaryやBlue/Greenが強み ◦ Gitと実環境とで差分があった場合、自動で再デプロイ • CNCFのSandboxプロジェクトの一つ • 先月GitHubのStar⭐が 1,000到達 4
  3. Service-A 1/5. CanaryのTaskSetを作成する (CreateTaskSet) TaskSet-Primary Task Task Task v1 11

    TaskSet-Canary Task Task Task v2 ECS ELB Listener Rule port: XX
  4. 補足 • Externalデプロイタイプには制約も多いので注意 ◦ https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-external.html#deployment -type-external-considerations • PipeCDはService Discoveryでも一部異なる仕組みでCanary対応済 ◦

    仕組み: https://qiita.com/t-kikuc/items/25bd032606d878229ed7 ◦ 肝:ELBがいない ◦ Service Connect、App Meshは未対応 • PipeCDでの主な該当コード ◦ https://github.com/pipe-cd/pipecd/blob/master/pkg/app/piped/executor/ecs/deploy.go ◦ https://github.com/pipe-cd/pipecd/blob/master/pkg/app/piped/platformprovider/ecs/client.go 18