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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
熊懐葵
August 30, 2025
Technology
0
77
Claude Codeで進めるAWSリソースのTerraform移行
機械学習の社会実装勉強会 第50回 (
https://machine-learning-workshop.connpass.com/event/366914/
) の発表資料です。
熊懐葵
August 30, 2025
Tweet
Share
More Decks by 熊懐葵
See All by 熊懐葵
AI時代のインターン研修再設計 コーディング力から課題創出・業務遂行力へ
aoikumadaki
0
90
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
190
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
88
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
140
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
230
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
450
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
860
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
340
AWS LambdaとLangSmithを使った社内レポート添削システムMinervaの実装
aoikumadaki
0
370
Other Decks in Technology
See All in Technology
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
Exadata Fleet Update
oracle4engineer
PRO
0
1.1k
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
200
AI駆動開発を事業のコアに置く
tasukuonizawa
1
370
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
190
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
900
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
190
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
Featured
See All Featured
Abbi's Birthday
coloredviolet
1
4.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
71
The Spectacular Lies of Maps
axbom
PRO
1
530
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Technical Leadership for Architectural Decision Making
baasie
2
250
HDC tutorial
michielstock
1
390
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
110
The Curse of the Amulet
leimatthew05
1
8.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Typedesign – Prime Four
hannesfritz
42
3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
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プラ ンくらいでちょうどいいのではという気持ち(※使ったことはない)
ご清聴ありがとうございました