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
Claude Codeで進めるAWSリソースのTerraform移行
Search
熊懐葵
August 30, 2025
Technology
0
34
Claude Codeで進めるAWSリソースのTerraform移行
機械学習の社会実装勉強会 第50回 (
https://machine-learning-workshop.connpass.com/event/366914/
) の発表資料です。
熊懐葵
August 30, 2025
Tweet
Share
More Decks by 熊懐葵
See All by 熊懐葵
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
160
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
73
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
110
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
190
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
340
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
720
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
260
AWS LambdaとLangSmithを使った社内レポート添削システムMinervaの実装
aoikumadaki
0
310
Other Decks in Technology
See All in Technology
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
1
280
開発と脆弱性と脆弱性診断についての話
su3158
1
1.1k
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
4
640
制約理論(ToC)入門
recruitengineers
PRO
5
1.1k
モバイルアプリ研修
recruitengineers
PRO
4
530
夢の印税生活 / Life on Royalties
tmtms
0
290
Browser
recruitengineers
PRO
5
720
Backboneとしてのtimm2025
yu4u
4
1.6k
第4回 関東Kaggler会 [Training LLMs with Limited VRAM]
tascj
12
1.9k
広島銀行におけるAWS活用の取り組みについて
masakimori
0
140
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
240
7月のガバクラ利用料が高かったので調べてみた
techniczna
3
600
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
780
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Producing Creativity
orderedlist
PRO
347
40k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
Into the Great Unknown - MozCon
thekraken
40
2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Music & Morning Musume
bryan
46
6.7k
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プラ ンくらいでちょうどいいのではという気持ち(※使ったことはない)
ご清聴ありがとうございました