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
Illust_Terraform
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yona
March 17, 2025
2.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Illust_Terraform
Yona
March 17, 2025
More Decks by Yona
See All by Yona
I’m going to talk at length about the Kiro IDE features I like.
yonasou
0
7
Insights from a Practicing Engineer: How to Apply What You Learned at re:Invent
yonasou
0
12
Kiroを使ってドキュメント管理を少し楽にしてみた
yonasou
0
1.3k
Grafana_Claude_Code
yonasou
1
1.2k
project_offline_communication
yonasou
0
42
Easy choice of IaC
yonasou
1
470
re:growth 2024
yonasou
0
710
Using figma is a good thing
yonasou
1
940
IoT_Greengrass_Begginer
yonasou
0
460
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
Joys of Absence: A Defence of Solitary Play
codingconduct
1
500
The Limits of Empathy - UXLibs8
cassininazir
1
650
Transcript
イラストで理解するTerraform
自己紹介 【名前】 与那嶺 創(よなみね そう) 【所属】 クラスメソッド株式会社 ソリューションアーキテクト 【ひとこと】 ガバメントクラウド初心者です
ピザのアイコンでブログ書いてます!
01 02 03 04 Terraformとは? Terraformは何が嬉しいの? Terraformはどうはじめればいいの? まとめ アジェンダ
Terraformって聞いたことあるけど何がいいんだろう? やってみたいけど、何から始めたらいいんだろう? 対象の読者
Terraformとは? IaC CDK Terraform CloudFomation
平たく言うと コード インフラをコードで管理できるツール インフラストラクチャ
え?それの何が嬉しいの?
こんな経験ありませんか? 構築の手順書を作らないといけないけど 画面のキャプチャをとるのが大変 手順書通りにやってたつもりだけど いつの間にかミスしてた 画面で操作すると構築に時間がかかる 今と同じ環境をもう一つ 作りたいけど面倒
コード インフラストラクチャ コードでインフラを管理すると何が嬉しいのか?
コード インフラストラクチャ コードでインフラを管理すると何が嬉しいのか? t i 同じコードであれば同じリソースが生成されg i 誰がやっても同じリソースが生成されg i コードが存在すればすぐに構築できg
i gitで管理すればコードの差分から変更履歴が追える
構築の手順書を作らないといけないけど 画面のキャプチャをとるのが大変 手順書通りにやってたつもりだけど いつの間にかミスしてた 画面で操作すると構築に時間がかかる テスト環境用に同じ環境を 作りたいけど面倒
よし!全部Terraformで管理するぞ〜!!
全然うまくいかない
この機能何に使うの? このファイル何に使うの? ディレクトリ構成が複雑 ファイルの依存関係が 分からない なぜうまくいかない?
ミニマムにスタートして 1つずつ成功体験を積み重ねましょう! SandBox環境など、学習用の環境があると尚良し
でも、何から始めたらいいんだ...
面 倒 な こ と を 発 見 面 倒
な こ と を 発 見 改 善 改 善 最 小 限 の 実 装 まずはここから
main.tfのみ project main.tf
terraform { required_providers { aws = { source = "hashicorp/aws"
version = "~> 5.0" } } } provider "aws" { region = "ap-northeast-1" } resource "aws_vpc" "example" { cidr_block = "10.0.0.0/16" } project main.tf main.tf terraform AWS Provider の設定 AWSリソースを定義 ここに追加していく
project main.tf main.tf resource "aws_vpc" "example" { cidr_block = "10.0.0.0/16"
... } resource "aws_internet_gateway" "example" { .. } resource "aws_s3_bucket" "example" { ... } resource "aws_instance" "example" { ... } resource "aws_cloudwatch_log_group" "example" { ... } リソースが増えてくると... CloudWatch S3 VPC EC2 Internet Gateway
どこに何が書いてあるんだ? 巻物化 巻物化
面 倒 な こ と を 発 見 面 倒
な こ と を 発 見 改 善 改 善 最 小 限 の 実 装 今ココ!
ファイルの分離 project network.tf storage.tf compute.tf project main.tf 目的やリソースごとにファイルを分離 ...
project network.tf storage.tf compute.tf ... CloudWatch EC2 VPC S3 Internet
Gateway 管理しやすくなったぜ!
面 倒 な こ と を 発 見 面 倒
な こ と を 発 見 改 善 改 善 最 小 限 の 実 装 今ココ!
project network.tf storage.tf ... 順調順調!!
project network.tf storage.tf ... リソース名のprefix ,タグなど 同じ値を設定するの面倒だな..
面 倒 な こ と を 発 見 面 倒
な こ と を 発 見 改 善 改 善 最 小 限 の 実 装 またココ!
変数の分離 project network.tf s3.tf ... variables.tf 変数を管理するファイル
project network.tf s3.tf ... variables.tf variable “ " { description
= "Tag name" type = string default = "demo" tag_name resource "aws_vpc" "example" { ... tags = {Name = "${ }-vpc”} } tag_name variables.tf network.tf 変数を取得
面 倒 な こ と を 発 見 面 倒
な こ と を 発 見 改 善 改 善 最 小 限 の 実 装 今ココ!
これって何か解決方法ないのかな?と思ったら、調べてみましょう! HashiCorpのスタイルガイドが参考になります!! リンク: https://developer.hashicorp.com/terraform/language/style
それはそう。 でも、Terraformのファイルを効率的に管理するには その機能が何のために存在して、 どんな依存関係があるか理解しないと トラブルが起きたら困るのは君だよ? じゃあ、最初から全部盛り混んでおけば いいんじゃないの?
面 倒 な こ と を 発 見 面 倒
な こ と を 発 見 面 倒 な こ と を 発 見 改 善 改 善 改 善 サイクルをぐるぐる回しましょう!!
R stateファイルはどこで管理したらいいんだろう..2 R シークレットはどこで管理すればいいんだろう..2 R 複数環境にデプロイするにはどうすればいいんだろう..2 R 複数人で開発するにはどうすればいいんだろう..2 R マルチアカウントの場合にはどうすればいいんだろう...
壁にあたる度にTerraformの便利な機能を発見すると思います!
Terraformはリソースをコードで管理でき 最初から全てはうまくいかな スモールスタートで成功体験を詰む まとめ
e Terraformが全てを解決してくれるとは思っていなb e 常にTerraformが最適なIaCツールだとも思っていなb e 手動で作成/管理する方が向いているケースもあE e 道具なので、使うことを目的とするとモチベーション が持続しないかも 最後に個人的な意見を