「Step Functionsからサーバレスを始めよう!! / 2023年始めLT大会!! JAWS-UGおおいた」の資料
Terraformのnull_resourceってなに?aws cliが実行できるらしい黒野 雄稀 | 2023/1/141Step Functionsからサーバレスを始めよう!!2023年始めLT大会!! JAWS-UGおおいた
View Slide
自己紹介黒野 雄稀 Yuki Kuronokurono_98kuronoアイレット株式会社 所属 普段はインフラ設計・構築や運用構築に従事2022 APN ALL AWS Certifications Engineers2
3Terraformってなに?
4null_resourceってなに?resource "aws_vpc" "main" {cidr_block = "10.0.0.0/16"}resource "null_resource" "main" {}null_resource、その名の通り何も作らないリソースのこと。
5これ作ってて意味あるの??何に使うの??無を生みだして楽しい?resource "null_resource" "main" {}
6Google先生に聞いてみる
7なるほど。じゃあ、AWS CLI実行すればリソース全部作れるじゃん!ちょっと前の僕
8やってみた
9だいたいこんな感じになるresource "null_resource" "vpc" {provisioner "local-exec" {interpreter = ["/bin/bash", "-c"]command = <aws ec2 create-vpc \--cidr-block 10.20.0.0/16 \--tag-specifications "ResourceType=vpc, \Tags=[{Key=Name,Value=vpc_from_null_resource}]"EOT}}
10記述量を比較してみるリソース 記述量(普通) 記述量(null) 倍率VPC 4行 28行 7倍Subnet 7行 36行 約5倍RouteTable 4行 32行 8倍SecurityGroup 6行 36行 6倍EC2 8行 46行 約6倍
11辛いポイント①provisioner "local-exec" {when = destroyinterpreter = ["/bin/bash", "-c"]command = <aws ec2 delete-vpc \--vpc-id $(cat ./state/VPC_ID.txt)EOTon_failure = fail}destroy時の処理(コマンド)も記載しないとリソースが削除されない。
12辛いポイント②リソースのId(VPCのIdとか)を保持したり取得できないので、describeコマンドを打って、ファイル保存しておかないといけない。。
13辛いポイント③デプロイしてみても何作ってんのか全然わからん。。。
14何が言いたいかというと...やれる と できるは違うよね※本スライドの内容は完全にネタですので悪しからず。
15