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
新卒エンジニアがCICDをモダナイズしてみた話
Search
Akashi_SN
April 21, 2025
Technology
2
400
新卒エンジニアがCICDをモダナイズしてみた話
Akashi_SN
April 21, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
190
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.4k
20251007: What happens when multi-agent systems become larger? (CyberAgent, Inc)
ornew
1
260
How to achieve interoperable digital identity across Asian countries
fujie
0
150
サイバーエージェント流クラウドコスト削減施策「みんなで金塊堀太郎」
kurochan
2
740
許しとアジャイル
jnuank
1
150
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
370
20251014_Pythonを実務で徹底的に使いこなした話
ippei0923
0
190
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
6
1k
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
310
速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ
ismk
6
1.2k
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
740
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Fireside Chat
paigeccino
40
3.7k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
A designer walks into a library…
pauljervisheath
209
24k
How GitHub (no longer) Works
holman
315
140k
Being A Developer After 40
akosma
91
590k
Docker and Python
trallard
46
3.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.3k
Automating Front-end Workflow
addyosmani
1371
200k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
新卒エンジニアがCICDを モダナイズしてみた話 JAWS-UG東京 ランチタイムLT会 #22 2025/04/22 KDDI 西 総一朗
自己紹介 ◼ 2024/04 KDDI株式会社 新卒入社 ◼ 2024/09 現部署配属 • CICDのモダン化
• Terraformバージョンアップ ◼ 2025/04 2年目…! 経歴 ◼ フロント系(AWS)システムのインフラ開発・運用 ◼ 内製開発チーム 業務内容 氏名 所属 趣味 西 総一朗 KDDI株式会社 自宅サーバ 2
趣味 - 自宅サーバ サーバ君たち (左・右下: ワーカノード、 中央:ストレージ) ルータ(IX2215)は固定IP用と MAP-E用で2台体制 ストレージと各ノードは10Gで接続
(冷房つけてても30度になってる…) メインPCと作業机 (フルタワーケースなのでめちゃでかい) ※ストレージについては実家(大阪)にも設置してて毎時同期をしている 3
既存のCICD環境(Jenkins)の問題 ◼属人化問題 Jenkinsおじさん Jenkinsの設定をした人に属人化してしまうことから呼ばれている ➢設定をGUIで行えてしまうことも原因 ◼塩漬け問題 共通化しようとして複雑怪奇に
実際にどのようにJobが実行されているかを追いかけるのも大変 ➢その結果ビルドツール・OS等が塩漬けとなってセキュリティ問題になりかねない 本来のJenkins おじさん 処理の中身追いかける事のお手伝いする事は残念ながら工数がないです。 中身に詳しい人もいないです。 前任者 4
脱Jenkinsに向けて… (1/2) ◼CICDシステムが巨大すぎる… ➢スモールスタートとしてIaC (Terraform)のGHEリポジトリを対象に ◼アーキテクチャどうしよう? ➢GitHub ActionsとAWS CodeBuildの組み合わせを活用 AWS
CodeBuild がマネージド型の GitHub Action ランナーのサポートを開始 5
脱Jenkinsに向けて… (2/2) ◼商用作業ルールにどうやって適合させる? 商用作業前には作業申請が必要 ➢CIとCDを分離する ➢読み取り専用(Plan)と変更可能(Apply)の2台編成 特権申請を行わないと変更ができない ➢特権ロールと通常ロールとを使い分けることで実現
➢特権申請済みのアカウントで手動で 通常ロールに付与されたポリシーを削除する運用 (通常ロールには特権ロールへスイッチできないポリシーが付与されている) 6
新CICDシステム構成 ◼開発・ステージング・商用環境ごとにCodeBuildを配置 7
JenkinsとGitHub Actionsでの開発工程の違い ◼Jenkins時代 商用環境でPlanを実行するのにも商用作業扱い 作業当日まで商用環境での差分が不明 資材格納ジョブ ->
Planジョブ -> Applyジョブ -> Planジョブの工程を踏む Plan/Applyでは1回で1環境面しか回せないため時間がかかる(現在は商用含め15面!?ある) ◼GitHub Actions時代 商用環境でもPlanはいつでも回せる 特権申請をバイパスして変更することはできない 商用作業時はApply前に差分チェックや承認フェーズを挟むことができる 複数面の一括実行も可能に 8
まとめ ◼自前で運用するのではなく、なるべくマネージドなサービスを使用しよう 運用コストの削減やセキュリティ面でもメリットがある ◼システムは全てコードで管理し、なるべくシンプルな構成にしよう 属人化を防ぐことが期待できる ◼配属されて1カ月で前任者が離任したが、半期でCICDモダン化を完遂できた! • 技術的な知識はあっても大企業特有の仕組み(商用作業・各申請等)の理解に苦労した
• 趣味の自宅サーバ運用で使用していたGitHub Actionsの知識を生かせた • 新しい技術などに興味を持ち続け、新技術で改善していくことは楽しい! 9