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

(CDK Pipelinesの)「self-mutate」って何?

Makky12
September 07, 2024

(CDK Pipelinesの)「self-mutate」って何?

2024/09/07(土) に開催された「四国クラウドお遍路 2024 in 高知」における私のLT「(CDK Pipelinesの)「self-mutate」って何?」の発表資料です。 #jawsug_ohenro #jawsug #soracomug

https://jawsug-sikoku.connpass.com/event/322019/

Makky12

September 07, 2024
Tweet

More Decks by Makky12

Other Decks in Technology

Transcript

  1. #jawsug_ohenro 自己紹介 ◼ 名前: 鈴木 正樹 (Masaki Suzuki) ◼ 会社:

    PayPayカード株式会社(2024/06~) ← 株式会社DeNA(~2024/05) ◼ 職種: インフラエンジニア・DBA(本当はクラウドのアプリバックエンドが大好き) ◼ その他: • AWS(特にLambda), その他サーバーレスバックエンド全般 • Infrastructure as Code(特にAWS CDK), CI/CD (GitHub Actions, AWS CodePipeline) etc. • 主な活動支部:JAWS-UG 名古屋支部, JAWS-UG CDK支部 ◼ SNS: • @makky12 (SUZUKI Masaki@クラウドエンジニア) • @makky12.bsky.social • https://github.com/smt7174/ • http://makky12.hatenablog.com/ 3
  2. #jawsug_ohenro CDK Pipelinesとは? ◼ AWS CDKで、 CFn+AWS CodePipelineを利用したCDKアプリケーションのデプロ イパイプラインを構築するためライブラリ(≒コンストラクタ) ◼

    L3コンストラクタ(AWS CDKの一般的なコンストラクタはL2) ◼ でも、あまり使われてないような…(※ちなみに、DeNA時代に使ってました) ◼ その理由でよく聞くのが… 7
  3. #jawsug_ohenro self-mutateとは ◼ 「ビルドプロバイダー(大抵はCode Build)の変更」を確認し、変更があったら先に その部分のみデプロイを行うことで、「常に最新のパイプライン設定でアプリケー ションのデプロイを行う」仕組み ◼ アプリケーションのデプロイで、2度手間が発生しなくて済む 10

    AWS CodeBuild AWS Lambda 通常のデプロイ デプロイ 同時にデプロイすると、最新のビルド設定がアプ リケーションデプロイに反映されない (1つ前のビルド設定が適用される) AWS CodeBuild AWS Lambda self-mutate デプロイ1 デプロイ2 先にビルド設定をデプロイすることで、 常に最新のビルド設定で アプリケーションがデプロイされる
  4. #jawsug_ohenro self-mutateの課題 12 デプロイが2度走る ・ デプロイが2回走ることになり、その分時間がかかってしまう ・ 特に開発環境ではデプロイに時間をかけたくないことも多い(※) スタックの分割 ・

    CDK Pipelinesの仕様上、パイプラインとアプリでスタック分割が必要 ・ ここら辺がちょっと煩雑で、分かりにくいかも ビルド設定の変更頻度 ・ ビルド設定は一度確定すれば、そうそう変わらない ・ あまり「常に最新のビルド設定」というところに拘る必要性が薄い(かも) ※設定でself-mutateを無効にする事も可能(ただしあくまで開発用途であり、 本番環境でself-mutateを無効にするのは推奨されません)