Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Claude Codeで進めるAWSリソースのTerraform移行
Search
熊懐葵
August 30, 2025
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Claude Codeで進めるAWSリソースのTerraform移行
機械学習の社会実装勉強会 第50回 (
https://machine-learning-workshop.connpass.com/event/366914/
) の発表資料です。
熊懐葵
August 30, 2025
More Decks by 熊懐葵
See All by 熊懐葵
AI時代のインターン研修再設計 コーディング力から課題創出・業務遂行力へ
aoikumadaki
0
190
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
290
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
130
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
180
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
270
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
500
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
980
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
390
AWS LambdaとLangSmithを使った社内レポート添削システムMinervaの実装
aoikumadaki
0
430
Other Decks in Technology
See All in Technology
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
1
620
形式手法を使って仕様をコーディングしよう
mikanichinose
0
150
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
250
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.4k
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
1
540
「大丈夫そう?」をObservabilityで確かめる
mrmtsu
0
240
手を動かして実感する、Kiro が変える開発体験
inariku
0
420
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
100
Terraformを用いたJamf Pro構成のIaC, GitOps化への挑戦
yukun
0
120
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
6
1.9k
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
510
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
250
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
480
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
RailsConf 2023
tenderlove
30
1.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Documentation Writing (for coders)
carmenintech
77
5.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Tell your own story through comics
letsgokoyo
1
1.1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
690
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
540
Code Review Best Practice
trishagee
74
20k
Transcript
Claude Codeで進める AWSリソースのTerraform移行 2025/8/30 機械学習の社会実装勉強会 第50回 熊懐 葵
目次 • AWSをTerraformで管理する背景 • 課題 • モチベーション • Claude Codeで進めるAWSリソースのTerraform移行
• 方針決め • Terraform移行用CI/CD • Terraform移行 2
背景 ディースタッツでは、AWSのいろんなサービスを使っている データ解析 社内システム 全般 3 EC2 API Gateway Lambda
S3 NLB Route 53 ACM VPC Systems Manager IAM CloudWatch 初期のAWSリソース運用方針 一部の管理者のみがコンソール上で操作する
背景 4 の、問題点... こことここをこうしてください ちょっと待ってね...ポチポチ... 変更した 管理者 開発する非管理者 ①依頼が手間 依頼メッセージにフォーマット
のない・挨拶等 ②管理者の負担大 手作業・人的ミス・時間かかる ③属人化 AWS操作ノウハウが特定メンバーに依存 @管理者 @管理者 @管理者 @管理者 ④ボトルネック化 対応待ち 非効率な開発サイクル 効率的な開発サイクル...Github >>> 初期のAWSリソース運用方針 一部の管理者のみがコンソール上で操作する
背景 5 理想のAWSリソース運用方針 Githubで管理すること PR Review・Approve 管理者 開発する非管理者 ①定型 ②負担→減
開発者側が作業/チェック自動化 ③属人化→開発者内で標準化 ④脱ボトルネック Merge済 AWSリソースをGithubで管理するには?
背景 6 TerraformでAWSをGithubで管理する コードで書いた AWSリソース 管理者権限 実際の AWSリソース EC2の設定を変更したい コードでEC2の設定の
記述を書き換えるPR Review ↓ Merge 実リソース に適用 HCL言語 Apply GHAで自動化 まずはAWSリソースをGithub上でコード化する必要がある(Terraform移行) これを実現するためには... 管理者の手作業なしに 設定を変更できる
課題 実際には、AWSリソースのうちIAMしかGithub上に移行できていなかった • Terraformのノウハウがなく、HCLの書き方を調べながらちょっとずつ移行して いた • AIツールを活用しにくい(Chat GPTなど) • Terraform用ファイル全体
• AWS内の実際のリソース を把握しながらコードを書いてくれないため 7 Terraform移行が手作業多めでなかなか進まない
モチベーション: Claude CodeでTerraform移行をサクサク進めたい 最近Claude Codeが使えるようになった →ターミナルで動き、AWS環境・ローカルにあるTerraformのファイル構造を把握 しながらコードを書いてくれる 8 コードで書いた AWSリソース
実際の AWSリソース コーディング &PR Webで記法 を学びつつ 実リソース 確認しつつ 私 コードで書いた AWSリソース 実際の AWSリソース 実リソース 確認しつつ コーディング &PR 他の.tf構造確認しつつ 私(の、ローカルPC) aws cli 手作業多め ほぼ自動
Claude Codeで進めるAWSリソースのTerraform移行 9 方針決め Claude Code 導入 AWSリソース 調査 構造案決定
Terraform 用CI/CD 自動チェック ワークフロー Claude Code 環境設定 Terraform 移行 基本的な流れ Lambda トークン制限
方針決め > Claude Code導入 ①Claude Proプラン 課金(月20$) 10 ②ターミナルでclaude-codeをインス トール
npm install -g @anthropic-ai/claude-code ③Claude Code起動 claude ④オプション・認証など 認証ではブラウザに遷移する 認証コードをコピペする
方針決め > AWSリソース調査 Claude Code起動「全AWSリソースを調査して、Terraform移行プランを考えて ください」 ※ aws cliを使えるように認証完了しておく(これ自体もClaudeと会話ベースでで きるかも
11 それっぽいプランを立ててくれる
方針決め > 構造案決定 Terraform経験者の方のReviewをもらいつつ、構造案を決定 変更点 階層を掘らず、フラットな構造にする(Monolithな構造と言うらしい) • フラットな構造 → Terraformの管理するState(使っているAWSサービスの
データ)も一つ • 階層を掘り、リソースごとにStateを分けると、いろいろ面倒 • 複数Stateではなく単一State構造で管理したい 12 全部aws/ 下
Terraform用CI/CD > 自動チェックワークフロー 以下のようなワークフロー(GHA)を用意する 14 install tfcmt terraform fmt terraform
init terraform validate terraform state list terraform plan ( tfcmt ) terraform apply (tfcmt) merge時 ※ terraformの記述に関する一連のチェック ※ tfcmt: Terraform の Plan/Apply 結果を GitHub PR コメントに出すツール) PRを更新するたびに、Terraform移行がうまくいきそうかチェック(validate, plan)する
Terraform用CI/CD > 自動チェックワークフロー 例: autoscaling関連リソースのTerraform移行 17 Update, Replace... 実際の設定と記述 にズレがある
コメントの下部で 差分を取得できる 差分がないよう改めてコードを修正 すると、importだけになる → うまくTerraform移行できる mergeして OK! PRを更新するたびに、Terraform移行がうまくいきそうかチェック(validate, plan)する ※実際のリソース とズレなく コード化したい
Terraform用CI/CD > Claude Code環境設定 CLAUDE.mdを用意し、毎回指示する内容を入れておくと楽ができる↓ 18 pre-commitの指示 ブランチに関する指示 コミットに関する指示 ...で、PRの作成が楽になる
その他PRのフォーマットなど
Terraform移行 > 基本的な流れ ①「今ある〇〇(AWSリソース)を調べてください」 19 awsコマンドを実行して、存在する リソースを調査してくれる
Terraform移行 > 基本的な流れ ②「〇〇(AWSリソース)をTerraform移行したいです」 20 想定外の動作は、escキーで中断→追加指示 リソースごとにフォルダを作ろうとしている Todo更新
Terraform移行 > 基本的な流れ ③ 適宜誘導 21 例: s3 変更の提案がされる 1.
Yes. でEnter
Terraform移行 > 基本的な流れ ③ 適宜誘導 Terraform移行では、リソースの記述だけでなく、importという操作も必要 VPCリソースの記述 VPCリソースのimportの記述
Terraform移行 > 基本的な流れ ③ 適宜誘導 コマンドでimportしようとする→ escで中断→importブロックを使うよう指示
Terraform移行 > 基本的な流れ ④ PR作成・エラー対処 エラー文をClaude Code にコピペ 記法をたまに間違える (sonnet4)
Terraform移行 > 基本的な流れ ④ PR作成・エラー対処 Updateになっている →差分0で移行できてない 差分を教えてくれる →Claude Codeにコピペ
全部ImportになったらOK
「これまでの流れをTerraform移行の手順として、 CLAUDE.mdに記録しておいてください」 などとしておくと、以降の指示・誘導の手間が省ける Terraform移行 > 基本的な流れ ④ PR作成・エラー対処 全部ImportになったらOK merge
Terraform移行 > Lambda Lambdaはソースコードが含まれており、完コピimportしたくない 27 ソースコードは別repoで 管理している ダミーのソースコードを用意 ソースコードをignoreする ignoreして、terraformの記述が実リソースに反映されないようにする
Terraform移行 > トークン制限 28 proは5時間ごとにトークンの使用制限がある → 全部まとめて移行しようとすると、調査量・記述量が多くなり、トークン制限 になる → 現状は、いい感じに分割して移行していくのが良さそう
EC2 API Gateway Lambda S3 NLB Route 53 ACM VPC Systems Manager CloudWatch 5つに分割して移行した(合計120リソース程度)
Terraform移行 感想 29 • コーディングをほぼすべてやってくれるので、作業時間・負荷大幅減 • IAM: ちびちびやって1ヶ月以上・全気力のうち8割 • それ以外の全リソース(今回):
1ヶ月弱・全気力のうち2割弱(研究や他の業務 の片手間・おやつ感覚) • Terraformのこと何も知らなくて良い...わけではない • 全体構造は見直した(Monolith構造) • デバッグが、Claude Code丸投げではうまくいかないこともある • 結果としてTerraformの理解が深まった • 「リソースの記述だけではなく、importの記述も必要」 • 「Terraformは階層、Stateごとに管理,Applyされる(例外あり)」 • Maxプラン(月100$~)ならもっと速いかもだが、方針を適宜修正しつつProプラ ンくらいでちょうどいいのではという気持ち(※使ったことはない)
ご清聴ありがとうございました