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
マネコン操作いらず! TerraformでAWSインフラのコーディングに入門しよう
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
みのるん
March 13, 2025
Technology
8
3.1k
マネコン操作いらず! TerraformでAWSインフラのコーディングに入門しよう
JAWS-UG東京 IaC Night 〜入門から上級まで!AWSをコードで構築しよう〜
https://jawsug.connpass.com/event/344954/
みのるん
March 13, 2025
Tweet
Share
More Decks by みのるん
See All by みのるん
2026年のAIエージェント構築はどうなる?
minorun365
15
5.1k
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
5
350
Claude Codeベストプラクティスまとめ
minorun365
67
51k
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
3
850
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
20
4.6k
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
5
750
AIエージェントは「使う」だけじゃなくて「作る」時代! 〜最新フレームワークで楽しく開発入門しよう〜
minorun365
11
2.7k
Bedrock AgentCoreで解き放て! Strands Agentsで構築するマルチエージェントの実装Tips
minorun365
13
5k
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
14
3.7k
Other Decks in Technology
See All in Technology
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
240
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
470
SaaSからAIへの過渡期の中で現在、組織内で起こっている変化 / SaaS to AI Paradigm Shift
aeonpeople
0
120
SRE NEXT 2026 CfP レビュアーが語る聞きたくなるプロポーザルとは?
yutakawasaki0911
0
160
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
1
530
非情報系研究者へ送る Transformer入門
rishiyama
8
6.4k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
マネージャー版 "提案のレベル" を上げる
konifar
21
14k
型を書かないRuby開発への挑戦
riseshia
0
210
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
130
OCI技術資料 : コンピュート・サービス 概要
ocise
4
54k
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
8
3.2k
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.1k
Side Projects
sachag
455
43k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
380
Balancing Empowerment & Direction
lara
5
940
We Have a Design System, Now What?
morganepeng
55
8k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
A better future with KSS
kneath
240
18k
A designer walks into a library…
pauljervisheath
210
24k
Building an army of robots
kneath
306
46k
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. アジャイルに⼒を与え 共に成⻑し続ける社会を創る