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
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.4k
0
Share
Illust_Terraform
Yona
March 17, 2025
More Decks by Yona
See All by Yona
Grafana_Claude_Code
yonasou
1
860
project_offline_communication
yonasou
0
18
Easy choice of IaC
yonasou
1
370
re:growth 2024
yonasou
0
550
Using figma is a good thing
yonasou
1
790
IoT_Greengrass_Begginer
yonasou
0
340
Grafana_IoT_Data_DataLake
yonasou
0
1.1k
terraform_module_ Beginner
yonasou
10
190k
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Making Projects Easy
brettharned
120
6.6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Paper Plane
katiecoart
PRO
0
48k
Raft: Consensus for Rubyists
vanstee
141
7.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
210
Tell your own story through comics
letsgokoyo
1
880
Statistics for Hackers
jakevdp
799
230k
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 道具なので、使うことを目的とするとモチベーション が持続しないかも 最後に個人的な意見を