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
110
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
190
本当にやりたかったことは高速化ではなかった話
luliko
1
430
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
370
HDC tutorial
michielstock
2
720
Building an army of robots
kneath
306
46k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Exploring anti-patterns in Rails
aemeredith
3
410
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
BBQ
matthewcrist
89
10k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Side Projects
sachag
455
43k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
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破損リスク △ ◦ ◦