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
Yona
March 17, 2025
0
1.8k
Illust_Terraform
Yona
March 17, 2025
Tweet
Share
More Decks by Yona
See All by Yona
re:growth 2024
yonasou
0
300
Using figma is a good thing
yonasou
1
490
IoT_Greengrass_Begginer
yonasou
0
220
Grafana_IoT_Data_DataLake
yonasou
0
650
terraform_module_ Beginner
yonasou
10
140k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5.2k
Testing 201, or: Great Expectations
jmmastey
42
7.3k
Documentation Writing (for coders)
carmenintech
69
4.7k
A Philosophy of Restraint
colly
203
16k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Faster Mobile Websites
deanohume
306
31k
Into the Great Unknown - MozCon
thekraken
35
1.7k
We Have a Design System, Now What?
morganepeng
51
7.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
690
Code Review Best Practice
trishagee
67
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Bash Introduction
62gerente
611
210k
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 道具なので、使うことを目的とするとモチベーション が持続しないかも 最後に個人的な意見を