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
マネコン操作いらず! TerraformでAWSインフラのコーディングに入門しよう
Search
みのるん
PRO
March 13, 2025
Technology
3.4k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マネコン操作いらず! TerraformでAWSインフラのコーディングに入門しよう
JAWS-UG東京 IaC Night 〜入門から上級まで!AWSをコードで構築しよう〜
https://jawsug.connpass.com/event/344954/
みのるん
PRO
March 13, 2025
More Decks by みのるん
See All by みのるん
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
32k
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
34
22k
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
220
Claude Codeで開発以外の業務も爆速化しよう!
minorun365
PRO
12
11k
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
3
340
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
12
3.7k
やさしいA2A入門
minorun365
PRO
12
3k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
1.9k
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
19
19k
Other Decks in Technology
See All in Technology
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
13
7.4k
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
180
ほんとうの信頼性はヒーローが死んでからはじまる / True reliability begins after the hero dies
vtryo
0
120
Mastering Agentic Development: Harness Engineering for Effective Coding Agents
konippi
3
560
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
judau
1
110
Antigravity SDK for the Java Developer
glaforge
0
210
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
600
Harness Engineering on Rails
joelq
0
520
AI coding 整合正規方法
philipz
0
550
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
270
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
6
760
データ_AIの事業の勝敗をわけるもの
nek0128
1
480
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
The SEO identity crisis: Don't let AI make you average
varn
0
560
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
540
Crafting Experiences
bethany
1
350
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
490
Accessibility Awareness
sabderemane
1
220
WCS-LA-2024
lcolladotor
0
830
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
The SEO Collaboration Effect
kristinabergwall1
1
570
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
420
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
公開情報 マネコン操作いらず︕ TerraformでAWSインフラの コーディングに⼊⾨しよう KDDIアジャイル開発センター株式会社 テックエバンジェリスト 御⽥ 稔(みのるん)
公開情報 1 KDDI Agile Development Center Corporation $ whoami 御⽥
稔(みのるん) @minorun365 テックエバンジェリスト KDDIアジャイル開発センター株式会社(KAG) クラウドや⽣成AIで内製開発を⾏いながら 技術の楽しさを広める活動をしています AWS Community Hero AWS Samurai 2023-2024 2024 Japan AWS Top Engineer 2024 Japan AWS All Certs Engineer Qiita 2024 Top Contributor
公開情報 2 KDDI Agile Development Center Corporation みなさん、 楽しくAWS構築してますか︖
公開情報 3 KDDI Agile Development Center Corporation もしかして 毎回マネコンで同じようなリソース 構築してませんか…︖
公開情報 4 KDDI Agile Development Center Corporation それ、IaC使うと楽ですよ︕
公開情報 5 KDDI Agile Development Center Corporation IaCとは • IaC
= Infrastructure as Codeの略 • パブリッククラウドのように、インフラの抽象化が進んだことで 昔のような⼿動構築ではなくアプリケーションのようにコードで記述し デプロイできるようになった • 「構成管理」と表現されることもある
公開情報 6 KDDI Agile Development Center Corporation 定義型コードで 低レイヤーのまま扱う プログラミング⾔語で
抽象化して扱う 代表的なIaCツール OSやミドルウェアの 設定⾃動化 インフラ構築の ⾃動化 Ansible AWS CloudFormation Terraform AWS CDK Pulumi
公開情報 7 KDDI Agile Development Center Corporation IaCを使うと、何が嬉しいの︖ • 構築作業を効率化できる(⾃動化、⼀括削除)
• 似た構成を簡単に再現したり、使い回せる • インフラの構成や変更履歴をGitで管理できる + • ⽣成AIにインフラ構築をサポートしてもらいやすい
公開情報 8 KDDI Agile Development Center Corporation クラウドはAPIだからコードで扱える 実はマネコンでもCLIでも、クラウドはAPI経由でインフラが操作されている 開発者
Webブラウザ (AWSマネコン) ターミナル (AWS CLI) プログラミング⾔語 (AWS SDK) パブリッククラウド API 各サービス コントロール プレーン データ プレーン
公開情報 9 KDDI Agile Development Center Corporation クラウドはAPIだからコードで扱える 例えばTerraformはGo⾔語で動作し、AWS SDK
for Go経由でインフラリソースを操作する 開発者 Webブラウザ (AWSマネコン) ターミナル (AWS CLI) プログラミング⾔語 (AWS SDK) パブリッククラウド API 各サービス コントロール プレーン データ プレーン
公開情報 10 KDDI Agile Development Center Corporation ⼈気のIaCツール Terraformの紹介
公開情報 11 KDDI Agile Development Center Corporation Terraformとは︖ • HashiCorp社が開発するIaCツールの⼀つ
特徴 • AWSなどの各種クラウドを始め、様々なインフラサービスに対応している • 2014年から存在する⽼舗で、シェアが⾼い • ソースコードが公開されており無料で利⽤可能。 便利なSaaS版もある
公開情報 12 KDDI Agile Development Center Corporation Terraform界の登場⼈物 AWS API
.tf モジュール コンフィグ Terraform本体 コア プロバイダー ステート 開発者 作業PCの中
公開情報 13 KDDI Agile Development Center Corporation Terraform界の登場⼈物 AWS API
.tf モジュール コンフィグ Terraform本体 コア プロバイダー ステート 開発者 作業PCの中 モジュールというフォルダーの中に コンフィグというメインの定義ファイルを置く
公開情報 14 KDDI Agile Development Center Corporation Terraform界の登場⼈物 AWS API
.tf モジュール コンフィグ Terraform本体 コア プロバイダー ステート 開発者 作業PCの中 Terraform本体のソフトウェアは、 コア部分+プロバイダー (デプロイ先の製品⽤プラグイン) を組み合わせて使う
公開情報 15 KDDI Agile Development Center Corporation Terraform界の登場⼈物 AWS API
.tf モジュール コンフィグ Terraform本体 コア プロバイダー ステート 開発者 作業PCの中 コンフィグと実クラウドの 差分だけをデプロイできるように 実際のリソース状況が ステートファイルに随時記録される
公開情報 16 KDDI Agile Development Center Corporation 実際に使ってみよう︕
公開情報 17 KDDI Agile Development Center Corporation まずはAWSアカウントを準備しよう AWS側の設定 •
AWSアカウントを作成 • IAM Identity Centerをセットアップ(SSOユーザーを作成) 作業PCでの設定 • AWS CLIをインストールして認証設定(aws configure sso) • ターミナルの環境変数に認証情報を⼀時設定(export AWS_PROFILE=XXX)
公開情報 18 KDDI Agile Development Center Corporation Terraformのコードを書いてみよう 作業⽤ディレクトリ(ルートモジュール)を作って 「main.tf」(コンフィグファイル)を作成
terraform ブロック Terraform⾃体の設定を書く(使うプロバイダーなど) providor ブロック プロバイダー⾃体の設定を⾏う resource ブロック 実際に構築したいリソースの内容を書く
公開情報 19 KDDI Agile Development Center Corporation Terraformのコードを書いてみよう 作業⽤ディレクトリ(ルートモジュール)を作って 「main.tf」(コンフィグファイル)を作成
terraform ブロック Terraform⾃体の設定を書く(使うプロバイダーなど) 今回はAWSへのデプロイを⾏いたいので、 AWSプロバイダー(AWS向けのTerraformプラグイン) を指定している。 互換性の問題が起きないように Terraform本体や、プロバイダーのバージョンも指定。
公開情報 20 KDDI Agile Development Center Corporation Terraformのコードを書いてみよう 作業⽤ディレクトリ(ルートモジュール)を作って 「main.tf」(コンフィグファイル)を作成
providor ブロック プロバイダー⾃体の設定を⾏う 今回はAWSプロバイダーの設定。 例では「リージョン=東京」を全体の共通設定として指定
公開情報 21 KDDI Agile Development Center Corporation Terraformのコードを書いてみよう 作業⽤ディレクトリ(ルートモジュール)を作って 「main.tf」(コンフィグファイル)を作成
resource ブロック 実際に構築したいリソースの内容を書く 「リソース種別」と「識別⼦(好きな名前)」を指定し、 カッコの中に属性(設定値)を記述していく 宣⾔型(差分ではなく、最終的にありたい状態)で 書くのがTerraformの特徴︕
公開情報 22 KDDI Agile Development Center Corporation コンフィグファイルを書くときのコツ • 「Terraform
+ 作りたいAWSサービス名」でGoogle検索して、 Terraform AWSプロバイダーの公式ドキュメントで記述⽅法を確認しよう • ⼿っ取り早くベースを作りたいときは、Cline等でLLMにまるっと⽣成してもらおう
公開情報 23 KDDI Agile Development Center Corporation コンフィグが書けたら、コマンドを実⾏してデプロイしよう • terraform
init 今回使う作業ディレクトリを初期化する • terraform plan 記述内容をデプロイしたときの想定差分を表⽰する(ドライラン) • terraform apply 記述内容を実際のクラウド環境にデプロイする ➡ たったこれだけでインフラの構築が完了︕
公開情報 24 KDDI Agile Development Center Corporation terraform planを実⾏すると、コンフィグとステートが⽐較されます AWS
API .tf モジュール コンフィグ Terraform本体 コア プロバイダー ステート 開発者 作業PCの中 実際のリソース状況を ステートに反映する
公開情報 25 KDDI Agile Development Center Corporation terraform planの実⾏結果の⾒かた 今回の変更点サマリー
各リソースの変更点の詳細 + 追加 - 削除 ~ 更新 -/+ 置き換え
公開情報 26 KDDI Agile Development Center Corporation 実機デモ
公開情報 27 KDDI Agile Development Center Corporation 実際にMacから、EC2の構築を実演します
公開情報 28 KDDI Agile Development Center Corporation 便利な機能も使ってみよう︕
公開情報 29 KDDI Agile Development Center Corporation コンフィグファイルが⻑くなるので分けたい Terraformのコンフィグ(.tf)は複数のファイルに分けてもOK︕ •
拡張⼦が .tf であれば、ファイル名は⾃由 • 同じディレクトリ(モジュール)階層内であれば、インポートなど不要で勝⼿に読まれる frontend.tf network.tf
公開情報 30 KDDI Agile Development Center Corporation 他のリソースの値を参照したい 例えば「インターネットゲートウェイを作るときにVPCのIDを指定したい」など、 別のリソースの設定値を「リソース種別.識別⼦.属性名」という相対指定で参照できる
公開情報 31 KDDI Agile Development Center Corporation 既存のAWSリソースを参照したい data ブロックを使うと、すでに存在しているAWSリソースを参照して
Terraformコンフィグ内で設定値などを使い回すことができる マネコンで以前に作ったVPCを TerraformからID指定で参照する 参照した既存VPCを使って そこにIGWをTerraformで新規作成する
公開情報 32 KDDI Agile Development Center Corporation 変数をまとめたい locals ブロックを使うと、同じ変数を
複数のリソースで利⽤できる。 例えば、複数のEC2インスタンスに対して 同じインスタンスタイプを指定したいときに便利 変数を定義 「local.変数名」で呼び出せる ※変数をコンフィグに事前定義するのではなく、 実⾏時に外から渡したい場合は localsの代わりにvaluableブロックを使う
公開情報 33 KDDI Agile Development Center Corporation tfstateファイルをクラウド上に配置したい terraform applyを初回実⾏すると「terraform.tfstate」というJSONファイルが⽣成される。
次回からapplyをするたび、クラウドの最新状態がこのファイルに更新される 複数のPCやメンバーで作業する場合、このステートファイルを共有しやすいよう ローカルではなくS3バケットを指定しよう(terraformブロックに記述する)
公開情報 34 KDDI Agile Development Center Corporation 次のステップ
公開情報 35 KDDI Agile Development Center Corporation 慣れたら「モジュール分割」を使いこなそう︕ 環境を分けたり、リソース群を抽象化して使い回すために実務ではほぼ必須。 クラメソのよなさんが昨年、東京⽀部で死ぬほど分かりやすいLTしてくれたので必⾒です
speakerdeck.com/yonasou
公開情報 36 KDDI Agile Development Center Corporation 参考⽂献 • Terraform
Documentation(Hashicorp) https://developer.hashicorp.com/terraform • [詳解]AWS Infrastructure as Code -- 使って⽐べるTerraform&AWS CDK(技術評論社) https://gihyo.jp/book/2025/978-4-297-14724-2 • 完全初⼼者向けTerraform⼊⾨(AWS) | DCS blog https://blog.dcs.co.jp/aws/20210401-terraformaws.html
Be a Change Leader. アジャイルに⼒を与え 共に成⻑し続ける社会を創る