Slide 1

Slide 1 text

Terraformのnull_resourceってなに? aws cliが実行できるらしい 黒野 雄稀 | 2023/1/14 1 Step Functionsからサーバレスを始めよう!! 2023年始めLT大会!! JAWS-UGおおいた

Slide 2

Slide 2 text

自己紹介 黒野 雄稀 Yuki Kurono kurono_98 kurono アイレット株式会社 所属  普段はインフラ設計・構築や運用構築に従事 2022 APN ALL AWS Certifications Engineers 2

Slide 3

Slide 3 text

3 Terraformってなに?

Slide 4

Slide 4 text

4 null_resourceってなに? resource "aws_vpc" "main" { cidr_block = "10.0.0.0/16" } resource "null_resource" "main" { } null_resource、その名の通り何も作らないリソースのこと。

Slide 5

Slide 5 text

5 これ作ってて意味あるの?? 何に使うの??無を生みだして楽しい? resource "null_resource" "main" { }

Slide 6

Slide 6 text

6 Google先生に聞いてみる

Slide 7

Slide 7 text

7 なるほど。 じゃあ、AWS CLI実行すれば リソース全部作れるじゃん! ちょっと前の僕

Slide 8

Slide 8 text

8 やってみた

Slide 9

Slide 9 text

9 だいたいこんな感じになる resource "null_resource" "vpc" { provisioner "local-exec" { interpreter = ["/bin/bash", "-c"] command = <

Slide 10

Slide 10 text

10 記述量を比較してみる リソース 記述量(普通) 記述量(null) 倍率 VPC 4行 28行 7倍 Subnet 7行 36行 約5倍 RouteTable 4行 32行 8倍 SecurityGroup 6行 36行 6倍 EC2 8行 46行 約6倍

Slide 11

Slide 11 text

11 辛いポイント① provisioner "local-exec" { when = destroy interpreter = ["/bin/bash", "-c"] command = <

Slide 12

Slide 12 text

12 辛いポイント② リソースのId(VPCのIdとか)を保持したり取得できないので、 describeコマンドを打って、ファイル保存しておかないといけない。。

Slide 13

Slide 13 text

13 辛いポイント③ デプロイしてみても何作ってんのか全然わからん。。。

Slide 14

Slide 14 text

14 何が言いたいかというと... やれる と できるは違うよね ※本スライドの内容は完全にネタですので悪しからず。

Slide 15

Slide 15 text

15