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
88
0
Share
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
120
n8nで定期成果報告の資料づくりを自動化する
aoikumadaki
0
210
LangGraphとFlaskを用いた社内資料検索ボットの実装④GithubRetriever構築編
aoikumadaki
0
96
LangGraphとFlaskを用いた社内資料検索ボットの実装③アプリケーション構築編
aoikumadaki
0
150
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
230
LangGraphとFlaskを用いた社内資料検索ボットの実装①AIエージェント構築編
aoikumadaki
0
460
StreamlitとLangChainを使った表画像OCRアプリの実装
aoikumadaki
3
900
LangChainでデータ分析エージェントを作ってみる
aoikumadaki
0
350
AWS LambdaとLangSmithを使った社内レポート添削システムMinervaの実装
aoikumadaki
0
390
Other Decks in Technology
See All in Technology
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
120
Bref でサービスを運用している話
sgash708
0
220
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
170
Why we keep our community?
kawaguti
PRO
0
350
Cursor Subagentsはいいぞ
yug1224
2
130
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
3
2k
20260326_AIDD事例紹介_ULSC.pdf
findy_eventslides
0
280
The essence of decision-making lies in primary data
kaminashi
0
200
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
LLMに何を任せ、何を任せないか
cap120
11
6.7k
昔話で振り返るAWSの歩み ~S3誕生から20年、クラウドはどう進化したのか~
nrinetcom
PRO
0
120
私がよく使うMCPサーバー3選と社内で安全に活用する方法
kintotechdev
0
150
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
190
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Exploring anti-patterns in Rails
aemeredith
2
300
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
GitHub's CSS Performance
jonrohan
1032
470k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Skip the Path - Find Your Career Trail
mkilby
1
93
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
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プラ ンくらいでちょうどいいのではという気持ち(※使ったことはない)
ご清聴ありがとうございました