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
150
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 熊懐葵
プロジェクトに伴走する Agent を Slack に置く
aoikumadaki
0
46
AI時代のインターン研修再設計 コーディング力から課題創出・業務遂行力へ
aoikumadaki
0
200
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
310
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
140
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
190
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
270
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
510
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
1k
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
410
Other Decks in Technology
See All in Technology
GitHub、使う?使わない?
happysamurai294
0
140
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
640
推論基盤と Scale-Up Interconnect の現状と制約から俯瞰する技術動向
markunet
2
740
生き様としてのSRE
hokkai7go
1
150
Lint の層を組み直した話
bengo4com
2
290
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
2.2k
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
140
Consistency for mere mortals - A gentle guide to consistency
ufried
0
110
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
150
自律的なチームを作るためにTechPMがやらないこと
ny7760
0
450
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
2.9k
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.7k
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
650
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
600
Visualization
eitanlees
153
17k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
600
Skip the Path - Find Your Career Trail
mkilby
1
270
Context Engineering - Making Every Token Count
addyosmani
9
1.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
A Tale of Four Properties
chriscoyier
163
24k
How to Ace a Technical Interview
jacobian
280
24k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
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プラ ンくらいでちょうどいいのではという気持ち(※使ったことはない)
ご清聴ありがとうございました