Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jaws.pdf
Search
luliko-hub
April 30, 2026
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
jaws.pdf
luliko-hub
April 30, 2026
More Decks by luliko-hub
See All by luliko-hub
yuru_sre_orui.pdf
luliko
0
230
本当にやりたかったことは高速化ではなかった話
luliko
1
470
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
Amusing Abliteration
ianozsvald
1
240
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
340
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
Technical Leadership for Architectural Decision Making
baasie
3
460
Between Models and Reality
mayunak
4
380
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Context Engineering - Making Every Token Count
addyosmani
9
1k
Are puppies a ranking factor?
jonoalderson
1
3.8k
A Soul's Torment
seathinner
6
3.3k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
240
Transcript
インフラとソースコードの管理境界 を意識したECSデプロイパイプライン の構築 2026年4月 株式会社ギフティ 大類 有紀子
©2019 giftee Inc. all rights reserved 2 自己紹介 ⚫ 名前:
大類 (おおるい) 有紀子 ⚫ 所属: 株式会社ギフティ 技術本部 ⚫ 職種: エンジニア (新卒3年目) ⚫ 仕事 ⚫ 受託開発メインです。 ⚫ 大手飲食チェーン (クライアント) に向 けて開発をしています。
©2019 giftee Inc. all rights reserved 3 前提 チームで運用しているシステムのEB→ECS化案件を実施 ⚫
このシステムの特徴として、インフラ/ソースコードに以下の管理境界があ る ⚫ ECS化対応後もこの境界を変更しないために、IaCをリポジトリで管理する 方針は基本とらない インフラ ソースコード 置き場 クライアントの管理する AWSアカウント 弊社の管理するgithubリ ポジトリ 役割分担 クライアントがAWSマネー ジドコンソールから変更 弊社が自動CIの実行によ り変更を反映
©2019 giftee Inc. all rights reserved 4 前提 CIのデプロイワークフロー 1.
DockerイメージをECRにプッシュ 2. 1のdocker imageを指定して、タスク定義を更新 3. ECSサービスが、更新後のタスク定義のバージョンを指定してタスクをデプロイ これの実現方法を何通りか検討したのでご紹介します
©2019 giftee Inc. all rights reserved 5 方法1: AWS CLIを使う
CIの流れ 1. 既存のタスク定義をdescribe-task-definitionコマンドで取得 (json形式) 2. 取得したタスク定義をjqコマンドを使用して書き換える 3. register-task-definitionコマンドで、新しいリビジョンを作成する メリデメ 管理境界 (クライアント: インフラ / 弊社: ソースコード) が明確 CI破損リスクがある ⚫ jqのハードコードにより、タスク定義の構造が変わった場合にCIが破損する危 険がある
©2019 giftee Inc. all rights reserved 6 方法2: ecspressoを使用する ecspressoとは
⚫ ECSのデプロイにフォーカスしたツール ⚫ タスク定義、サービス定義をコード管理する CIの流れ 1. リポジトリに管理しているタスク定義、サービスを更新して書き換える 2. ecspresso diff コマンドで、AWS上の設定と差分を確認 3. ecspresso deployコマンドでデプロイを実行する ⚫ タスク定義の更新/ECSサービスへのデプロイを行う メリデメ 方法1よりCIが壊れるリスクは少ない 方法1より管理境界 (クライアント: インフラ / 弊社: ソースコード) が曖昧 ⚫ タスク定義/サービス定義の設定更新が発生した場合、お客さんから依頼を受け て弊社側で行う必要がある
©2019 giftee Inc. all rights reserved 7 方法3: aws-actionsを使用する aws-actionsとは
⚫ AWSが公式に提供しているGitHub Actions 用のライブラリ CIの流れ 1. amazon-ecs-render-task-definitionで最新のタスク定義をダウンロード 2. タスク定義を書き換える 3. amazon-ecs-deploy-task-definitionでデプロイの実行 ⚫ タスク定義の更新/ECSサービスへのデプロイを行う メリデメ 方法1よりCIが壊れるリスクは少ない 方法2より管理境界 (クライアント: インフラ / 弊社: ソースコード ) が明確 →最終的にこの方法を採用
©2019 giftee Inc. all rights reserved 8 まとめ ⚫ ECS化案件にてCIの構築をしていた
⚫ 該当のシステムは「クライアント: インフラ / 弊社: ソースコード」で管理 境界を分けたかった ⚫ タスク定義を更新において、3つの方法を管理境界の明確さ/CI破損リスク の軸で検討した結果、「aws-actionsを使用した方法」を採用する判断に 至った 方法1: AWS CLIを 使う 方法2: ecspressoを 使用する 方法3: aws-actions を使用する 管理境界の 明確さ ◦ △ ◦ CI破損リスク △ ◦ ◦